Previous - Up - Next
1 Formal Grammar
- dml →
-
device objident ";" syntax_modifiers device_statements
| syntax_modifiers device_statements - syntax_modifiers →
-
<empty>
| syntax_modifiers syntax_modifier - syntax_modifier →
-
bitorder ident ";"
- device_statements →
-
device_statements device_statement
| <empty> - device_statement →
-
object_statement
| toplevel
| import - object →
-
bank maybe_objident object_spec
| register objident sizespec offsetspec istemplate object_spec
| register objident "[" arraydef "]" sizespec offsetspec istemplate object_spec
| field objident bitrange istemplate object_spec
| field objident istemplate object_spec
| data cdecl ";"
| connect objident object_spec
| interface objident object_spec
| attribute objident object_spec
| event objident object_spec
| group objident object_spec
| implement objident object_spec
| attribute objident "[" arraydef "]" object_spec
| group objident "[" arraydef "]" object_spec
| connect objident "[" arraydef "]" object_spec - method →
-
method objident method_params method_def
| method extern objident method_params method_def - arraydef →
-
expression
| ident in expression ".." expression - toplevel →
-
template objident object_spec
| header "%{ ... %}"
| footer "%{ ... %}"
| loggroup ident ";"
| constant ident "=" expression ";"
| extern cdecl_or_ident ";"
| typedef cdecl ";"
| struct ident "{" struct_decls "}" - istemplate_stmt →
-
is objident ";"
- import →
-
import string-literal ";"
- object_desc →
-
string-literal
| <empty> - object_spec →
-
object_desc ";"
| object_desc "{" object_statements "}" - object_statements →
-
object_statements object_statement
| <empty> - object_statement →
-
object
| parameter
| method
| istemplate_stmt - parameter →
-
parameter objident paramspec
- paramspec →
-
";"
| "=" expression ";"
| default expression ";"
| auto ";" - method_params →
-
<empty>
| "(" cdecl_or_ident_list ")"
| "->" "(" cdecl_or_ident_list ")"
| "(" cdecl_or_ident_list ")" "->" "(" cdecl_or_ident_list ")" - returnargs →
-
<empty>
| "->" "(" expression_list ")" - method_def →
-
compound_statement
| default compound_statement - istemplate →
-
<empty>
| is "(" objident_list ")" - sizespec →
-
size expression
| <empty> - offsetspec →
-
"@" expression
| <empty> - bitrange →
-
"[" expression "]"
| "[" expression ":" expression "]" - cdecl_or_ident →
-
cdecl
- cdecl →
-
typeident cdecl2
| struct cdecl2
| typeof cdecl2
| const typeident cdecl2 - cdecl2 →
-
cdecl3
| const cdecl2
| "*" cdecl2
| vect cdecl2 - cdecl3 →
-
typeident
| <empty>
| cdecl3 "[" expression "]"
| cdecl3 "(" cdecl_list ")"
| "(" cdecl2 ")" - cdecl_list →
-
<empty>
| cdecl_list2 - cdecl_list2 →
-
cdecl
| ELLIPSIS
| cdecl_list2 "," cdecl
| cdecl_list2 "," ELLIPSIS - cdecl_or_ident_list →
-
<empty>
| cdecl_or_ident_list2 - cdecl_or_ident_list2 →
-
cdecl_or_ident
| cdecl_or_ident_list2 "," cdecl_or_ident - typeof →
-
typeof expression
- struct →
-
struct "{" struct_decls "}"
- struct_decls →
-
struct_decls cdecl ";"
| <empty> - ctypedecl →
-
"(" ctypedecl ")"
| typeof expression
| typeident ctypedecl_pointer - ctypedecl_pointer →
-
<empty>
| "*" ctypedecl_pointer - typeident →
-
ident
| char
| double
| float
| int
| long
| short
| signed
| unsigned
| void - comma_expression →
-
expression
| comma_expression "," expression - expression →
-
expression "=" expression
| expression "+=" expression
| expression "-=" expression
| expression "*=" expression
| expression "/=" expression
| expression "%=" expression
| expression "|=" expression
| expression "&=" expression
| expression "^=" expression
| expression "<<=" expression
| expression ">>=" expression
| expression "?" expression ":" expression
| expression "+" expression
| expression "-" expression
| expression "*" expression
| expression "/" expression
| expression "%" expression
| expression "<<" expression
| expression ">>" expression
| expression "==" expression
| expression "!=" expression
| expression "<" expression
| expression ">" expression
| expression "<=" expression
| expression ">=" expression
| expression "||" expression
| expression "&&" expression
| expression "|" expression
| expression "^" expression
| expression "&" expression
| cast "(" expression "," ctypedecl ")"
| sizeof expression
| "-" expression
| "+" expression
| "!" expression
| "~" expression
| "&" expression
| "*" expression
| defined expression
| "#" expression
| "++" expression
| "--" expression
| expression "++"
| expression "--"
| expression "(" expression_list ")"
| integer-literal
| hex-literal
| binary-literal
| float-literal
| string-literal
| undefined
| "$" objident
| ident
| expression "." objident
| expression "->" objident
| sizeoftype ctypedecl
| new ctypedecl
| "(" expression ")"
| "[" expression_list "]"
| expression "[" expression endianflag "]"
| expression "[" expression ":" expression endianflag "]" - endianflag →
-
"," identifier
| <empty> - expression_opt →
-
expression
| <empty> - comma_expression_opt →
-
comma_expression
| <empty> - expression_list →
-
<empty>
| expression
| expression "," expression_list - statement →
-
compound_statement
| ";"
| expression ";"
| if "(" expression ")" statement
| if "(" expression ")" statement else statement
| while "(" expression ")" statement
| do statement while "(" expression ")"
| for "(" comma_expression_opt ";" expression_opt ";" comma_expression_opt ")" statement
| switch "(" expression ")" statement
| delete expression ";"
| try statement catch statement
| after "(" expression ")" call expression ";"
| call expression returnargs ";"
| inline expression returnargs ";"
| assert expression ";"
| log string-literal "," expression "," expression ":" string-literal log_args ";"
| log string-literal "," expression ":" string-literal log_args ";"
| log string-literal ":" string-literal log_args ";"
| select ident in "(" expression ")" where "(" expression ")" statement else statement
| foreach ident in "(" expression ")" statement
| ident ":" statement
| case expression ":" statement
| default ":" statement
| goto ident ";"
| break ";"
| continue ";"
| throw ";"
| return ";"
| error ";"
| error string-literal ";" - log_args →
-
<empty>
| log_args "," expression - compound_statement →
-
"{" locals statement_list "}"
| "{" statement_list "}"
| "{" locals "}"
| "{" "}" - statement_list →
-
statement
| statement_list statement - locals →
-
local
| locals local - local_keyword →
-
local
| auto - local →
-
local_keyword cdecl ";"
| static cdecl ";"
| local_keyword cdecl "=" expression ";"
| static cdecl "=" expression ";" - objident_list →
-
objident
| objident_list "," objident - maybe_objident →
-
objident
| <empty> - objident →
-
ident
| this
| register
| signed
| unsigned - ident →
-
identifier
| attribute
| bank
| bitorder
| connect
| constant
| data
| device
| event
| field
| footer
| group
| header
| implement
| import
| interface
| loggroup
| method
| size
| class
| enum
| namespace
| private
| protected
| public
| restrict
| union
| using
| virtual
| volatile
Previous - Up - Next