|
OpenVADL (v0.2.0-847-gc682f9dc3)
|
Grammar characters | |
| digit | |
| binDigit | |
| hexDigit | |
| letter | |
| validDQStringCharacters | |
| validSQStringCharacters | |
| validSourceCharacters | |
The T_BIN token is used as the name of the syntax type for a binary or hexadecimal literal like '0b10101010' or '0x1234abcd' (binLit or hexLit, see type hierarchy syntax_type_hierarchy).
T_BIN is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_BIN_OP token is used as the name of the syntax type for binary operators like '+' or '*' (see type hierarchy syntax_type_hierarchy).
T_BIN_OP is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_BOOL token is used as the name of the syntax type for the boolean literals 'true' and 'false' (see type hierarchy syntax_type_hierarchy).
#T_BT_BOOLIN is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_CALL_EX token is used as the name of the syntax type for a call expression (see type hierarchy syntax_type_hierarchy).
T_CALL_EX is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_COMMON_DEFS token is used as the name of the syntax type for one or more common definitions like constants, formations or functions (see type hierarchy syntax_type_hierarchy).
T_COMMON_DEFS is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_ENCS token is used as the name of the syntax type for oner or more instruction encodings (see type hierarchy syntax_type_hierarchy).
T_ENCS is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_EX token is used as the name of the syntax type for a general expression (see type hierarchy syntax_type_hierarchy).
T_EX is referenced by basicSyntaxType.
The T_ID token is used as the name of the syntax type for an identifier (see type hierarchy syntax_type_hierarchy).
T_ID is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_INT token is used as the name of the syntax type for a decimal integer literal like '123' (see type hierarchy syntax_type_hierarchy).
T_INT is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_ISA_DEFS token is used as the name of the syntax type of one or more definitions inside the ISA section (see type hierarchy syntax_type_hierarchy).
T_ISA_DEFS is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_LIT token is used as the name of the syntax type for a literal of any type (see type hierarchy syntax_type_hierarchy).
T_LIT is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_STAT token is used as the name of the syntax type for a single statement (see type hierarchy syntax_type_hierarchy).
T_STAT is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_STATS token is used as the name of the syntax type for one or more statements (see type hierarchy syntax_type_hierarchy).
T_STATS is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_STR token is used as the name of the syntax type for a string literal like 'abc' or "abc" (string, see type hierarchy #syntax_type_hierarchy).
T_STR is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_SYM_EX token is used as the name of the syntax type for a symbol expression (see type hierarchy syntax_type_hierarchy).
T_SYM_EX is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_UN_OP token is used as the name of the syntax type for unary operators like '+' or '!' (see type hierarchy syntax_type_hierarchy).
T_UN_OP is referenced by allowedIdentifierKeywords, basicSyntaxType.
The T_VAL token is used as the name of the syntax type for a value literal (see type hierarchy syntax_type_hierarchy).
T_VAL is referenced by allowedIdentifierKeywords, basicSyntaxType.
The vadl production rule is the entry point of a VADL processor specification as well as of the OpenVADL parser.
A VADL specification consists of multiple topLevelDefinition elements like a type alias (usingDefinition) or a function definition (functionDefinition) and sections like the ISA section (instructionsetDefinition). It is also possible to define macros (macroDefinition).
The topLevelDefinition production rule lists (beside macro definitions) all VADL language elements allowed on the top level of a VADL specification.
Listing lst_top_level_definitions gives examples for top level language elements. Annotations (annotations) can be added to most VADL language elements. The htif annotation in line 11 is an annotation for the processor definition (processorDefinition) in line 12. A constant definition (line 1), a using definition (line 2) or a function definition (line 3) are examples for common definitions (commonDefinition). An instruction set architecture definition (instructionsetDefinition) is shown in line 7. An application binary interface definition (applicationBinaryInterfaceDefinition) is shown in line 8. An assembly description (assemblyDescriptionDefinition) is shown in line 9. A micro architecture definition (microArchitectureDefinition) is shown in line 10.
topLevelDefinition is referenced by vadl.
The commonDefinitionList production rule lists (beside macro definitions) all common definition with annotations.
commonDefinitionList is referenced by macroBody.
Multiple annotations (annotations) can by declared in front of many syntactic elements. A single annotation is described in the annotation production rule.
annotations is used by abiElementDefinition, commonDefinitionList, cpuDefinition, isaDefinitionList, miaDefinition, topLevelDefinition.
The microArchitectureDefinition production rule starts the micro architecture section.
microArchitectureDefinition is referenced by topLevelDefinition.
The miaDefinition production rule lists all micro architecture language elements.
Listing lst_mia_definitions gives examples for top level language elements. A micro architecture definition (microArchitectureDefinition) is shown in line 1.
miaDefinition is referenced by microArchitectureDefinition.
Call expressions of form "a::b<3>(1,2)(3,4).c()". Due to the "<"-ambiguity with the less-than operator, this rule can also return a BinaryExpr. Use the "allowLtOp" parameter to disallow this behavior, e.g. in type literals.
Represents one set of invocation arguments. Multiple invocations (e.g. multi-dimensional access) will need multiple arguments. If allowWildcard is true, a argument may be *, which will yield a WildcardLiteral expression.
Parses the longest macro expression (either instance or placeholder) from the parser.