Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/share/doc/autogen/autogen.html/ drwxr-xr-x | |
| Viewing file: Select action/file-type: Next: Alternate Definition, Previous: Example, Up: Definitions File [Contents][Index] 2.9 Finite State Machine GrammarThe 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, Previous: Example, Up: Definitions File [Contents][Index] |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0054 ]-- |