diff --git a/lib/src/parser.dart b/lib/src/parser.dart
index c64bcc9..78dd995 100644
--- a/lib/src/parser.dart
+++ b/lib/src/parser.dart
@@ -24,8 +24,7 @@
   //final List<List<String>> arguments;
 }
 
-// Note comments and change delimiter tags are parsed out before they reach
-// this stag.
+// Note change delimiter tags are parsed out before they reach this stage.
 class TagType {
   const TagType(this.name);
   final String name;
@@ -37,15 +36,22 @@
   static const TagType tripleMustache = const TagType('tripleMustache');
   static const TagType unescapedVariable = const TagType('unescapedVariable');
   static const TagType partial = const TagType('partial');
+  static const TagType comment = const TagType('comment');
 }
 
-TagType tagTypeFromString(String s) => const {
-          '#': TagType.openSection,
-          '^': TagType.openInverseSection,
-          '/': TagType.closeSection,
-          '&': TagType.unescapedVariable,
-          '>': TagType.partial
-        }[s];
+const _tagTypeMap = const {
+        '#': TagType.openSection,
+        '^': TagType.openInverseSection,
+        '/': TagType.closeSection,
+        '&': TagType.unescapedVariable,
+        '>': TagType.partial,
+        '!': TagType.comment};
+
+TagType tagTypeFromString(String s) { 
+  var type = _tagTypeMap[s];
+  if (type == null) throw 'boom!'; //TODO unreachable.
+  return type;
+}
 
 class Parser {
   
@@ -130,6 +136,10 @@
       case TagType.partial:
         if (node != null) _stack.last.children.add(node);
         break;
+      
+      case TagType.comment:
+        // Ignore.
+        break;
         
       //TODO soon will be able to omit this as the analyzer will warn if a case
       // is missing for an enum.
@@ -290,6 +300,7 @@
             
       // Return null for close section.
       case TagType.closeSection:
+      case TagType.comment:
         node = null;
         break;
 
