Next: Alternate Definition Forms, Previous: What it all looks like., Up: Definitions File [Contents][Index]
The preprocessing directives and comments are not part of the grammar. They are handled by the scanner/lexer. The following was extracted directly from the generated defParse-fsm.c source file. The "EVT:" is the token seen, the "STATE:" is the current state and the entries in this table describe the next state and the action to take. Invalid transitions were removed from the table.
dp_trans_table[ DP_STATE_CT ][ DP_EVENT_CT ] = { /* STATE 0: DP_ST_INIT */ { { DP_ST_NEED_DEF, NULL }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 1: DP_ST_NEED_DEF */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_NEED_TPL, NULL }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 2: DP_ST_NEED_TPL */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_NEED_SEMI, dp_do_tpl_name }, /* EVT: VAR_NAME */ { DP_ST_NEED_SEMI, dp_do_tpl_name }, /* EVT: OTHER_NAME */ { DP_ST_NEED_SEMI, dp_do_tpl_name }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 3: DP_ST_NEED_SEMI */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_NEED_NAME, NULL }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 4: DP_ST_NEED_NAME */ { { DP_ST_NEED_DEF, NULL }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_DONE, dp_do_need_name_end }, /* EVT: End-Of-File */ { DP_ST_HAVE_NAME, dp_do_need_name_var_name }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_HAVE_VALUE, dp_do_end_block }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 5: DP_ST_HAVE_NAME */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_NEED_NAME, dp_do_empty_val }, /* EVT: ; */ { DP_ST_NEED_VALUE, dp_do_have_name_lit_eq }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_NEED_IDX, NULL }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 6: DP_ST_NEED_VALUE */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_HAVE_VALUE, dp_do_str_value }, /* EVT: VAR_NAME */ { DP_ST_HAVE_VALUE, dp_do_str_value }, /* EVT: OTHER_NAME */ { DP_ST_HAVE_VALUE, dp_do_str_value }, /* EVT: STRING */ { DP_ST_HAVE_VALUE, dp_do_str_value }, /* EVT: HERE_STRING */ { DP_ST_NEED_NAME, dp_do_need_value_delete_ent }, /* EVT: DELETE_ENT */ { DP_ST_HAVE_VALUE, dp_do_str_value }, /* EVT: NUMBER */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_NEED_NAME, dp_do_start_block }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 7: DP_ST_NEED_IDX */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_NEED_CBKT, dp_do_indexed_name }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_NEED_CBKT, dp_do_indexed_name }, /* EVT: NUMBER */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 8: DP_ST_NEED_CBKT */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INDX_NAME, NULL } /* EVT: ] */ /* STATE 9: DP_ST_INDX_NAME */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_NEED_NAME, dp_do_empty_val }, /* EVT: ; */ { DP_ST_NEED_VALUE, NULL }, /* EVT: = */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */ /* STATE 10: DP_ST_HAVE_VALUE */ { { DP_ST_INVALID, dp_do_invalid }, /* EVT: AUTOGEN */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DEFINITIONS */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: End-Of-File */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: VAR_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: OTHER_NAME */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: HERE_STRING */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: DELETE_ENT */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: NUMBER */ { DP_ST_NEED_NAME, NULL }, /* EVT: ; */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: = */ { DP_ST_NEED_VALUE, dp_do_next_val }, /* EVT: , */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: { */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: } */ { DP_ST_INVALID, dp_do_invalid }, /* EVT: [ */ { DP_ST_INVALID, dp_do_invalid } /* EVT: ] */
Next: Alternate Definition Forms, Previous: What it all looks like., Up: Definitions File [Contents][Index]