Difference between revisions of "Syntax checking/Parser"

Line 4: Line 4:
  
 
====EIFFEL_PARSER====
 
====EIFFEL_PARSER====
* has a feature parse(file)
+
* inherits from EIFFEL_PARSER_SKELETON (where the features parse, parse_string, make_with_factory are implemented)
 +
* make_with_factory (a_factory: AST_FACTORY): give argument of type AST_NULL_FACTORY (inherits from AST_FACTORY)
 +
* parse (a_file: KL_BINARY_INPUT_FILE) and parse_from_string (a_string: STRING): Both save the results in match_list: LEAF_AS_LIST.
 
====CLASS_AS====
 
====CLASS_AS====
 
* AST of a class
 
* AST of a class

Revision as of 04:35, 17 May 2006

back to Syntax checking page

Important Classes

EIFFEL_PARSER

  • inherits from EIFFEL_PARSER_SKELETON (where the features parse, parse_string, make_with_factory are implemented)
  • make_with_factory (a_factory: AST_FACTORY): give argument of type AST_NULL_FACTORY (inherits from AST_FACTORY)
  • parse (a_file: KL_BINARY_INPUT_FILE) and parse_from_string (a_string: STRING): Both save the results in match_list: LEAF_AS_LIST.

CLASS_AS

  • AST of a class

ERROR

  • deferred; superclass of all error types like EIFFEL_ERROR or SYNTAX_ERROR
  • features line, column: INTEGER give location of error

ERROR_HANDLER

  • feature error_list: ERROR is a list of errors found by the parser

SHARED_ERROR_HANDLER

  • singleton used by all relevant classes

EIFFEL_CLASS_C

  • features build_ast and parse_ast show how the parser can be used.