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] BlockUsesClause -> USES IdentList ';'
InterfaceSection -> INTERFACE [UsesClause]
[InterfaceDecl]...InterfaceDecl -> ConstSection -> TypeSection
-> VarSection
-> ExportedHeadingExportedHeading -> ProcedureHeading ';' [Directive] -> FunctionHeading ';' [Directive]ImplementationSection -> IMPLEMENTATION [UsesClause]
[DeclSection]...Block -> [DeclSection] CompoundStmtDeclSection -> LabelDeclSection -> ConstSection
-> TypeSection
-> VarSection
-> ProcedureDeclSectionLabelDeclSection -> LABEL LabelId
ConstSection -> CONST (ConstantDecl ';')...
ConstantDecl -> Ident '=' ConstExpr -> Ident ':' TypeId '=' TypedConstantTypeSection -> TYPE (TypeDecl ';')...
TypeDecl -> Ident '=' Type -> Ident '=' RestrictedTypeTypedConstant -> (ConstExpr | ArrayConstant | RecordConstant)
ArrayConstant -> '(' TypedConstant/','... ')'
RecordConstant -> '(' RecordFieldConstant/';'... ')'
RecordFieldConstant -> Ident ':' TypedConstant
Type -> TypeId -> SimpleType
-> StrucType
-> PointerType
-> StringType
-> ProcedureType
-> VariantType
-> ClassRefTypeRestrictedType -> ObjectType -> ClassType
-> InterfaceTypeClassRefType -> CLASS OF TypeId
SimpleType -> (OrdinalType | RealType)
RealType -> REAL48 -> REAL
-> SINGLE
-> DOUBLE
-> EXTENDED
-> CURRENCY
-> COMPOrdinalType -> (SubrangeType | EnumeratedType | OrdIdent)
OrdIdent -> SHORTINT -> SMALLINT
-> INTEGER
-> BYTE
-> LONGINT
-> INT64
-> WORD
-> BOOLEAN
-> CHAR
-> WIDECHAR
-> LONGWORD
-> PCHARVariantType -> VARIANT -> OLEVARIANTSubrangeType -> ConstExpr '..' ConstExpr
EnumeratedType -> '(' EnumeratedTypeElement/','... ')'
EnumeratedTypeElement -> Ident [ '=' ConstExpr ]
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 TypeIdPointerType -> '^' 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
-> ASAddOp -> '+' -> '-'
-> OR
-> XORMulOp -> '*' -> '/'
-> DIV
-> MOD
-> AND
-> SHL
-> SHRDesignator -> QualId ['.' Ident | '[' ExprList ']' | '^']...
SetConstructor -> '[' [SetElement/','...] ']'
SetElement -> Expression ['..' Expression]
ExprList -> Expression/','...
Statement -> [LabelId ':'] [SimpleStatement | StructStmt]
StmtList -> Statement/';'...
SimpleStatement -> Designator ['(' ExprList ')'] -> Designator ':=' Expression
-> INHERITED
-> GOTO LabelIdStructStmt -> CompoundStmt -> ConditionalStmt
-> LoopStmt
-> WithStmtCompoundStmt -> BEGIN StmtList END
ConditionalStmt -> IfStmt -> CaseStmtIfStmt -> IF Expression THEN Statement [ELSE Statement]
CaseStmt -> CASE Expression OF CaseSelector/';'... [ELSE StmtList] [';'] END
CaseSelector -> CaseLabel/','... ':' Statement
CaseLabel -> ConstExpr ['..' ConstExpr]
LoopStmt -> RepeatStmt -> WhileStmt
-> ForStmtRepeatStmt -> 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 -> FunctionDeclProcedureDecl -> 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 '=' ConstExprDirective -> CDECL -> REGISTER
-> DYNAMIC
-> VIRTUAL
-> EXPORT
-> EXTERNAL
-> FAR
-> FORWARD
-> MESSAGE
-> OVERRIDE
-> OVERLOAD
-> PASCAL
-> REINTRODUCE
-> SAFECALL
-> STDCALLObjectType -> OBJECT [ObjHeritage] [ObjFieldList] [MethodList] END
ObjHeritage -> '(' QualId ')'
MethodList -> (MethodHeading [';' VIRTUAL])/';'...
MethodHeading -> ProcedureHeading -> FunctionHeading
-> ConstructorHeading
-> DestructorHeadingConstructorHeading -> CONSTRUCTOR Ident [FormalParameters]
DestructorHeading -> DESTRUCTOR Ident [FormalParameters]
ObjFieldList -> (IdentList ':' Type)/';'...
InitSection -> INITIALIZATION StmtList [FINALIZATION StmtList] END -> BEGIN StmtList END
-> ENDClassType -> CLASS [ClassHeritage] [ClassFieldList]
[ClassMethodList]
[ClassPropertyList]
ENDClassHeritage -> '(' 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]
ENDInterfaceHeritage -> '(' IdentList ')'
RequiresClause -> REQUIRES IdentList... ';'
ContainsClause -> CONTAINS IdentList... ';'
IdentList -> Ident/','...
QualId -> [UnitId '.'] Ident
TypeId -> [UnitId '.'] <type-identifier>
Ident -> <identifier>
ConstExpr -> <constant-expression>
UnitId -> <unit-identifier>
LabelId -> <label-identifier>
Number -> <number>
String -> <string>
Program -> [PROGRAM Ident ['(' IdentList ')'] ';'] ProgramBlock '.'Unit -> UNIT Ident ';' InterfaceSection
ImplementationSection
InitSection '.'Package -> PACKAGE Ident ';' [RequiresClause]
[ContainsClause]
END '.'Library -> LIBRARY Ident ';' ProgramBlock '.'ProgramBlock -> [UsesClause] BlockUsesClause -> USES IdentList ';'
InterfaceSection -> INTERFACE [UsesClause]
[InterfaceDecl]...InterfaceDecl -> ConstSection -> TypeSection
-> VarSection
-> ExportedHeadingExportedHeading -> ProcedureHeading ';' [Directive] -> FunctionHeading ';' [Directive]ImplementationSection -> IMPLEMENTATION [UsesClause]
[DeclSection]...Block -> [DeclSection] CompoundStmtDeclSection -> LabelDeclSection -> ConstSection
-> TypeSection
-> VarSection
-> ProcedureDeclSectionLabelDeclSection -> LABEL LabelId
ConstSection -> CONST (ConstantDecl ';')...
ConstantDecl -> Ident '=' ConstExpr -> Ident ':' TypeId '=' TypedConstantTypeSection -> TYPE (TypeDecl ';')...
TypeDecl -> Ident '=' Type -> Ident '=' RestrictedTypeTypedConstant -> (ConstExpr | ArrayConstant | RecordConstant)
ArrayConstant -> '(' TypedConstant/','... ')'
RecordConstant -> '(' RecordFieldConstant/';'... ')'
RecordFieldConstant -> Ident ':' TypedConstant
Type -> TypeId -> SimpleType
-> StrucType
-> PointerType
-> StringType
-> ProcedureType
-> VariantType
-> ClassRefTypeRestrictedType -> ObjectType -> ClassType
-> InterfaceTypeClassRefType -> CLASS OF TypeId
SimpleType -> (OrdinalType | RealType)
RealType -> REAL48 -> REAL
-> SINGLE
-> DOUBLE
-> EXTENDED
-> CURRENCY
-> COMPOrdinalType -> (SubrangeType | EnumeratedType | OrdIdent)
OrdIdent -> SHORTINT -> SMALLINT
-> INTEGER
-> BYTE
-> LONGINT
-> INT64
-> WORD
-> BOOLEAN
-> CHAR
-> WIDECHAR
-> LONGWORD
-> PCHARVariantType -> VARIANT -> OLEVARIANTSubrangeType -> ConstExpr '..' ConstExpr
EnumeratedType -> '(' EnumeratedTypeElement/','... ')'
EnumeratedTypeElement -> Ident [ '=' ConstExpr ]
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 TypeIdPointerType -> '^' 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
-> ASAddOp -> '+' -> '-'
-> OR
-> XORMulOp -> '*' -> '/'
-> DIV
-> MOD
-> AND
-> SHL
-> SHRDesignator -> QualId ['.' Ident | '[' ExprList ']' | '^']...
SetConstructor -> '[' [SetElement/','...] ']'
SetElement -> Expression ['..' Expression]
ExprList -> Expression/','...
Statement -> [LabelId ':'] [SimpleStatement | StructStmt]
StmtList -> Statement/';'...
SimpleStatement -> Designator ['(' ExprList ')'] -> Designator ':=' Expression
-> INHERITED
-> GOTO LabelIdStructStmt -> CompoundStmt -> ConditionalStmt
-> LoopStmt
-> WithStmtCompoundStmt -> BEGIN StmtList END
ConditionalStmt -> IfStmt -> CaseStmtIfStmt -> IF Expression THEN Statement [ELSE Statement]
CaseStmt -> CASE Expression OF CaseSelector/';'... [ELSE StmtList] [';'] END
CaseSelector -> CaseLabel/','... ':' Statement
CaseLabel -> ConstExpr ['..' ConstExpr]
LoopStmt -> RepeatStmt -> WhileStmt
-> ForStmtRepeatStmt -> 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 -> FunctionDeclProcedureDecl -> 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 '=' ConstExprDirective -> CDECL -> REGISTER
-> DYNAMIC
-> VIRTUAL
-> EXPORT
-> EXTERNAL
-> FAR
-> FORWARD
-> MESSAGE
-> OVERRIDE
-> OVERLOAD
-> PASCAL
-> REINTRODUCE
-> SAFECALL
-> STDCALLObjectType -> OBJECT [ObjHeritage] [ObjFieldList] [MethodList] END
ObjHeritage -> '(' QualId ')'
MethodList -> (MethodHeading [';' VIRTUAL])/';'...
MethodHeading -> ProcedureHeading -> FunctionHeading
-> ConstructorHeading
-> DestructorHeadingConstructorHeading -> CONSTRUCTOR Ident [FormalParameters]
DestructorHeading -> DESTRUCTOR Ident [FormalParameters]
ObjFieldList -> (IdentList ':' Type)/';'...
InitSection -> INITIALIZATION StmtList [FINALIZATION StmtList] END -> BEGIN StmtList END
-> ENDClassType -> CLASS [ClassHeritage] [ClassFieldList]
[ClassMethodList]
[ClassPropertyList]
ENDClassHeritage -> '(' 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]
ENDInterfaceHeritage -> '(' IdentList ')'
RequiresClause -> REQUIRES IdentList... ';'
ContainsClause -> CONTAINS IdentList... ';'
IdentList -> Ident/','...
QualId -> [UnitId '.'] Ident
TypeId -> [UnitId '.'] <type-identifier>
Ident -> <identifier>
ConstExpr -> <constant-expression>
UnitId -> <unit-identifier>
LabelId -> <label-identifier>
Number -> <number>
String -> <string>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货