Note | 
|---|
| This is the actual LALR(1) grammar used by the parser. Syntactic constructions accepted by this grammar may be rejected later by semantic analysis. | 
| Program : | |
| Attributes UsingClauses Namespaces END . | |
| Attributes UsingClauses NamespaceSections END . | |
| UsingClauses : | |
| UsingClauses USING UsingReferences ; | |
| ε | |
| UsingReferences : | |
| UsingReferences , NonGenericTypeReference | |
| NonGenericTypeReference | |
| Namespaces : | |
| Namespaces Namespace | |
| Namespace | |
| Namespace : | |
| NAMESPACE NonGenericTypeReference ; UsingClauses NamespaceSections | |
| NamespaceSections : | |
| NamespaceSections PUBLIC TypeDeclarations | |
| NamespaceSections PRIVATE TypeDeclarations | |
| NamespaceSections INTERNAL TypeDeclarations | |
| NamespaceSections IMPLEMENTATION FOR SimpleTypeReference IS MemberImplementations | |
| NamespaceSections IMPLEMENTATION MemberImplementations | |
| ε | |
| TypeDeclarations : | |
| TypeDeclarations Attributes SimpleTypeReference = TypeModifiers TypeConstructor ; | |
| ε | |
| TypeModifiers : | |
| TypeModifiers TypeModifiers | |
| ε | |
| TypeModifiers : | |
| NEW | |
| ABSTRACT | |
| SEALED | |
| STATIC | |
| CONST | |
| PARTIAL | |
| TypeConstructor : | |
| TypeConstr | |
| CLASS FormalGenerics Inheritance | |
| INTERFACE FormalGenerics Inheritance | |
| RECORD FormalGenerics Inheritance | |
| TypeConstr : | |
| ( EnumValues ) EnumBase | |
| METHOD FormalGenerics FormalParameters OptionalType | |
| CLASS FormalGenerics Inheritance TypeSections Invariants TypeImplementation END | |
| RECORD FormalGenerics Inheritance TypeSections Invariants TypeImplementation END | |
| INTERFACE FormalGenerics Inheritance Members Invariants END | |
| TypeImplementation : | |
| IMPLEMENTATION MemberImplementations | |
| ε | |
| EnumBase : | |
| : NonGenericTypeReference | |
| ε | |
| EnumValues : | |
| EnumValues , EnumValue | |
| EnumValue | |
| EnumValue : | |
| identifier EnumInitializer | |
| EnumInitializer : | |
| = Expression | |
| ε | |
| FormalGenerics : | |
| [ FormalTypeList ] | |
| ε | |
| FormalTypeList : | |
| FormalTypeList , FormalType | |
| FormalType | |
| FormalType : | |
| FormalConstraint identifier | |
| FormalConstraint identifier ( Constraints ) | |
| FormalConstraint : | |
| CLASS | |
| RECORD | |
| ε | |
| Constraints : | |
| Constraints , Constraint | |
| Constraint | |
| Constraint : | |
| TypeReference | |
| NEW | |
| Inheritance : | |
| ( TypeReferences ) | |
| ε | |
| TypeSections : | |
| TypeSections Visibility AccessList Members | |
| ε | |
| Visibility : | |
| INTERNAL | |
| PRIVATE | |
| PROTECTED | |
| PUBLIC | |
| INTERNAL AND PROTECTED | |
| PROTECTED AND INTERNAL | |
| INTERNAL OR PROTECTED | |
| PROTECTED OR INTERNAL | |
| AccessList : | |
| [ TypeReferences ] | |
| ε | |
| Members : | |
| Members Attributes OptStatic Member | |
| ε | |
| OptionalBody : | |
| VarGroups BEGIN StatementList BodyPostconditions END ; | |
| BEGIN StatementList BodyPostconditions END ; | |
| ε | |
| OptionalBodyOrExtern : | |
| VarGroups BEGIN StatementList BodyPostconditions END ; | |
| BEGIN StatementList BodyPostconditions END ; | |
| EXTERN ; | |
| ε | |
| Extension : | |
| FOR identifier : TypeReference | |
| ε | |
| ConstantDefinitionList : | |
| ConstantDefinitionList , ConstantDefinition | |
| ConstantDefinition | |
| ConstantDefinition : | |
| identifier = Expression | |
| identifier : TypeReference = Expression | |
| FieldDeclaration : | |
| FieldNames : TypeReference Initializer ; ReadModifier | |
| InnerType : | |
| CLASS | |
| RECORD | |
| INTERFACE | |
| TypeConstr | |
| MemberModifier : | |
| MethodModifier ; | |
| ε | |
| PropertyModifier : | |
| MethodModifier ; READONLY ; | |
| READONLY ; MemberModifier | |
| MemberModifier | |
| MethodModifier : | |
| VIRTUAL | |
| ABSTRACT | |
| OVERRIDE | |
| SEALED | |
| NEW | |
| NEW VIRTUAL | |
| NEW ABSTRACT | |
| VIRTUAL NEW | |
| ABSTRACT NEW | |
| OverloadOp : | |
| SymbolicOp | |
| AND | |
| OR | |
| NOT | |
| TRUE | |
| FALSE | |
| DIV | |
| MOD | |
| SHL | |
| SHR | |
| XOR | |
| identifier | |
| SymbolicOp : | |
| <> | |
| <= | |
| >= | |
| + | |
| - | |
| * | |
| / | |
| \ | |
| % | |
| << | |
| >> | |
| ^ | |
| & | |
| ++ | |
| -- | |
| = | |
| < | |
| > | |
| ReadModifier : | |
| READONLY ; | |
| ε | |
| FormalParameters : | |
| ( ParameterList ) | |
| ε | |
| FormalIndex : | |
| [ ParameterList ] | |
| ( ParameterList ) | |
| ε | |
| ParameterList : | |
| ParameterList ; Parameter | |
| Parameter | |
| Parameter : | |
| Attributes ParameterModifier IdentList : TypeReference | |
| ParameterModifier : | |
| VAR | |
| OUT | |
| ε | |
| IdentList : | |
| IdentList , identifier | |
| identifier | |
| FieldNames : | |
| FieldNames , identifier | |
| identifier | |
| TypeReferences : | |
| TypeReferences , TypeReference | |
| TypeReference | |
| TypeReference : | |
| SimpleTypeReference ? | |
| SimpleTypeReference | |
| SimpleTypeReference : | |
| SimpleTypeReference . identifier | |
| SimpleTypeReference [ TypeReferences ] | |
| SimpleTypeReference @ integer [ TypeReference ] | |
| identifier | |
| OptionalType : | |
| : TypeReference | |
| ε | |
| NonGenericTypeReference : | |
| NonGenericTypeReference . identifier | |
| identifier | |
| Assertions : | |
| Preconditions Postconditions | |
| Preconditions : | |
| REQUIRES AssertionList ; | |
| ε | |
| Postconditions : | |
| ENSURES AssertionList ; | |
| ε | |
| BodyPostconditions : | |
| ENSURES AssertionList OptSemicolon | |
| ε | |
| Invariants : | |
| INVARIANT AssertionList OptSemicolon | |
| ε | |
| OptSemicolon : | |
| ; | |
| ε | |
| AssertionList : | |
| AssertionList , Assertion | |
| Assertion | |
| Assertion : | |
| Expression FOR identifier AssertionName | |
| Expression AssertionName | |
| AssertionName : | |
| RAISE stringliteral | |
| ε | |
| MemberImplementations : | |
| MemberImplementations MemberImplementation | |
| ε | |
| MemberImplementation : | |
| OptStatic METHOD MethodName FormalParameters OptionalType Extension ; MethodBodyExt | |
| OptStatic METHOD MethodName FormalParameters OptionalType Extension => Expression ; | |
| OptStatic ITERATOR MethodName FormalParameters : TypeReference Extension ; MethodBody | |
| OptStatic METHOD SymbolicOp FormalParameters : TypeReference ; MethodBody | |
| OptStatic METHOD SymbolicOp FormalParameters : TypeReference => Expression ; | |
| OptStatic OPERATOR OverloadOp FormalParameters : TypeReference ; MethodBody | |
| OptStatic OPERATOR OverloadOp FormalParameters : TypeReference => Expression ; | |
| INTERFACE Delegations ; | |
| PROPERTY SimpleTypeReference FormalParameters OptionalType ; MethodBody | |
| STATIC FieldDeclaration | |
| FieldDeclaration | |
| CONST ConstantDefinitionList ; | |
| STATIC CONSTRUCTOR ; MethodBody | |
| CLASS CONSTRUCTOR ; MethodBody | |
| CONSTRUCTOR FormalParameters ConstructorInitializer ; OptionalBody | |
| DESTRUCTOR ; MethodBody | |
| EVENT SimpleTypeReference FormalParameters ; MethodBody | |
| identifier = TypeModifiers InnerType ; | |
| OptStatic : | |
| STATIC | |
| ε | |
| Delegations : | |
| Delegations , TypeReference Delegation | |
| TypeReference Delegation | |
| Delegation : | |
| IS identifier | |
| = Expression | |
| ConstructorInitializer : | |
| : identifier OptArguments | |
| ε | |
| MethodName : | |
| identifier | |
| MethodName . identifier | |
| MethodName [ ConstraintsOrTypes ] | |
| ConstraintsOrTypes : | |
| ConstraintsOrTypes , ConstraintOrType | |
| ConstraintOrType | |
| ConstraintOrType : | |
| CLASS identifier | |
| CLASS identifier ( Constraints ) | |
| RECORD identifier | |
| RECORD identifier ( Constraints ) | |
| identifier ( Constraints ) | |
| TypeReference | |
| MethodBody : | |
| VarGroups BEGIN StatementList BodyPostconditions END ; | |
| BEGIN StatementList BodyPostconditions END ; | |
| MethodBodyExt : | |
| VarGroups BEGIN StatementList BodyPostconditions END ; | |
| BEGIN StatementList BodyPostconditions END ; | |
| EXTERN ; | |
| VarGroups : | |
| VarGroups VarGroup | |
| VAR VarGroup | |
| VarGroup : | |
| IdentList : TypeReference ; | |
| VariableDeclaration : | |
| VAR identifier | |
| identifier : TypeReference | |
| StatementList : | |
| StatementList ; LabeledStatement | |
| LabeledStatement | |
| LabeledStatement : | |
| identifier : Statement | |
| Statement | |
| Statement : | |
| SimpleStatement | |
| UnbalancedStatement | |
| SimpleStatement : | |
| BasicExpression := Expression | |
| BasicExpression assign Expression | |
| BasicExpression ++ | |
| BasicExpression -- | |
| BasicExpression | |
| RAISE Expression | |
| RAISE | |
| GOTO identifier | |
| YIELD Expression | |
| BEGIN StatementList END | |
| REPEAT StatementList UNTIL Expression | |
| TRY StatementList FAULT StatementList END | |
| TRY StatementList ExceptionTraps FinallyClause END | |
| CASE Expression OF CaseList Otherwise END | |
| LOOP StatementList END | |
| VAR VarList | |
| CONST ConstantDefinitionList | |
| ε | |
| VarList : | |
| VarList , InlineVar | |
| InlineVar | |
| InlineVar : | |
| identifier : TypeReference := Expression | |
| identifier := Expression | |
| CaseList : | |
| CaseList CaseLabels : Statement ; | |
| CaseLabels : Statement ; | |
| CaseLabels : | |
| CaseLabels , CaseLabel | |
| CaseLabel | |
| CaseLabel : | |
| Expression | |
| Expression .. Expression | |
| Otherwise : | |
| ELSE StatementList | |
| ε | |
| ExceptionTraps : | |
| ExceptionTraps ExceptionTrap | |
| ε | |
| ExceptionTrap : | |
| EXCEPT StatementList | |
| EXCEPT ON identifier : TypeReference DO StatementList | |
| EXCEPT ON TypeReference DO StatementList | |
| FinallyClause : | |
| FINALLY StatementList | |
| ε | |
| UnbalancedStatement : | |
| WHILE Expression DO Statement | |
| USING UsingHeaders DO Statement | |
| FOR VariableDeclaration := Expression ToDown Expression DO Statement | |
| FOR VariableDeclaration IN CaseLabel DO Statement | |
| IF Expression THEN Statement | |
| IF Expression THEN BalancedStatement ELSE Statement | |
| LOCK Expression THEN Statement | |
| BalancedStatement : | |
| SimpleStatement | |
| WHILE Expression DO BalancedStatement | |
| USING UsingHeaders DO BalancedStatement | |
| FOR VariableDeclaration := Expression ToDown Expression DO BalancedStatement | |
| FOR VariableDeclaration IN CaseLabel DO BalancedStatement | |
| IF Expression THEN BalancedStatement ELSE BalancedStatement | |
| LOCK Expression THEN BalancedStatement | |
| ToDown : | |
| TO | |
| DOWNTO | |
| UsingHeaders : | |
| UsingHeaders , UsingHeader | |
| UsingHeader | |
| UsingHeader : | |
| VariableDeclaration := Expression | |
| Expression | |
| Constant : | |
| integer | |
| real | |
| single | |
| stringliteral | |
| TRUE | |
| FALSE | |
| NIL | |
| BasicExpression : | |
| Constant | |
| identifier | |
| ( Expression ) | |
| BasicExpression . identifier | |
| BasicExpression ( Arguments ) | |
| BasicExpression [ ItemList ] | |
| ArrayLiteral | |
| PrimaryExpression : | |
| BasicExpression | |
| OLD BasicExpression | |
| NEW TypeReference OptInitParams OptList | |
| UnaryExpression : | |
| PrimaryExpression | |
| + UnaryExpression | |
| - UnaryExpression | |
| NOT UnaryExpression | |
| ~ UnaryExpression | |
| AdditiveExpression : | |
| AdditiveExpression + MultiplicativeExpression | |
| AdditiveExpression - MultiplicativeExpression | |
| AdditiveExpression | MultiplicativeExpression | |
| MultiplicativeExpression | |
| Conjunction : | |
| Conjunction AND LogicalExpression | |
| LogicalExpression | |
| Disjunction : | |
| Disjunction OR Conjunction | |
| Conjunction | |
| ImplExpr : | |
| Disjunction | |
| Disjunction -> Disjunction | |
| Disjunction <-> Disjunction | |
| Expression : | |
| ImplExpr | |
| IF ImplExpr THEN Expression ELSE Expression | |
| USING VariableList DO Expression | |
| VariableList : | |
| VariableList , identifier := Expression | |
| identifier := Expression | |
| ExpressionList : | |
| ExpressionList , RealParam | |
| RealParam | |
| Arguments : | |
| ExpressionList | |
| ε | |
| OptArguments : | |
| ( ExpressionList ) | |
| ( ) | |
| ε | |
| RealParam : | |
| VAR BasicExpression | |
| OUT BasicExpression | |
| Expression | |
| OptInitParams : | |
| ( InitParams ) | |
| ( ) | |
| ε | |
| InitParams : | |
| InitParams , InitParam | |
| InitParam | |
| InitParam : | |
| identifier := Expression | |
| Expression | |
| VAR BasicExpression | |
| OUT BasicExpression | |
| ArrayLiteral : | |
| [ ItemList ] | |
| [ ] | |
| ItemList : | |
| ItemList , Expression | |
| Expression | |
| OptList : | |
| ! ArrayLiteral | |
| ε | |
| Initializer : | |
| = Expression | |
| ε | |
| Attributes : | |
| Attributes < AttributeList > | |
| ε | |
| AttributeList : | |
| AttributeList , Attribute | |
| Attribute | |
| Attribute : | |
| NonGenericTypeReference AttributeParameters | |
| identifier : NonGenericTypeReference AttributeParameters | |
| AttributeParameters : | |
| ( AttributeArgumentList ) | |
| ( ) | |
| ε | |
| AttributeArgumentList : | |
| AttributeArgumentList , AttributeArgument | |
| AttributeArgument | |
| AttributeArgument : | |
| identifier := Expression | |
| Expression | |
Home
The Freya Programming Language
Sharp Blade: the Integrated Development Environment