anchor.diff:  grammar Halstead;
  +
   
   @header {
   	import java.util.*;
  
positive.code: 
  	  };
  
  token 
  	: operator { 
  		String op = $operator.text;
  
negative.code: // 'input' | 'print' |  // <- para el ejemplo del blog
  'if'| 'then'| 'else'| 'unless'| 'while'| 'loop'| 'for'| 'foreach'| 'each'| 'do'| 'in'| 'between'
  | 'when'| 'case'| 'switch'| 'repeat'| 'until'| 'try'| 'catch'| 'except'| 'on'| 'select'| 'from'| 'where'| 'class'| 'struct'| 'begin'| 'end'| 'program'| 'interface'| 'implementation'| 'uses'| 'import'| 'package'| 'module'| 'super'| 'this'| 'me'| 'self'| 'break'| 'go'| 'to'| 'goto'| 'downto'| 'default'| 'ensure'| 'rescue'| 'require'
  | '<'| '>'| '<>'| '<='| '>='| '<=>'| '='| '=='| '=/='| '=~' | '/'| '/='| '*'| '*=' | '+'| '+='| '-'| '-='| '~'| '~='| '^'| '^='| '&'| '&='| '&&'| '|' | '||'| '|='| 'and'| 'or'| 'not'| '!'| '!='| '!!'| '@'| '#'| '$'| '%'| '?' | 'mod'| 'div' ;
  
  operand
  	: TOK
  	| STRING
  	;
  
  
  TOK : [_a-zA-Z0-9]+ 
  	  | ESC_SEQ
  	  ;
  
  
  STRING
      :  '"' ( ESC_SEQ |  ~('\\'|'"') )* '"'
      |  '\'' ( ESC_SEQ | ~('\\'|'\'') )* '\''
      ;
  
  fragment
  ESC_SEQ
      :   '\\' ( '\"'  | '\''  | '\\' | '|' | [a-zA-Z0-9]+ | '(' | ')' | '{' | '}' | '[' | ']' 
      | '+' | '*' | '-' | '/' | '^' | '%' | '$' | '&' | '<' | '>' | '=' | '~' | '!'
      | '@' | '#' | '.' | ',' | ';' | ':' | '?' | '\n' | '\r') ;
  
  
  WS : ([ \r\n\t] | '(' | ')' | '[' | ']' | '{' | '}' | '.' | ';' | ':' | ',')+ -> skip;
  