file:
node
EOF
file
::=
node
*
EOF
no references
node:
CODE
COMMENT
declare_plugin
grammar_extend
vernac_extend
tactic_extend
argument_extend
doc_gram
node
::=
CODE
|
COMMENT
|
declare_plugin
|
grammar_extend
|
vernac_extend
|
tactic_extend
|
argument_extend
|
doc_gram
referenced by:
file
declare_plugin:
DECLARE
PLUGIN
STRING
declare_plugin
::= 'DECLARE' 'PLUGIN'
STRING
referenced by:
node
grammar_extend:
GRAMMAR
EXTEND
qualid_or_ident
globals
gram_entry
END
grammar_extend
::= 'GRAMMAR' 'EXTEND'
qualid_or_ident
globals
gram_entry
* 'END'
referenced by:
node
argument_extend:
ARGUMENT
EXTEND
IDENT
typed_opt
printed_opt
interpreted_opt
globalized_opt
substituted_opt
raw_printed_opt
glob_printed_opt
VERNAC
ARGUMENT
EXTEND
IDENT
printed_opt
tactic_rules
END
argument_extend
::= ( 'ARGUMENT' 'EXTEND'
IDENT
typed_opt
printed_opt
interpreted_opt
globalized_opt
substituted_opt
raw_printed_opt
glob_printed_opt
| 'VERNAC' 'ARGUMENT' 'EXTEND'
IDENT
printed_opt
)
tactic_rules
'END'
referenced by:
node
printed_opt:
PRINTED
BY
CODE
printed_opt
::= ( 'PRINTED' 'BY'
CODE
)?
referenced by:
argument_extend
raw_printed_opt:
RAW_PRINTED
BY
CODE
raw_printed_opt
::= ( 'RAW_PRINTED' 'BY'
CODE
)?
referenced by:
argument_extend
glob_printed_opt:
GLOB_PRINTED
BY
CODE
glob_printed_opt
::= ( 'GLOB_PRINTED' 'BY'
CODE
)?
referenced by:
argument_extend
interpreted_opt:
INTERPRETED
BY
CODE
interpreted_opt
::= ( 'INTERPRETED' 'BY'
CODE
)?
referenced by:
argument_extend
globalized_opt:
GLOBALIZED
BY
CODE
globalized_opt
::= ( 'GLOBALIZED' 'BY'
CODE
)?
referenced by:
argument_extend
substituted_opt:
SUBSTITUTED
BY
CODE
substituted_opt
::= ( 'SUBSTITUTED' 'BY'
CODE
)?
referenced by:
argument_extend
typed_opt:
TYPED
AS
argtype
typed_opt
::= ( 'TYPED' 'AS'
argtype
)?
referenced by:
argument_extend
argtype:
argtype
IDENT
(
argtype
*
argtype
)
argtype
::=
argtype
?
IDENT
| '('
argtype
'*'
argtype
')'
referenced by:
argtype
typed_opt
vernac_extend:
VERNAC
vernac_entry
EXTEND
IDENT
vernac_classifier
vernac_state
vernac_rule
END
vernac_extend
::= 'VERNAC'
vernac_entry
'EXTEND'
IDENT
vernac_classifier
vernac_state
vernac_rule
+ 'END'
referenced by:
node
vernac_entry:
COMMAND
CODE
vernac_entry
::= 'COMMAND'
|
CODE
referenced by:
vernac_extend
vernac_classifier:
CLASSIFIED
BY
CODE
AS
IDENT
vernac_classifier
::= ( 'CLASSIFIED' ( 'BY'
CODE
| 'AS'
IDENT
) )?
referenced by:
vernac_extend
vernac_state:
STATE
IDENT
vernac_state
::= ( 'STATE'
IDENT
)?
referenced by:
vernac_extend
vernac_rule:
|
vernac_attributes_opt
rule_state
[
ext_tokens
]
rule_deprecation
rule_classifier
->
CODE
vernac_rule
::= '|'
vernac_attributes_opt
rule_state
'['
ext_tokens
']'
rule_deprecation
rule_classifier
'->'
CODE
referenced by:
vernac_extend
rule_state:
![
IDENT
]
rule_state
::= ( '!['
IDENT
']' )?
referenced by:
vernac_rule
vernac_attributes_opt:
#[
vernac_attribute
;
;
]
vernac_attributes_opt
::= ( '#['
vernac_attribute
( ';'
vernac_attribute
)* ';'? ']' )?
referenced by:
vernac_rule
vernac_attribute:
qualid_or_ident
=
qualid_or_ident
vernac_attribute
::=
qualid_or_ident
( '='
qualid_or_ident
)?
referenced by:
vernac_attributes_opt
rule_deprecation:
DEPRECATED
rule_deprecation
::= 'DEPRECATED'?
referenced by:
vernac_rule
rule_classifier:
=>
CODE
rule_classifier
::= ( '=>'
CODE
)?
referenced by:
vernac_rule
tactic_extend:
TACTIC
EXTEND
IDENT
tactic_deprecated
tactic_level
tactic_rules
END
tactic_extend
::= 'TACTIC' 'EXTEND'
IDENT
tactic_deprecated
tactic_level
tactic_rules
'END'
referenced by:
node
tactic_deprecated:
DEPRECATED
CODE
tactic_deprecated
::= ( 'DEPRECATED'
CODE
)?
referenced by:
tactic_extend
tactic_level:
LEVEL
INT
tactic_level
::= ( 'LEVEL'
INT
)?
referenced by:
tactic_extend
tactic_rules:
tactic_rule
tactic_rules
::=
tactic_rule
*
referenced by:
argument_extend
tactic_extend
tactic_rule:
|
[
ext_tokens
]
->
CODE
tactic_rule
::= '|' '['
ext_tokens
']' '->'
CODE
referenced by:
tactic_rules
ext_tokens:
ext_token
ext_tokens
::=
ext_token
*
referenced by:
tactic_rule
vernac_rule
ext_token:
STRING
IDENT
(
IDENT
,
STRING
)
ext_token
::=
STRING
|
IDENT
( '('
IDENT
( ','
STRING
)? ')' )?
referenced by:
ext_tokens
qualid_or_ident:
QUALID
IDENT
qualid_or_ident
::=
QUALID
|
IDENT
referenced by:
doc_gram_entry
doc_gram_gram_token
globals
gram_entry
gram_token
grammar_extend
vernac_attribute
globals:
GLOBAL
:
qualid_or_ident
;
globals
::= ( 'GLOBAL' ':'
qualid_or_ident
* ';' )?
referenced by:
grammar_extend
gram_entry:
qualid_or_ident
:
reuse
[
[
rules_opt
]
position_opt
[
level
|
]
;
gram_entry
::=
qualid_or_ident
':' (
reuse
'[' '['
rules_opt
']' |
position_opt
'['
level
( '|'
level
)* ) ']' ';'
referenced by:
grammar_extend
reuse:
TOP
LEVEL
STRING
reuse
::= 'TOP'
| 'LEVEL'
STRING
referenced by:
gram_entry
position_opt:
position
position_opt
::=
position
?
referenced by:
gram_entry
position:
FIRST
LAST
BEFORE
AFTER
STRING
position
::= 'FIRST'
| 'LAST'
| ( 'BEFORE' | 'AFTER' )
STRING
referenced by:
position_opt
string_opt:
STRING
string_opt
::=
STRING
?
referenced by:
level
assoc_opt:
assoc
assoc_opt
::=
assoc
?
referenced by:
level
assoc:
LEFTA
RIGHTA
NONA
assoc
::= 'LEFTA'
| 'RIGHTA'
| 'NONA'
referenced by:
assoc_opt
level:
string_opt
assoc_opt
[
rules_opt
]
level
::=
string_opt
assoc_opt
'['
rules_opt
']'
referenced by:
gram_entry
rules_opt:
rules
rules_opt
::=
rules
?
referenced by:
gram_entry
level
rules:
rule
|
rules
::=
rule
( '|'
rule
)*
referenced by:
gram_token
rules_opt
rule:
symbols_opt
->
CODE
rule
::=
symbols_opt
'->'
CODE
referenced by:
rules
symbols_opt:
symbol
;
symbols_opt
::= (
symbol
( ';'
symbol
)* )?
referenced by:
rule
symbol:
IDENT
=
gram_tokens
symbol
::= (
IDENT
'=' )?
gram_tokens
referenced by:
symbols_opt
gram_token:
qualid_or_ident
LEVEL
STRING
(
gram_tokens
)
[
rules
]
STRING
gram_token
::=
qualid_or_ident
( 'LEVEL'
STRING
)?
| '('
gram_tokens
')'
| '['
rules
']'
|
STRING
referenced by:
gram_tokens
gram_tokens:
gram_token
gram_tokens
::=
gram_token
+
referenced by:
gram_token
symbol
doc_gram:
DOC_GRAMMAR
doc_gram_entry
doc_gram
::= 'DOC_GRAMMAR'
doc_gram_entry
*
referenced by:
node
doc_gram_entry:
qualid_or_ident
:
[
|
doc_gram_rules
]
doc_gram_entry
::=
qualid_or_ident
':' '[' ( '|'
doc_gram_rules
)? ']'
referenced by:
doc_gram
doc_gram_rules:
doc_gram_rule
|
doc_gram_rules
::=
doc_gram_rule
( '|'
doc_gram_rule
)*
referenced by:
doc_gram_entry
doc_gram_gram_token
doc_gram_rule:
doc_gram_symbols_opt
doc_gram_rule
::=
doc_gram_symbols_opt
referenced by:
doc_gram_rules
doc_gram_symbols_opt:
doc_gram_symbol
;
;
doc_gram_symbols_opt
::= (
doc_gram_symbol
( ';'
doc_gram_symbol
)* ';'? )?
referenced by:
doc_gram_rule
doc_gram_symbol:
IDENT
=
doc_gram_gram_tokens
doc_gram_symbol
::= (
IDENT
'=' )?
doc_gram_gram_tokens
referenced by:
doc_gram_symbols_opt
doc_gram_gram_tokens:
doc_gram_gram_token
doc_gram_gram_tokens
::=
doc_gram_gram_token
+
referenced by:
doc_gram_gram_token
doc_gram_symbol
doc_gram_gram_token:
qualid_or_ident
(
doc_gram_gram_tokens
)
[
doc_gram_rules
]
STRING
doc_gram_gram_token
::=
qualid_or_ident
| '('
doc_gram_gram_tokens
')'
| '['
doc_gram_rules
']'
|
STRING
referenced by:
doc_gram_gram_tokens
... generated by
RR - Railroad Diagram Generator
R
R