JavaCC - Sintaxis JavaCC: Generalidades

Sintaxis para la especificación de gramáticas JavaCC

JavaCC es un generador de parsers. Para generar un parser para un lenguaje determinado, JavaCC necesita tener como entrada la especificación de dicho lenguaje. La especificación se define por medio de una serie de cláusulas que indican las opciones de personalización del parser, la unidad de compilación, los tokens del lenguaje, la sintaxis, etc, siempre siguiendo una convención sintáctica que a su vez se define por medio de una gramática.

A continuación se define la gramática, llámese G, que genera el lenguaje de las especificaciones de gramáticas que pueden ser procesadas por JavaCC para generar parsers para dichas gramáticas:

G = <T,NT,S,P>

donde

T = {t|t es un símbolo terminal} = {options; EOF; IGNORE_CASE; JAVACODE; LOOKAHEAD; MORE; PARSER_BEGIN; PARSER_END; SKIP; SPECIAL_TOKEN; TOKEN; TOKEN_MGR_DECLS},

NT = {nt|nt es un símbolo no terminal} = {javacc_input; javacc_options; option_binding; production; javacode_production;bnf_production; regular_expr_production; token_manager_decls; lexical_state_list; regexpr_kind; regexpr_spec; expansion_choices; expansion_choices; expansion; expansion_unit; local_lookahead; regular_expresion; complex_regular_expression_choices; complex_regular_expression; complex_regular_expresion_unit; character_list; character_descriptor}

S= axioma inicial = javacc_input

P = conjunto de producciones