anchor.diff:  THEN : "=>";
   TO	: "..";
   AT : '@';
  -ASSIGNSIZE: '*' ('0'..'9')+ '*';
  +ASSIGNTYPE: '*' /* ('a'..'z')?*/ ('0'..'9')* '*';
   
   PRIME : '\'';
   
  
positive.code: 	: cond_expr (("and"^ | "or"^) cond_expr)*
  	;
  
  exp: log_expr;
  
  
  variable
  	: 
  		( REG_ID^
  		| "r"^ LSQUARE! exp RSQUARE!
  		| "m"^ LSQUARE! exp RSQUARE!
  		| NAME^
  		) 
  		( AT^ LSQUARE! exp COLON! exp RSQUARE! )*
  	;
  
  value
  	: (PRIME^)? variable;
  
  endianness: "ENDIANNESS" ( "BIG" | "LITTLE" );
  
  fastlist: "FAST" fastentry (COMMA fastentry)*;
  
  fastentry: NAME INDEX NAME;
  
  
  class sslTreeParser extends TreeParser;
  
negative.code: // bit extraction, sign extension, cast
  postfix_expr
  	: primary_expr 
  		( (AT) => AT^ LSQUARE! expr COLON! expr RSQUARE!
  		| (S_E) => S_E^
  		| (LCURLY num RCURLY) => LCURLY^ num RCURLY!
  		)*
  