anchor.diff:  grammar Shiro;
   
  -//@lexer::members{
  -//public static final int WHITESPACE = 1;
  -//public static final int COMMENTS = 2;
  -//}
  -
  -shiro : useStatement* statement* EOF
  +shiro : includeStmt*
  +        shiroStmt*
  +        EOF
   	  ;
   
  -useStatement: INCLUDE STRING_LITERAL NEWLINE;
  -
  -statement
  +includeStmt: INCLUDE STRING_LITERAL NEWLINE;
  +
  +shiroStmt
       :
  -          nodestmt
  +        anonymousGraphStmt
  +        | nodeDecl
           | graphDecl
  -        | inLineExpr
  -        | stateStmt
  +        | stateDecl
           | NEWLINE
   	;
   
  -stateStmt
  +stateDecl
       :   STATE stateName BEGIN NEWLINE
  -        stateLine*
  +        stateStmt*
           END
       ;
  +
   stateName
       :   IDENT
       ;
   
  -stateLine
  +stateStmt
       :   stateGraphSelection
       |   stateActivation
  +    |   nestedStateActivation
       |   NEWLINE
       ;
   
   stateGraphSelection
  -    :   GRAPH IDENT
  +    :   GRAPH (IDENT | DEFAULT)
  +    ;
  +
  +nestedStateActivation
  +    :   stateActivation BEGIN NEWLINE
  +        (stateActivation
  +        | nestedStateActivation
  +        | NEWLINE)*
  +        END
       ;
   
   stateActivation
  
positive.code: 
  fragment LCLETTER : 'a'..'z';
  fragment UCLETTER : 'A'..'Z';
  fragment DIGIT : '0'..'9';
negative.code: 	:	IDENT
  	;
  	
  accessModifier
      :   INPUT | OUTPUT
  	;
  
  fullyQualifiedType
  