Goal -> (Program | Package | Library | Unit)
Program -> [PROGRAM Ident ['(' IdentList ')'] ';']
ProgramBlock '.'
Unit -> UNIT Ident ';'
InterfaceSection
ImplementationSection
InitSection '.'
Package -> PACKAGE Ident ';'
[RequiresClause]
[ContainsClause]
END '.'
Library -> LIBRARY Ident ';'
ProgramBlock '.'
ProgramBlock -> [UsesClause]
Block
UsesClause -> USES IdentList ';'
InterfaceSection -> INTERFACE
[UsesClause]
[InterfaceDecl]...
InterfaceDecl -> ConstSection
-> TypeSection
-> VarSection
-> ExportedHeading
ExportedHeading -> ProcedureHeading ';' [Directive]
-> FunctionHeading ';' [Directive]
ImplementationSection -> IMPLEMENTATION
[UsesClause]
[DeclSection]...
Block -> [DeclSection]
CompoundStmt
DeclSection -> LabelDeclSection
-> ConstSection
-> TypeSection
-> VarSection
-> ProcedureDeclSection
LabelDeclSection -> LABEL LabelId
ConstSection -> CONST (ConstantDecl ';')...
ConstantDecl -> Ident '=' ConstExpr
-> Ident ':' TypeId '=' TypedConstant
TypeSection -> TYPE (TypeDecl ';')...
TypeDecl -> Ident '=' Type
-> Ident '=' RestrictedType
TypedConstant -> (ConstExpr | ArrayConstant | RecordConstant)
ArrayConstant -> '(' TypedConstant/','... ')'
RecordConstant -> '(' RecordFieldConstant/';'... ')'
RecordFieldConstant -> Ident ':' TypedConstant
Type -> TypeId
-> SimpleType
-> StrucType
-> PointerType
-> StringType
-> ProcedureType
-> VariantType
-> ClassRefType
RestrictedType -> ObjectType
-> ClassType
-> InterfaceType
ClassRefType -> CLASS OF TypeId
SimpleType -> (OrdinalType | RealType)
RealType -> REAL48
-> REAL
-> SINGLE
-> DOUBLE
-> EXTENDED
-> CURRENCY
-> COMP
OrdinalType -> (SubrangeType | EnumeratedType | OrdIdent)
OrdIdent -> SHORTINT
-> SMALLINT
-> INTEGER
-> BYTE
-> LONGINT
-> INT64
-> WORD
-> BOOLEAN
-> CHAR
-> WIDECHAR
-> LONGWORD
-> PCHAR
VariantType -> VARIANT
-> OLEVARIANT
SubrangeType -> ConstExpr '..' ConstExpr
EnumeratedType -> '(' IdentList ')'
StringType -> STRING
-> ANSISTRING
-> WIDESTRING
-> STRING '[' ConstExpr ']'
StrucType -> [PACKED] (ArrayType | SetType | FileType | RecType)
ArrayType -> ARRAY ['[' OrdinalType/','... ']'] OF Type
RecType -> RECORD [FieldList] END
FieldList -> FieldDecl/';'... [VariantSection] [';']
FieldDecl -> IdentList ':' Type
VariantSection -> CASE [Ident ':'] TypeId OF RecVariant/';'...
RecVariant -> ConstExpr/','... ':' '(' [FieldList] ')'
SetType -> SET OF OrdinalType
FileType -> FILE OF TypeId
PointerType -> '^' TypeId
ProcedureType -> (ProcedureHeading | FunctionHeading) [OF OBJECT]
VarSection -> VAR (VarDecl ';')...
VarDecl -> IdentList ':' Type [(ABSOLUTE (Ident | ConstExpr)) | '=' ConstExpr]
Expression -> SimpleExpression [RelOp SimpleExpression]...
SimpleExpression -> ['+' | '-'] Term [AddOp Term]...
Term -> Factor [MulOp Factor]...
Factor -> Designator ['(' ExprList ')']
-> '' Designator
-> Number
-> String
-> NIL
-> '(' Expression ')'
-> NOT Factor
-> SetConstructor
-> TypeId '(' Expression ')'
RelOp -> '>'
-> '<'
-> '<='
-> '>='
-> '<>'
-> IN
-> IS
-> AS
AddOp -> '+'
-> '-'
-> OR
-> XOR
MulOp -> '*'
-> '/'
-> DIV
-> MOD
-> AND
-> SHL
-> SHR
Designator -> QualId ['.' Ident | '[' ExprList ']' | '^']...
SetConstructor -> '[' [SetElement/','...] ']'
SetElement -> Expression ['..' Expression]
ExprList -> Expression/','...
Statement -> [LabelId ':'] [SimpleStatement | StructStmt]
StmtList -> Statement/';'...
SimpleStatement -> Designator ['(' ExprList ')']
-> Designator ':=' Expression
-> INHERITED
-> GOTO LabelId
StructStmt -> CompoundStmt
-> ConditionalStmt
-> LoopStmt
-> WithStmt
CompoundStmt -> BEGIN StmtList END
ConditionalStmt -> IfStmt
-> CaseStmt
IfStmt -> IF Expression THEN Statement [ELSE Statement]
CaseStmt -> CASE Expression OF CaseSelector/';'... [ELSE Statement] [';'] END
CaseSelector -> CaseLabel/','... ':' Statement
CaseLabel -> ConstExpr ['..' ConstExpr]
LoopStmt -> RepeatStmt
-> WhileStmt
-> ForStmt
RepeatStmt -> REPEAT Statement UNTIL Expression
WhileStmt -> WHILE Expression DO Statement
ForStmt -> FOR QualId ':=' Expression (TO | DOWNTO) Expression DO Statement
WithStmt -> WITH IdentList DO Statement
ProcedureDeclSection -> ProcedureDecl
-> FunctionDecl
ProcedureDecl -> ProcedureHeading ';' [Directive]
Block ';'
FunctionDecl -> FunctionHeading ';' [Directive]
Block ';'
FunctionHeading -> FUNCTION Ident [FormalParameters] ':' (SimpleType | STRING)
ProcedureHeading -> PROCEDURE Ident [FormalParameters]
FormalParameters -> '(' FormalParm/';'... ')'
FormalParm -> [VAR | CONST | OUT] Parameter
Parameter -> IdentList [':' ([ARRAY OF] SimpleType | STRING | FILE)]
-> Ident ':' SimpleType '=' ConstExpr
Directive -> CDECL
-> REGISTER
-> DYNAMIC
-> VIRTUAL
-> EXPORT
-> EXTERNAL
-> FAR
-> FORWARD
-> MESSAGE
-> OVERRIDE
-> OVERLOAD
-> PASCAL
-> REINTRODUCE
-> SAFECALL
-> STDCALL
ObjectType -> OBJECT [ObjHeritage] [ObjFieldList] [MethodList] END
ObjHeritage -> '(' QualId ')'
MethodList -> (MethodHeading [';' VIRTUAL])/';'...
MethodHeading -> ProcedureHeading
-> FunctionHeading
-> ConstructorHeading
-> DestructorHeading
ConstructorHeading -> CONSTRUCTOR Ident [FormalParameters]
DestructorHeading -> DESTRUCTOR Ident [FormalParameters]
ObjFieldList -> (IdentList ':' Type)/';'...
InitSection -> INITIALIZATION StmtList [FINALIZATION StmtList] END
-> BEGIN StmtList END
-> END
ClassType -> CLASS [ClassHeritage]
[ClassFieldList]
[ClassMethodList]
[ClassPropertyList]
END
ClassHeritage -> '(' IdentList ')'
ClassVisibility -> [PUBLIC | PROTECTED | PRIVATE | PUBLISHED]
ClassFieldList -> (ClassVisibility ObjFieldList)/';'...
ClassMethodList -> (ClassVisibility MethodList)/';'...
ClassPropertyList -> (ClassVisibility PropertyList ';')...
PropertyList -> PROPERTY Ident [PropertyInterface] PropertySpecifiers
PropertyInterface -> [PropertyParameterList] ':' Ident
PropertyParameterList -> '[' (IdentList ':' TypeId)/';'... ']'
PropertySpecifiers -> [INDEX ConstExpr]
[READ Ident]
[WRITE Ident]
[STORED (Ident | Constant)]
[(DEFAULT ConstExpr) | NODEFAULT]
[IMPLEMENTS TypeId]
InterfaceType -> INTERFACE [InterfaceHeritage]
[ClassMethodList]
[ClassPropertyList]
END
InterfaceHeritage -> '(' IdentList ')'
RequiresClause -> REQUIRES IdentList... ';'
ContainsClause -> CONTAINS IdentList... ';'
IdentList -> Ident/','...
QualId -> [UnitId '.'] Ident
TypeId -> [UnitId '.']
Ident ->
ConstExpr ->
UnitId ->
LabelId ->
Number ->
String ->
Subscribe to:
Post Comments (Atom)
air max, burberry outlet, true religion jeans, louboutin, louis vuitton outlet, louboutin, ray ban sunglasses, tiffany and co, coach outlet store online, oakley sunglasses cheap, christian louboutin shoes, longchamp outlet, louis vuitton, true religion jeans, tory burch outlet, kate spade outlet, kate spade handbags, oakley sunglasses, jordan shoes, polo ralph lauren outlet, louis vuitton outlet, louis vuitton handbags, coach outlet, prada outlet, ray ban sunglasses, chanel handbags, michael kors outlet, longchamp handbags, michael kors outlet, oakley sunglasses, nike shoes, air max, coach purses, michael kors outlet, longchamp handbags, louis vuitton outlet stores, nike free, prada handbags, coach factory outlet, gucci outlet, tiffany and co, louboutin outlet, michael kors outlet, polo ralph lauren outlet, michael kors outlet, burberry outlet, michael kors outlet
marc jacobs, soccer shoes, abercrombie and fitch, hollister, asics running shoes, canada goose, ugg boots, nfl jerseys, reebok outlet, herve leger, ugg, north face outlet, mont blanc, longchamp, insanity workout, canada goose uk, chi flat iron, babyliss pro, ugg pas cher, ugg australia, canada goose jackets, mcm handbags, canada goose, wedding dresses, new balance shoes, mac cosmetics, soccer jerseys, celine handbags, birkin bag, p90x, ferragamo shoes, valentino shoes, nike huarache, beats by dre, ghd, instyler, jimmy choo outlet, lululemon outlet, bottega veneta, canada goose, rolex watches, canada goose outlet, vans shoes, nike roshe run, moncler, ugg boots, north face jackets, uggs outlet, giuseppe zanotti