anchor.diff:  class_decl_stmnt:			intern_class_decl_stmnt | extern_class_decl_stmnt;
   intern_class_decl_stmnt:	'class' class_name type_inheritance? class_body;
   extern_class_decl_stmnt:	'extern' 'class' class_name extern_class_body;
  -class_body:					'{' decl_stmnt_list? '}';
  +class_body:					'{' (class_visibility? decl_stmnt_list?)* '}';
  +class_visibility:			class_visibility_type ':';
  +class_visibility_type:		'public' | 'private';
   extern_class_body:			'{' extern_decl_stmnt_list? '}';
   class_name:					IDENT;
   
  
positive.code: // FUNCTIONS
  function_decl_stmnt:		attribute_prefix? function_head code_block;
  extern_function_decl_stmnt:	attribute_prefix? function_head;
  function_head:				function_modifier? type_denoter variable_ident '(' parameter_list? ')';
  function_modifier:			'static';
  parameter_list:				parameter (',' parameter)*;
  parameter:					type_denoter variable_ident (':=' expr)?;
  
  init_decl_stmnt:			attribute_prefix? init_head code_block;
  extern_init_decl_stmnt:		attribute_prefix? init_head;
  
negative.code: object_expr			: variable_name
  					| new_expr;
  
  new_expr:			'new' data_type_denoter (array_dimension | constructor_init)?;
  array_dimension:	'[' arithmetic_expr ']';
  constructor_init:	'(' argument_list? ')';
  
  literal_expr:		LITERAL;
  bracket_expr:		'(' arithmetic_expr ')';
  cast_expr: 			'(' data_type_denoter ')' value_expr;
  call_expr:			function_call;
  unary_expr:			('~' | '-' | 'not') value_expr;
  
  