Inline delimiter code
diff --git a/lib/src/scanner.dart b/lib/src/scanner.dart
index 8c7665c..f07c68c 100644
--- a/lib/src/scanner.dart
+++ b/lib/src/scanner.dart
@@ -11,18 +11,31 @@
      _lenient = lenient,
      _itr = source.runes.iterator {
     
-    var delims = _parseDelimiterString(delimiters);
-    _openDelimiter = delims[0];
-    _openDelimiterInner = delims[1];
-    _closeDelimiterInner = delims[2];
-    _closeDelimiter = delims[3];
-    
     if (source == '') {
       _c = _EOF;
     } else {
       _itr.moveNext();
       _c = _itr.current;
     }
+    
+    if (delimiters == null) {
+      _openDelimiter = _openDelimiterInner = _OPEN_MUSTACHE;
+      _closeDelimiter = _closeDelimiterInner = _CLOSE_MUSTACHE;
+    
+    } else if (delimiters.length == 3) {
+      _openDelimiter = delimiters.codeUnits[0];
+      _closeDelimiter = delimiters.codeUnits[2];
+    
+    } else if (delimiters.length == 5) {
+      _openDelimiter = delimiters.codeUnits[0];
+      _openDelimiterInner = delimiters.codeUnits[1];
+      _closeDelimiterInner = delimiters.codeUnits[3];
+      _closeDelimiter = delimiters.codeUnits[4];
+    
+    } else {
+      throw new TemplateException(
+              'Invalid delimiter string $delimiters', null, null, null);   
+    }
   }
 
   final String _templateName;
@@ -320,11 +333,16 @@
     if (delimiterInner != null) _expect(delimiterInner);
      _expect(delimiter);
     
-     var value = _delimiterString(
-         _openDelimiter,
-         _openDelimiterInner,
-         _closeDelimiterInner,
-         _closeDelimiter);
+     // Create delimiter string.
+     var buffer = new StringBuffer();
+     buffer.writeCharCode(_openDelimiter);
+     if (_openDelimiterInner != null) buffer.writeCharCode(_openDelimiterInner);
+     buffer.write(' ');
+     if (_closeDelimiterInner != null) {
+       buffer.writeCharCode(_closeDelimiterInner);
+     }
+     buffer.writeCharCode(_closeDelimiter);
+     var value = buffer.toString();
           
      _append(TokenType.changeDelimiter, value, start, _offset);
   }
@@ -335,33 +353,6 @@
 
 }
 
-_delimiterString(int open, int openInner, int closeInner, int close) {
-  var buffer = new StringBuffer();
-  buffer.writeCharCode(open);
-  if (openInner != null) buffer.writeCharCode(openInner);
-  buffer.write(' ');
-  if (closeInner != null) buffer.writeCharCode(closeInner);
-  buffer.writeCharCode(close);
-  return buffer.toString();
-}
-
-List<int> _parseDelimiterString(String s) {
-  if (s == null) return [_OPEN_MUSTACHE, _OPEN_MUSTACHE,
-                         _CLOSE_MUSTACHE, _CLOSE_MUSTACHE];
-  if (s.length == 3) {
-    return [s.codeUnits[0], null, null, s.codeUnits[2]];
-  
-  } else if (s.length == 5) {
-    return [s.codeUnits[0],
-            s.codeUnits[1],
-            s.codeUnits[3],
-            s.codeUnits[4]];
-  } else {
-    throw new TemplateException(
-        'Invalid delimiter string $s', null, null, null);
-  }  
-}
-
 const int _EOF = -1;
 const int _TAB = 9;
 const int _NEWLINE = 10;