anchor.diff:  Nonterminals
   
  -start_parser 
  -class_definition oo_definitions
  -extends_definition export_definition constructor_definition import_definition
  +erlang_class
  +class_name oo_definitions
  +class_extends class_exports class_constructor class_import
   class_attributes attributes_definition attributes_definition_list 
  -identifier_list export_list
  -value
  +identifier_list method_declaration_list method_declaration
  +erlang_argument
   class_methods
   method_definition_list method_definition method_signature
   method_body method_statment_list method_statment
  
positive.code: attributes_definition_list -> attributes_definition attributes_definition_list
  				:['$1' | '$2'].
  
  attributes_definition -> identifier '=' value : {unwrap('$1'), '$3'}.
  
  
  
  value -> integer	: unwrap('$1').
  value -> null		: unwrap('$1').
  value -> float		: unwrap('$1').	
  value -> text		: unwrap('$1').
  
  class_methods -> 'class' 'methods.' method_definition_list
  			: {'class methods.', '$3','.'}.
  
negative.code: 'class' 'attributes.' 'methods.'.
  
  
  Rootsymbol erlang_class.
  
  
  erlang_class -> class_name oo_definitions class_methods
  		: ['$1', '$2', '$3'].
  erlang_class -> class_name oo_definitions class_attributes class_methods
  		: ['$1', '$2', '$3', '$4'].
  
  oo_definitions -> class_exports 				: ['$1'].
  
  oo_definitions -> class_exports class_constructor 	: ['$1', '$2'].
  oo_definitions -> class_constructor class_exports  	: ['$1', '$2'].
  
  oo_definitions -> class_extends class_constructor 	: ['$1', '$2'].
  oo_definitions -> class_constructor class_extends  	: ['$1', '$2'].
  
  oo_definitions -> class_import class_constructor 	: ['$1', '$2'].
  oo_definitions -> class_constructor class_import  	: ['$1', '$2'].
  
  oo_definitions -> class_exports class_import 		: ['$1', '$2'].
  oo_definitions -> class_import class_exports  		: ['$1', '$2'].
  
  
  oo_definitions -> class_exports class_constructor class_extends
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_exports class_extends class_constructor
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_constructor class_exports class_extends
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_constructor  class_extends class_exports
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_extends class_exports class_constructor
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_extends class_constructor class_exports 
  		: ['$1', '$2', '$3'].
  
  oo_definitions -> class_exports class_import class_extends
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_exports class_extends class_import
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_import class_exports class_extends
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_import  class_extends class_exports
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_extends class_exports class_import
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_extends class_import class_exports 
  		: ['$1', '$2', '$3'].
  
  oo_definitions -> class_exports class_constructor class_import
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_exports class_import class_constructor
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_constructor class_exports class_import
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_constructor  class_import class_exports
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_import class_exports class_constructor
  		: ['$1', '$2', '$3'].
  oo_definitions -> class_import class_constructor class_exports 
  		: ['$1', '$2', '$3'].
  
  oo_definitions -> class_exports class_constructor class_extends
  			class_import :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_exports class_constructor class_import
  			class_extends :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_exports class_extends class_constructor
  			class_import :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_exports class_extends class_import
  			class_constructor :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_exports class_import class_constructor
  			class_extends :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_exports class_import class_extends
  			class_constructor :['$1', '$2', '$3', '$4'].
  
  oo_definitions -> class_constructor class_exports class_extends
  			class_import :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_constructor class_exports class_import
  			class_extends :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_constructor class_extends class_exports
  			class_import :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_constructor class_extends class_import
  			class_exports :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_constructor class_import class_exports
  			class_extends :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_constructor class_import class_extends
  			class_exports :['$1', '$2', '$3', '$4'].
  
  oo_definitions -> class_extends class_constructor class_exports
  			class_import :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_extends class_constructor class_import
  			class_exports :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_extends class_exports class_constructor
  			class_import :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_extends class_exports class_import
  			class_constructor :['$1', '$2', '$3', '$4']. 
  oo_definitions -> class_extends class_import class_constructor
  			class_exports :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_extends class_import class_exports
  			class_constructor :['$1', '$2', '$3', '$4'].
  
  oo_definitions -> class_import class_constructor class_extends
  			class_exports :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_import class_constructor class_exports
  			class_extends :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_import class_extends class_constructor
  			class_exports :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_import class_extends class_exports
  			class_constructor :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_import class_exports class_constructor
  			class_extends :['$1', '$2', '$3', '$4'].
  oo_definitions -> class_import class_exports class_extends
  			class_constructor :['$1', '$2', '$3', '$4'].
  
  class_name -> '-class' '(' identifier ')' '.'
  		: {class, unwrap('$3')}.
  
  class_constructor -> constructor '(' identifier '/' integer ')' '.'
  		: {constructor, unwrap('$3'), unwrap('$5')}.
  
  class_extends -> extends '(' identifier ')' '.'
  		: {extends, unwrap('$3')}.
  
  class_exports -> export '(' '[' method_declaration_list ']' ')' '.'	
  		: {export, '$4'}.
  
  method_declaration_list -> method_declaration 
  		: ['$1']. 
  method_declaration_list -> method_declaration ',' method_declaration_list
  		: ['$1' | '$3'].
  
  method_declaration  -> identifier '/' integer: {unwrap('$1'), unwrap('$3')}.
  
  class_import -> import '(' '[' identifier_list ']' ')' '.'
  		: {import, '$4'}.
  
  identifier_list -> identifier : [unwrap('$1')].
  identifier_list -> identifier ',' identifier_list : [unwrap('$1') | ('$3')].
  
  class_attributes -> 'class' 'attributes.' attributes_definition_list 
  		: {'class attributes.', '$3', '.'}.
  