Visual Basic .NET 语法摘要


摘自:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbls7/html/vblrfVBSpec12.htm

本节总结 Visual Basic 语言的语法。有关如何阅读语法的信息,请参见语法表示法。

词法

Start ::= [ LogicalLine+ ](初始值 ::= [ 逻辑行+ ])

LogicalLine ::= [ LogicalLineElement+ ] [ Comment ] LineTerminator(逻辑行 ::= [ 逻辑行元素+ ] [ 注释 ] 行结束符)

LogicalLineElement ::= WhiteSpace | Token(逻辑行元素 ::= 空白 | 标记)

Token ::= Identifier | Keyword | Literal | Separator | Operator(标记 ::= 标识符 | 关键字 | 文本 | 分隔符 | 运算符)

字符和行

Character ::= < any Unicode character except a LineTerminator >(字符 ::= < 除行结束符外的任何 Unicode 字符 >)

行结束符

LineTerminator ::=(行结束符 ::=)
   < Unicode carriage return character (0x000D) >(< Unicode 回车符 (0x000D) >)|
   < Unicode line feed character (0x000A) >(< Unicode 换行符 (0x000A) >)|
   < Unicode carriage return character > < Unicode line feed character >(< Unicode 回车符 > < Unicode 换行符 >)|
   < Unicode line separator character (0x2028) >(< Unicode 行分隔符 (0x2028) >)|
   < Unicode paragraph separator character (0x2029) >(< Unicode 段落分隔符 (0x2029) >)

行继续

LineContinuation ::= WhiteSpace _ [ WhiteSpace+ ] LineTerminator(行继续 ::= 空白 _ [ 空白+ ] 行结束符)

空白

WhiteSpace ::= < Unicode blank characters (class Zs) > | LineContinuation(空白 ::= < Unicode 空白字符(类 Zs)> | 行继续)

注释

Comment ::= CommentMarker [ Character+ ](注释 ::= 注释标记 [ 字符+ ])

CommentMarker ::= ' | REM(注释标记 ::= ' | REM

标识符

Identifier ::=(标识符 ::=)
   NonEscapedIdentifier [ TypeCharacter ](非转义标识符 [ 类型字符 ])|
   EscapedIdentifier(转义标识符)

NonEscapedIdentifier ::= < IdentifierName but not Keyword >(非转义标识符 ::= < 标识符名,但不能是关键字 >)

EscapedIdentifier ::= [ IdentifierName ](转义标识符 ::= [ 标识符名 ]

IdentifierName ::= IdentifierStart [ IdentifierCharacter+ ](标识符名 ::= 标识符初始值 [ 标识符字符+ ])

IdentifierStart ::=(标识符初始值 ::=)
   AlphaCharacter(字母字符)|
   UnderscoreCharacter IdentifierCharacter(下划线字符标识符字符)

IdentifierCharacter ::=(标识符字符 ::=)
   UnderscoreCharacter(下划线字符)|
   AlphaCharacter(字母字符)|
   NumericCharacter(数字字符)|
   CombiningCharacter(组合字符)|
   FormattingCharacter(格式化字符)

AlphaCharacter ::= < Unicode alphabetic character (classes Lu, Ll, Lt, Lm, Lo, Nl) >(字母字符 ::= < Unicode 字母字符(类 Lu、Ll、Lt、Lm、Lo、Nl)>)

NumericCharacter ::= < Unicode decimal digit character (class Nd) >(数字字符 ::= < Unicode 十进制数字字符(类 Nd)>)

CombiningCharacter ::= < Unicode combining character (classes Mn, Mc) >(组合字符 ::= < Unicode 组合字符(类 Mn、Mc)>)

FormattingCharacter ::= < Unicode formatting character (class Cf) >(格式化字符 ::= < Unicode 格式化字符(类 Cf)>)

UnderscoreCharacter ::= < Unicode connection character (class Pc) >(下划线字符 ::= < Unicode 连接字符(类 Pc)>)

IdentifierOrKeyword ::= Identifier | Keyword(标识符或关键字 ::= 标识符 | 关键字)

类型字符

TypeCharacter ::=(类型字符 ::=)
   IntegerTypeCharacter(Integer 类型字符)|
   LongTypeCharacter(Long 类型字符)|
   DecimalTypeCharacter(Decimal 类型字符)|
   SingleTypeCharacter(Single 类型字符)|
   DoubleTypeCharacter(Double 类型字符)|
   StringTypeCharacter(String 类型字符)

IntegerTypeCharacter ::= %(Integer 类型字符 ::= %)

LongTypeCharacter ::= &(Long 类型字符 ::= &)

DecimalTypeCharacter ::= @(Decimal 类型字符 ::= @)

SingleTypeCharacter ::= !(Single 类型字符 ::= !)

DoubleTypeCharacter ::= #(Double 类型字符 ::= #)

StringTypeCharacter ::= $(String 类型字符 ::= $)

关键字

Keyword ::= < member of keyword table at Keywords >(关键字 ::= < 关键字中关键字表的成员 >)

文本

Literal ::= BooleanLiteral | NumericLiteral | StringLiteral | CharacterLiteral | DateLiteral | Nothing(文本 ::= 布尔值 | 数值 | 字符串 | 字符 | 日期 | Nothing)

NumericLiteral ::= IntegerLiteral | FloatingPointLiteral(数值 ::= 整数 | 浮点数)

布尔值

BooleanLiteral ::= True | False

整数

IntegerLiteral ::= IntegralLiteralValue [ IntegralTypeCharacter ](整数 ::= 整数值 [ 整型字符 ])

IntegralLiteralValue ::= IntLiteral | HexLiteral | OctalLiteral(整数值 ::= 十进制整数 | 十六进制整数 | 八进制整数)

IntegralTypeCharacter ::=(整型字符 ::=)
   ShortCharacter(短整数字符)|
   IntegerCharacter(整数字符)|
   LongCharacter(长整数字符)|
   IntegerTypeCharacter(Integer 类型字符)|
   LongTypeCharacter(Long 类型字符)

ShortCharacter ::= S(短整数字符 ::= S)

IntegerCharacter ::= I(整数字符 ::= I)

LongCharacter ::= L(长整数字符 ::= L)

IntLiteral ::= Digit+(十进制整数 ::= 数字+)

HexLiteral ::= & H HexDigit+(十六进制整数 ::= & H 十六进制数字+)

OctalLiteral ::= & O OctalDigit+(八进制整数 ::= & O 八进制数字+)

Digit(数字)::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

HexDigit(十六进制数字)::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F

OctalDigit(八进制数字)::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7

浮点数

FloatingPointLiteral ::=(浮点数 ::=)
   FloatingPointLiteralValue [ FloatingPointTypeCharacter ](浮点值 [ 浮点类型字符 ])|
   IntLiteral FloatingPointTypeCharacter(整数浮点类型字符)

FloatingPointTypeCharacter ::=(浮点类型字符 ::=)
   SingleCharacter(单精度字符)|
   DoubleCharacter(双精度字符)|
   DecimalCharacter(十进制字符)|
   SingleTypeCharacter(Single 类型字符)|
   DoubleTypeCharacter(Double 类型字符)|
   DecimalTypeCharacter(Decimal 类型字符)

SingleCharacter ::= F(单精度字符 ::= F)

DoubleCharacter ::= R(双精度字符 ::= R)

DecimalCharacter ::= D(十进制字符 ::= D)

FloatingPointLiteralValue ::=(浮点值 ::=)
   IntLiteral . IntLiteral [ Exponent ](整数 .整数 [ 指数 ])|
   . IntLiteral [ Exponent ](. 整数 [ 指数 ])|
   IntLiteral Exponent(整数指数)

Exponent ::= E [ Sign ] IntLiteral(指数 ::= E [ 符号 ] 整数)

Sign(符号)::= + | -

字符串

StringLiteral ::= " [ StringCharacter+ ] "(字符串 ::= " [ 字符串字符+ ] ")

StringCharacter ::= < Character except for " > | ""(字符串字符 ::= < 除引号 " 之外的字符 > | "")

字符

CharacterLiteral ::= " StringCharacter " C(字符 ::= " 字符串字符 " C)

日期

DateLiteral ::= # [ Whitespace+ ] [ DateValue ] [ Whitespace+ ] [ TimeValue ] [ Whitespace+ ] #(日期 ::= # [ 空白+ ] [ 日期值 ] [ 空白+ ] [ 时间值 ] [ 空白+ ] #)

DateValue ::= MonthValue DateSeparator DayValue DateSeparator YearValue(日期值 ::= 月份值日期分隔符日值日期分隔符年值)

DateSeparator(日期分隔符)::= / | -

TimeValue ::= HourValue [ : MinuteValue ] [ : SecondValue ] [ Whitespace+ ] [ AMPM ](时间值 ::= 小时值 [ : 分钟值 ] [ : 秒钟值 ] [ 空白+ ] [ AMPM ])

MonthValue ::= IntLiteral(月份值 ::= 整数)

DayValue ::= IntLiteral(日值 ::= 整数)

YearValue ::= IntLiteral(年值 ::= 整数)

HourValue ::= IntLiteral(小时值 ::= 整数)

MinuteValue ::= IntLiteral(分钟值 ::= 整数)

SecondValue ::= IntLiteral(秒钟值 ::= 整数)

AMPM ::= AM | PM

Nothing

Nothing ::= Nothing

分隔符

Separator(分隔符)::= ( | ) | ! | # | , | . | :

运算符字符

Operator(运算符)::= & | * | + | - | / | / | ^ | < | = | >

预处理指令

条件编译指令

Source ::= [ ConditionalElement+ ](源 ::= [ 条件元素+ ])

ConditionalElement ::= ConditionalIfGroup | ConditionalConstantDeclaration | LogicalLine(条件元素 ::= 条件 If 组 | 条件常数声明 | 逻辑行)

条件常数

ConditionalConstantDeclaration ::= # Const IdentifierOrKeyword = ConstantExpression LineTerminator(条件常数声明 ::= # Const 标识符或关键字 = 常数表达式行结束符)

条件编译语句

ConditionalElseIfGroup ::=(条件 ElseIf 组 ::=)
   # ElseIf ConstantExpression [ Then ] LineTerminator(# ElseIf 常数表达式 [ Then ] 行结束符)
   [ ConditionalElement+ ]([ 条件元素+ ])

外部源指令

Source ::= [ ExternalSourceElement+ ](源 ::= [ 外部源元素+ ])

ExternalSourceElement ::= ExternalSourceGroup | LogicalLine(外部源元素 ::= 外部源组 | 逻辑行)

ExternalSourceGroup ::=(外部源组 ::=)
   # ExternalSource ( StringLiteral , IntLiteral ) LineTerminator(# ExternalSource ( 字符串 , 整数 ) 行结束符)
   [ LogicalLine+ ]([ 逻辑行+ ])
   # End ExternalSource LineTerminator(# End ExternalSource 行结束符)

区域指令

Start ::= [ RegionElement+ ](初始值 ::= [ 区域元素+ ])

RegionElement ::= RegionGroup | LogicalLine(区域元素 ::= 区域组 | 逻辑行)

RegionGroup ::=(区域组 ::=)
   # Region [ NoDebug ] StringLiteral LineTerminator(# Region [ NoDebug ] 字符串行结束符)
   [ LogicalLine+ ]([ 逻辑行+ ])
   # End Region LineTerminator(# End Region 行结束符)

ConditionalElseGroup ::=(条件 Else 组 ::=)
   # Else LineTerminator(# Else 行结束符)
   [ ConditionalElement+ ]([ 条件元素+ ])

一般概念

可访问性

AccessModifier ::= Public | Protected | Friend | Private(访问修饰符 ::= Public | Protected | Friend | Private)

命名空间和类型名称

QualifiedIdentifier ::=(限定标识符 ::=)
   Identifier(标识符)|
   QualifiedIdentifier .IdentifierOrKeyword(限定标识符 .标识符或关键字)

属性块

Attributes ::= < AttributeList >(属性 ::= < 属性列表 >)

AttributeList ::=(属性列表 ::=)
   Attribute(属性)|
   AttributeList , Attribute(属性列表 , 属性)

Attribute ::= [ AttributeModifier : ] TypeName [ ( [ AttributeArguments ] ) ](属性 ::= [ 属性修饰符 : ] 类型名 [ ( [ 属性参数 ] ) ])

AttributeModifier ::= Assembly | Module(属性修饰符 ::= Assembly | Module)

属性参数

AttributeArguments ::=(属性参数 ::=)
   AttributePositionalArgumentList(属性定位参数列表)|
   AttributePositionalArgumentList , VariablePropertyInitializerList(属性定位参数列表 , 变量属性初始值设定项列表)|
   VariablePropertyInitializerList(变量属性初始值设定项列表)

AttributePositionalArgumentList ::=(属性定位参数列表 ::=)
   ConstantExpression(常数表达式)|
   AttributePositionalArgumentList , ConstantExpression(属性定位参数列表 , 常数表达式)

VariablePropertyInitializerList ::=(变量属性初始值设定项列表 ::=)
   VariablePropertyInitializer(变量属性初始值设定项)
   VariablePropertyInitializerList , VariablePropertyInitializer(变量属性初始值设定项列表 , 变量属性初始值设定项)

VariablePropertyInitializer ::= Identifier : = ConstantExpression(变量属性初始值设定项 ::= 标识符 : = 常数表达式)

源文件和命名空间

Source ::=(源 ::=)
   [ OptionDirective+ ]([ Option 指令+ ])
   [ ImportsDirective+ ]([ Imports 指令+ ])
   [ Attributes ]([ 属性 ])
   [ NamespaceBody ]([ 命名空间体 ])

编译选项

OptionDirective ::= OptionExplicitDirective | OptionStrictDirective | OptionCompareDirective(Option 指令 ::= Option Explicit 指令 | Option Strict 指令 | Option Compare 指令)

Option Explicit 语句

OptionExplicitDirective ::= Option Explicit [ OnOff ] LineTerminator(Option Explicit 指令 ::= Option Explicit [ 开关 ] 行结束符)

OnOff(开关)::= On | Off

Option Strict 语句

OptionStrictDirective ::= Option Strict [ OnOff ] LineTerminator(Option Strict 指令 ::= Option Strict [ 开关 ] 行结束符)

Option Compare 语句

OptionCompareDirective ::= Option Compare CompareOption LineTerminator(Option Compare 指令 ::= Option Compare 比较选项行结束符)

CompareOption ::= Binary | Text(比较选项 ::= Binary | Text)

Imports 语句

ImportsDirective ::= Imports ImportsClauses LineTerminator(Imports 指令 ::= Imports Imports 子句行结束符)

ImportsClauses ::=(Imports 子句 ::=)
   ImportsClause(Imports 子句)|
   ImportsClauses , ImportsClause(Imports 子句 , Imports 子句)

ImportsClause ::= ImportsAliasClause | RegularImportsClause(Imports 子句 ::= Imports 别名子句 | 规则 Imports 子句)

导入别名

ImportsAliasClause ::= Identifier = QualifiedIdentifier(Imports 别名子句 ::= 标识符 = 限定标识符)

常规导入

ImportsNamespaceClause ::= QualifiedIdentifier(Imports 命名空间子句 ::= 限定标识符)

命名空间声明

NamespaceDeclaration ::=(命名空间声明 ::=)
   Namespace QualifiedIdentifier LineTerminator(Namespace 限定标识符行结束符)
   [ NamespaceMemberDeclaration+ ]([ 命名空间成员声明+ ])
   End Namespace LineTerminator(End Namespace 行结束符)

命名空间成员

NamespaceMemberDeclaration ::=(命名空间成员声明 ::=)
   NamespaceDeclaration(命名空间声明)|
   TypeDeclaration(类型声明)

TypeDeclaration ::=(类型声明 ::=)
   ModuleDeclaration(模块声明)|
   NonModuleDeclaration(非模块声明)

NonModuleDeclaration ::=(非模块声明 ::=)
   EnumDeclaration(枚举声明)|
   StructureDeclaration(结构声明)|
   InterfaceDeclaration(接口声明)|
   ClassDeclaration(类声明)|
   DelegateDeclaration(委托声明)

类型

TypeName ::= QualifiedIdentifier | Object | PrimitiveTypeName | ClassTypeName | ArrayTypeName(类型名 ::= 限定标识符 | Object | 基元类型名 | 类类型名 | 数组类型名)

基元类型

PrimitiveTypeName ::= NumericTypeName | Boolean | Date | Char(基元类型名 ::= 数值类型名 | Boolean | Date | Char)

NumericTypeName ::= IntegralTypeName | FloatingPointTypeName | Decimal(数值类型名 ::= 整型名 | 浮点类型名 | Decimal)

IntegralTypeName ::= Byte | Short | Integer | Long(整型名 ::= Byte | Short | Integer | Long)

FloatingPointTypeName ::= Single | Double(浮点类型名 ::= Single | Double)

枚举

EnumDeclaration ::=(枚举声明 ::=)
[ Attributes ]   [ EnumModifier+ ] Enum Identifier([ 属性 ]   [ 枚举修饰符+ ] Enum 标识符)
[ As IntegralTypeName ] LineTerminator([ As 整型名 ] 行结束符)
   EnumMemberDeclaration+(枚举成员声明+)
   End Enum LineTerminator(End Enum 行结束符)

EnumModifier ::= AccessModifier | Shadows(枚举修饰符 ::= 访问修饰符 | Shadows)

枚举成员

EnumMemberDeclaration ::=(枚举成员声明 ::=)
[ Attributes ] Identifier [ = ConstantExpression ] LineTerminator([ 属性 ] 标识符 [ = 常数表达式 ] 行结束符)

结构

StructDeclaration ::=(结构声明 ::=)
[ Attributes ]   [ StructModifier+ ] Structure Identifier LineTerminator([ 属性 ] [ 结构修饰符+ ] Structure 标识符行结束符)
   [ TypeImplementsClause+ ]([ 类型 Implements 子句+ ])
   [ StructMemberDeclaration+ ]([ 结构成员声明+ ])
   End Structure LineTerminator(End Structure 行结束符)

StructureModifier ::= AccessModifier | Shadows(结构修饰符 ::= 访问修饰符 | Shadows)

结构接口实现

TypeImplementsClause ::= Implements Implements LineTerminator(类型 Implements 子句 ::= Implements 实现行结束符)

Implements ::=(实现 ::=)
   TypeName(类型名)|
   Implements , TypeName(实现 , 类型名)

结构成员

StructMemberDeclaration ::=(结构成员声明 ::=)
   NonModuleDeclaration(非模块声明)
   VariableMemberDeclaration(变量成员声明)|
   ConstantMemberDeclaration(常数成员声明)|
   EventMemberDeclaration(事件成员声明)|
   MethodMemberDeclaration(方法成员声明)|
   PropertyMemberDeclaration(属性成员声明)|
   SharedConstructorDeclaration(共享构造函数声明)

ClassTypeName ::= String(类类型名 ::= String)

ClassDeclaration ::=(类声明 ::=)
[ Attributes ]   [ ClassModifier+ ] Class Identifier LineTerminator([ 属性 ]   [ 类修饰符+ ] Class 标识符行结束符)
   [ ClassBase ]([ 类基 ])
   [ TypeImplementsClause+ ]([ 类型 Implements 子句+ ])
   [ ClassMemberDeclaration+ ]([ 类成员声明+ ])
   End Class LineTerminator(End Class 行结束符)

类修饰符

ClassModifier ::= AccessModifier | Shadows | MustInherit | NotInheritable(类修饰符 ::= 访问修饰符 | Shadows | MustInherit | NotInheritable)

类基规范

ClassBase ::= Inherits TypeName LineTerminator(类基 ::= Inherits 类型名行结束符)

类成员

ClassMemberDeclaration ::=(类成员声明 ::=)
   NonModuleDeclaration(非模块声明)|
   EventMemberDeclaration(事件成员声明)|
   VariableMemberDeclaration(变量成员声明)|
   ConstantMemberDeclaration(常数成员声明)|
   MethodMemberDeclaration(方法成员声明)|
   PropertyMemberDeclaration(属性成员声明)|
   ConstructorMemberDeclaration(构造函数成员声明)

标准模块

ModuleDeclaration ::=(模块声明 ::=)
[ Attributes ]   [ AccessModifier+ ] Module Identifier LineTerminator([ 属性 ]   [ 访问修饰符+ ] Module 标识符行结束符)
   [ ModuleMemberDeclaration+ ]([ 模块成员声明+ ])
   End Module LineTerminator(End Module 行结束符)

标准模块成员

ModuleMemberDeclaration ::=(模块成员声明 ::=)
   NonModuleDeclaration(非模块声明)|
   VariableMemberDeclaration(变量成员声明)|
   ConstantMemberDeclaration(常数成员声明)|
   EventMemberDeclaration(事件成员声明)|
   MethodMemberDeclaration(方法成员声明)|
   PropertyMemberDeclaration(属性成员声明)|
   SharedConstructorDeclaration(共享构造函数声明)

接口

InterfaceDeclaration ::=(接口声明 ::=)
[ Attributes ]   [ InterfaceModifier+ ] Interface Identifier LineTerminator([ 属性 ]   [ 接口修饰符+ ] Interface 标识符行结束符)
   [ InterfaceBases+ ]([ 接口基+ ])
   [ InterfaceMemberDeclaration+ ]([ 接口成员声明+ ])
   End Interface LineTerminator(End Interface 行结束符)

InterfaceModifier ::= AccessModifier | Shadows(枚举修饰符 ::= 访问修饰符 | Shadows)

接口继承

InterfaceBase ::= Inherits InterfaceBases LineTerminator(接口基 ::= Inherits 接口基行结束符)

InterfaceBases ::=(接口基 ::=)
   TypeName(类型名)
   InterfaceBases , TypeName(接口基 , 类型名)

接口成员

InterfaceMemberDeclaration ::=(接口成员声明 ::=)
NonModuleDeclaration(非模块声明)|
   EventMemberDeclaration(事件成员声明)|
   MethodMemberDeclaration(方法成员声明)|
   PropertyMemberDeclaration(属性成员声明)

数组

ArrayTypeName ::= TypeName ArrayTypeModifier(数组类型名 ::= 类型名数组类型修饰符)

ArrayTypeModifier ::= ( [ RankList ] )(数组类型修饰符 ::= ( [ 秩列表 ] ))

RankList ::=(秩列表 ::=)
   , |
   RankList ,(秩列表 ,)

ArrayNameModifier ::=   ArrayTypeModifier | ArrayInitializationModifier(数组名修饰符 ::=   数组类型修饰符 | 数组初始化修饰符)

委托

DelegateTypeDeclaration ::=(委托类型声明 ::=)
[ DelegateModifier+ ] Delegate MethodDeclaration([ 委托修饰符+ ] Delegate 方法声明)

DelegateModifier ::= AccessModifier | Shadows(委托修饰符 ::= 访问修饰符 | Shadows)

类型成员

方法

MethodMemberDeclaration ::= MethodDeclaration | ExternalMethodDeclaration(方法成员声明 ::= 方法声明 | 外部方法声明)

常规方法声明

MethodDeclaration ::= SubDeclaration | FunctionDeclaration(方法声明 ::= Sub 声明 | 函数声明)

SubDeclaration ::=(Sub 声明 ::=)
   [ Attributes ] [ ProcedureModifier+ ] Sub Identifier [ ( [ FormalParameterList ] ) ]([ 属性 ] [ 过程修饰符+ ] Sub 标识符 [ ( [ 形参表 ] ) ])
[ HandlesOrImplements ] LineTerminator([ 句柄或实现 ] 行结束符)
   [ Block ]([ 块 ])
   [ End Sub LineTerminator ]([ End Sub 行结束符 ])

FunctionDeclaration ::=(函数声明 ::=)
   [ Attributes ] [ ProcedureModifier+ ] Function Identifier([ 属性 ] [ 过程修饰符+ ] Function 标识符)
[ ( [ FormalParameterList ] ) ] [ As [ Attributes ] TypeName ]([ ( [ 形参表 ] ) ] [ As [ 属性 ] 类型名 ])
[ HandlesOrImplements ] LineTerminator([ 句柄或实现 ] 行结束符)
   [ Block ]([ 块 ])
   [ End Function LineTerminator ]([ End Function 行结束符 ])

ProcedureModifier ::=(过程修饰符 ::=)
   AccessModifier(访问修饰符)|
   Shadows |
   Shared |
   Overridable |
   NotOverridable |
   MustOverride |
   Overrides |
   Overloads

HandlesOrImplements ::= HandlesClause | MethodImplementsClause(句柄或实现 ::= Handles 子句 | 方法 Implements 子句)

外部方法声明

ExternalMethodDeclaration ::= ExternalSubDeclaration | ExternalFunctionDeclaration(外部方法声明 ::= 外部 Sub 声明 | 外部函数声明)

ExternalSubDeclaration ::=(外部 Sub 声明 ::=)
   [ Attributes ] [ ExternalMethodModifier+ ] Declare [ CharsetModifier ] Sub Identifier([ 属性 ] [ 外部方法修饰符+ ] Declare [ 字符集修饰符 ] Sub 标识符)
LibraryClause [ AliasClause ] [ ( [ FormalParameterList ] ) ] LineTerminator(Lib 子句 [ Alias 子句 ] [ ( [ 形参表 ] ) ] 行结束符)

ExternalFunctionDeclaration ::=(外部函数声明 ::=)
   [ Attributes ] [ ExternalMethodModifier+ ] Declare [ CharsetModifier ] Function([ 属性 ] [ 外部方法修饰符+ ] Declare [ 字符集修饰符 ] Function)
Identifier LibraryClause [ AliasClause ] [ ( [ FormalParameterList ] ) ](标识符 Lib 子句 [ Alias 子句 ] [ ( [ 形参表 ] ) ])
[ As [ Attributes ] TypeName ] LineTerminator([ As [ 属性 ] 类型名 ] 行结束符)

ExternalMethodModifier ::= AccessModifier | Shadows | Overloads(外部方法修饰符 ::= 访问修饰符 | Shadows | Overloads)

CharsetModifier ::= Ansi | Unicode | Auto(字符集修饰符 ::= Ansi | Unicode | Auto)

LibraryClause ::= Lib StringLiteral(Lib 子句 ::= Lib 字符串)

AliasClause ::= Alias StringLiteral(Alias 子句 ::= Alias 字符串)

方法参数

FormalParameterList ::=(形参表 ::=)
   FormalParameter(形参)|
   FormalParameterList , FormalParameter(形参表 , 形参)

FormalParameter ::=(形参 ::=)
   [ Attributes ] ParameterModifier+ Identifier [ As TypeName ]([ 属性 ] 参数修饰符+ 标识符 [ As 类型名 ])
[ = ConstantExpression ]([ = 常数表达式 ])

ParameterModifier ::= ByRef | ByVal | Optional | ParamArray(参数修饰符 ::= ByVal | ByRef | Optional | ParamArray)

接口方法实现

ImplementsClause ::= [ Implements ImplementsList ](Implements 子句 ::= [ Implements Implements 列表 ])

ImplementsList ::=(Implements 列表 ::=)
   InterfaceMemberSpecifier(接口成员说明符)|
   ImplementsList , InterfaceMemberSpecifier(Implements 列表 , 接口成员说明符)

InterfaceMemberSpecifier ::= TypeName . Identifier(接口成员说明符 ::= 类型名 . 标识符)

事件处理

HandlesClause ::= [ Handles EventHandlesList ](Handles 子句 ::= [ Handles 事件 Handles 列表 ])

EventHandlesList ::=(事件 Handles 列表 ::=)
   EventMemberSpecifier(事件成员说明符)|
   EventHandlesList , EventMemberSpecifier(事件 Handles 列表 , 事件成员说明符)

EventMemberSpecifier ::=(事件成员说明符 ::=)
   Identifier . [ Identifier . ] Identifier(标识符 . [ 标识符 . ] 标识符)
   MyBase . [ Identifier . ] Identifier(MyBase . [ 标识符 . ] 标识符)

构造函数

ConstructorMemberDeclaration ::= InstanceConstructorDeclaration | SharedConstructorDeclaration(构造函数成员声明 ::= 实例构造函数声明 | 共享构造函数声明)

实例构造函数

InstanceConstructorDeclaration ::=(实例构造函数声明 ::=)
   [ Attributes ] [ InstanceConstructorModifier+ ] Sub New([ 属性 ] [ 实例构造函数修饰符+ ] Sub New)
[ ( [ FormalParameterList ] ) ] LineTerminator([ ( [ 形参表 ] ) ] 行结束符)
   [ Block ]([ 块 ])
   End Sub LineTerminator(End Sub 行结束符)

InstanceConstructorModifier ::= AccessModifier | Overloads(实例构造函数修饰符 ::= 访问修饰符 | Overloads)

共享 (Shared) 构造函数

SharedConstructorDeclaration ::=(共享构造函数声明 ::=)
   [ Attributes ] Shared Sub New [ ( ) ] LineTerminator([ 属性 ] Shared Sub New [ ( ) ] 行结束符)
   [ Block ]([ 块 ])
   End Sub LineTerminator(End Sub 行结束符)

事件

EventMemberDeclaration ::=(事件成员声明 ::=)
   [ Attributes ] [ EventModifiers+ ] Event Identifier ParametersOrType([ 属性 ] [ 事件修饰符+ ] Event 标识符参数或类型)
[ ImplementsClause ] LineTerminator([ Implements 子句 ] 行结束符)

ParametersOrType ::=(参数或类型 ::=)
[ ( [ FormalParameterList ] ) ]([ ( [ 形参表 ] ) ])|
   As TypeName(As 类型名)

常数

ConstantMemberDeclaration ::=(常数成员声明 ::=)
   [ Attributes ] [ ConstantModifier+ ] Const Identifier [ As TypeName ] =([ 属性 ] [ 常数修饰符+ ] Const 标识符 [ As 类型名 ] =)
ConstantExpression LineTerminator(常数表达式行结束符)

ConstantModifier ::= AccessModifiers | Shadows(常量修饰符 ::= 访问修饰符 | Shadows)

变量

VariableMemberDeclaration ::=(变量成员声明 ::=)
[ Attributes ] [ VariableModifier+ ] [ Dim ] VariableDeclarators LineTerminator([ 属性 ] [ 变量修饰符+ ] [ Dim ] 变量声明符行结束符)

VariableModifier ::= AccessModifiers | Shadows | Shared | ReadOnly | WithEvents(变量修饰符 ::= 访问修饰符 | Shadows | Shared | ReadOnly | WithEvents)

VariableDeclarators ::=(变量声明符 ::=)
   VariableDeclarator(变量声明符)|
   VariableDeclarators , VariableDeclarator(变量声明符 , 变量声明符)

VariableDeclarator ::=(变量声明符 ::=)
   VariableIdentifiers [ As TypeName ](变量标识符 [ As 类型名 ])|
VariableIdentifier(变量标识符)
[ As [ New ] TypeName [ ( ArgumentList ) ] ] [ = VariableInitializer ]([ As [ New ] 类型名 [ ( 参数列表 ) ] ] [ = 变量初始值设定项 ])

VariableIdentifiers ::=(变量标识符 ::=)
   VariableIdentifier(变量标识符)|
   VariableIdentifiers , VariableIdentifier(变量标识符 , 变量标识符)

VariableIdentifier ::= Identifier [ ArrayNameModifier ](变量标识符 ::= 标识符 [ 数组名修饰符 ])

变量初始值设定项

VariableInitializer ::= RegularInitializer | ArrayElementInitializer(变量初始值设定项 ::= 规则初始值设定项 | 数组元素初始值设定项)

规则初始值设定项

RegularInitializer ::= Expression(规则初始值设定项::= 表达式)

数组元素初始值设定项

ArrayElementInitializer ::= { [ VariableInitializerList ] }(数组元素初始值设定项 ::= { [ 变量初始值设定项列表 ] }

VariableInitializerList ::=(变量初始值设定项列表 ::=)
   VariableInitializer(变量初始值设定项)|
   VariableInitializerList , VariableInitializer(变量初始值设定项列表 , 变量初始值设定项)

VariableInitializer ::= Expression | ArrayElementInitializer(变量初始值设定项 ::= 表达式 | 数组元素初始值设定项)

数组大小初始值设定项

ArrayInitializationModifier ::= ( InitializationRankList )(数组初始化修饰符 ::= ( 初始化秩列表 ))

InitializationRankList ::=(初始化秩列表 ::=)
   Expression(表达式)|
   InitializationRankList , Expression(初始化秩列表 , 表达式)

属性

PropertyMemberDeclaration ::=(属性成员声明 ::=)
   [ Attributes ] PropertyModifier+ Property Identifier [ ( [ FormalParameterList ] ) ]([ 属性 ] 属性修饰符+ Property 标识符 [ ( [ 形参表 ] ) ])
[ As TypeName ] [ MethodImplementsClause ] LineTerminator([ As 类型名 ] [ 方法 Implements 子句 ] 行结束符)
   PropertyAccessorDeclaration+(属性访问器声明+)
   [ End Property LineTerminator ]([ End Property 行结束符 ])

PropertyModifier ::= ProcedureModifier | Default | ReadOnly | WriteOnly(属性修饰符 ::= 过程修饰符 | Default | ReadOnly | WriteOnly)

PropertyAccessorDeclaration ::= PropertyGetDeclaration | PropertySetDeclaration(属性访问器声明 ::= 属性 Get 声明 | 属性 Set 声明)

Getter 声明

PropertyGetDeclaration ::=(属性 Get 声明 ::=)
   [ Attributes ] Get LineTerminator([ 属性 ] Get 行结束符)
   [ Block ]([ 块 ])
   End Get(End Get)

Setter 声明

PropertySetDeclaration ::=(属性 Set 声明 ::=)
   [ Attributes ] Set LineTerminator([ 属性 ] Set 行结束符)
   [ Block ]([ 块 ])
   End Set(End Set)

语句

Block ::= [ LabeledLine+ ](块 ::= [ 标记行+ ])

LabeledLine ::= [ LabelName : ] [ Statements ] LineTerminator(标记行 ::= [ 标签名 : ] [ 语句 ] 行结束符)

LabelName ::= Identifier | IntLiteral(标签名 ::= 标识符 | 整数)

Statements ::=(语句 ::=)
   [ Statement ]([ 语句 ])|
   Statements [ Statement ](语句 [ 语句 ])

局部声明语句

LocalDeclarationStatement ::= LocalModifier LocalDeclarator StatementTerminator(局部声明语句 ::= 局部修饰符局部声明符语句结束符)

LocalModifier ::= Dim | Const(局部修饰符 ::= Dim | Const)

LocalDeclarator ::=(局部声明符 ::=)
   LocalIdentifiers [ As TypeName ](局部标识符 [ As 类型名 ])
Identifier [ ArrayNameModifier ](标识符 [ 数组名修饰符 ])
[ As [ New ] TypeName [ ( [ ArgumentList ] ) ] ] [ = VariableInitializer ]([ As [ New ] 类型名 [ ( [ 参数列表 ] ) ] ] [ = 变量初始值设定项 ])

LocalIdentifiers ::=(局部标识符 ::=)
   Identifier [ ArrayNameModifier ](标识符 [ 数组名修饰符 ])|
   LocalIdentifiers , Identifier [ ArrayNameModifier ](局部标识符 , 标识符 [ 数组名修饰符 ])

LocalVariableName ::= Identifier(局部变量名 ::= 标识符)

With 语句

WithStatement ::=(With 语句 ::=)
   With Expression StatementTerminator(With 表达式语句结束符)
   [ Block ]([ 块 ])
   End With StatementTerminator(End With 语句结束符)

SyncLock 语句

SyncLockStatement ::=(SyncLock 语句 ::=)
   SyncLock Expression StatementTerminator(SyncLock 表达式语句结束符)
   [ Block ]([ 块 ])
   End SyncLock StatementTerminator(End SyncLock 语句结束符)

事件语句

EventStatement ::=(事件语句 ::=)
   RaiseEventStatement(RaiseEvent 语句)|
   AddHandlerStatement(AddHandler 语句)|
   RemoveHandlerStatement(RemoveHandler 语句)

RaiseEvent 语句

RaiseEventStatement ::= RaiseEvent EventMemberName(RaiseEvent 语句 ::= RaiseEvent 事件成员名)

[ ( [ ArgumentList ] ) ] StatementTerminator([ ( [ 参数列表 ] ) ] 语句结束符)

AddHandler 和 RemoveHandler 语句

AddHandlerStatement ::= AddHandler HandlerArguments StatementTerminator(AddHandler 语句 ::= AddHandler 处理程序参数语句结束符)

RemoveHandlerStatement ::= RemoveHandler HandlerArguments StatementTerminator(RemoveHandler 语句 ::= RemoveHandler 处理程序参数语句结束符)

HandlerArguments ::= EventExpression , ArgumentExpression(处理程序参数 ::= 事件表达式 , 参数表达式)

赋值语句

AssignmentStatement ::=(赋值语句 ::=)
   SimpleAssignmentStatement(简单赋值语句)|
   DelegateAssignmentStatement(委托赋值语句)|
   CompoundAssignmentStatement(复合赋值语句)|
   MidAssignmentStatement(Mid 赋值语句)

简单赋值语句

RegularAssignmentStatement ::= VariableExpression = Expression StatementTerminator(规则赋值语句 ::= 变量表达式 = 表达式语句结束符)

VariableExpression ::= Expression(变量表达式 ::= 表达式)

委托赋值语句

DelegateAssignmentStatement ::=(委托赋值语句 ::=)
VariableExpression = AddressOf InvocationTargetExpression StatementTerminator(变量表达式 = AddressOf 调用目标表达式语句结束符)

复合赋值语句

CompoundAssignmentStatement ::= VariableExpression CompoundBinaryOperator =(复合赋值语句 ::= 变量表达式复合二元运算符 =)
Expression StatementTerminator(表达式语句结束符)

CompoundBinaryOperator(复合二元运算符)::= ^ | * | / | / | + | - | &

Mid 赋值语句

MidAssignmentStatement ::= Mid [ $ ] ( VariableExpression , Expression   [ , Expression ] ) =
Expression StatementTerminator((Mid 赋值语句 ::= Mid [ $ ] ( 变量表达式 , 表达式   [ , 表达式 ] ) =
表达式语句结束符)

调用语句

InvocationStatement ::= [ Call ] InvocationExpression StatementTerminator(调用语句 ::= [ Call ] 调用表达式语句结束符)

条件语句

ConditionalStatement ::= IfStatement | SelectStatement(条件语句 ::= If 语句 | Select 语句)

If...Then...Else 语句

IfStatement ::= BlockIfStatement | LineIfThenStatement(If 语句 ::= 块 If 语句 | 行 IfThen 语句)

BlockIfStatement ::=(块 If 语句 ::=)
   If BooleanExpression [ Then ] StatementTerminator(If 布尔表达式 [ Then ] 语句结束符)
   [ Block ]([ 块 ])
   [ ElseIfStatement+ ]([ ElseIf 语句+ ])
   [ ElseStatement ]([ Else 语句 ])
   End If StatementTerminator(End If 语句结束符)

ElseIfStatement ::=(ElseIf 语句 ::=)
   ElseIf BooleanExpression [ Then ] StatementTerminator(ElseIf 布尔表达式 [ Then ] 语句结束符)
   [ Block ]([ 块 ])

ElseStatement ::=(Else 语句 ::=)
   Else StatementTerminator(Else 语句结束符)
   [ Block ]([ 块 ])

LineIfThenStatement ::= If BooleanExpression Then [Statements ](行 IfThen 语句 ::= If 布尔表达式 Then [语句 ])

[ Else Statements ] StatementTerminator([ Else 语句 ] 语句结束符)

BooleanExpression ::=   Expression(布尔表达式 ::=   表达式)

Select...Case 语句

SelectStatement ::=(Select 语句 ::=)
   Select [ Case ] Expression StatementTerminator(Select [ Case ] 表达式语句结束符)
   [ CaseStatement+ ]([ Case 语句+ ])
   [ CaseElseStatement ]([ CaseElse 语句 ])
   End Select StatementTerminator(End Select 语句结束符)

CaseStatement ::=(Case 语句 ::=)
   Case CaseClauses StatementTerminator(Case Case 子句语句结束符)
   [ Block ]([ 块 ])

CaseClauses ::=(Case 子句 ::=)
   CaseClause(Case 子句)|
   CaseClauses , CaseClause(Case 子句 , Case 子句)

CaseClause ::=(Case 子句 ::=)
   [ Is ] ComparisonOperator Expression([ Is ] 比较运算符表达式)|
   Expression [ To Expression ](表达式 [ To 表达式 ])

ComparisonOperator(比较运算符)::= = | < > | < | > | = > | = <

CaseElseStatement ::=(CaseElse 语句 ::=)
   Case Else StatementTerminator(Case Else 语句结束符)
   [ Block ]([ 块 ])

循环语句

LoopStatement ::=(Loop 语句 ::=)
   WhileStatement(While 语句)|
   DoLoopStatement(DoLoop 语句)|
   ForStatement(For 语句)|
   ForEachStatement(ForEach 语句)

While...End While 和 Do...Loop 语句

WhileStatement ::=(While 语句 ::=)
   While BooleanExpression StatementTerminator(While 布尔表达式语句结束符)
   [ Block ]([ 块 ])
   End While StatementTerminator(End While 语句结束符)

DoLoopStatement ::=(DoLoop 语句 ::=)
   Do [ WhileOrUntil BooleanExpression ] StatementTerminator(Do [ While 或 Until 布尔表达式 ] 语句结束符)
   [ Block ]([ 块 ])
   Loop [ WhileOrUntil BooleanExpression ] StatementTerminator(Loop [ While 或 Until 布尔表达式 ] 语句结束符)

WhileOrUntil ::= While | Until(While 或 Until ::= While | Until)

For...Next 语句

ForStatement ::=
   For LoopControlVariable = Expression To Expression [ Step Expression ] StatementTerminator
   [ Block ]
   Next [ NextExpressionList ] StatementTerminator(For 语句 ::=
   For 循环控制变量 = 表达式 To 表达式 [ Step 表达式 ] 语句结束符
   [ 块 ]
   Next [ Next 表达式列表 ] 语句结束符)

LoopControlVariable ::=
   Identifier As TypeName |
   Expression(循环控制变量 ::=
   标识符 As 类型名 | 表达式)

NextExpressionList ::=(Next 表达式列表 ::=)
   VariableExpression(变量表达式)|
   NextExpressionList , VariableExpression(Next 表达式列表 , 变量表达式)

For Each...Next 语句

ForEachStatement ::=
   For Each LoopControlVariable In Expression StatementTerminator
   [ Block ]
   Next [ VariableExpression ] StatementTerminator(For Each 语句 ::=
   For Each 循环控制变量 In 表达式语句结束符
   [ 块 ]
   Next [ 变量表达式 ] 语句结束符)

异常处理语句

ExceptionHandlingStatement ::=(异常处理语句 ::=)
   StructuredExceptionStatement(结构化异常语句)|
   UnstructuredExceptionStatement(非结构化异常语句)

结构化异常处理语句

StructuredExceptionStatement ::=(结构化异常语句 ::=)
   ThrowStatement(Throw 语句)|
   TryStatement(Try 语句)

ThrowStatement ::= Throw [ Expression ] StatementTerminator(Throw 语句 ::= Throw [ 表达式 ] 语句结束符)

TryStatement ::=(Try 语句 ::=)
   Try StatementTerminator(Try 语句结束符)
   [ Block ]([ 块 ])
   [ CatchStatement+ ]([ Catch 语句+ ])
   [ FinallyStatement ]([ Finally 语句 ])
   End Try StatementTerminator(End Try 语句结束符)

Finally 块

FinallyStatement ::=(Finally 语句 ::=)
   Finally StatementTerminator(Finally 语句结束符)
   [ Block ]([ 块 ])

Catch 块

CatchStatement ::=(Catch 语句 ::=)
   Catch [ Identifier As TypeName ] [ When BooleanExpression ] StatementTerminator(Catch [ 标识符 As 类型名 ] [ When 布尔表达式 ] 语句结束符)
   [ Block ]([ 块 ])

非结构化异常处理语句

UnstructuredExceptionStatement ::=(非结构化异常语句 ::=)
   ErrorStatement(Error 语句)|
   OnErrorStatement(OnError 语句)|
   ResumeStatement(Resume 语句)

Error 语句

ErrorStatement ::= Error Expression StatementTerminator(Error 语句 ::= Error 表达式语句结束符)

On Error 语句

OnErrorStatement ::= On Error ErrorClause StatementTerminator(OnError 语句 ::= On Error Error 子句语句结束符)

ErrorClause ::=(Error 子句 ::=)
   Resume Next |
   GoTo -1 |
   GoTo 0 |
   GotoStatement(Goto 语句)

Resume 语句

ResumeStatement ::= Resume [ ResumeClause ] StatementTerminator(Resume 语句 ::= Resume [ Resume 子句 ] 语句结束符)

ResumeClause ::= Next | LabelName(Resume 子句 ::= Next | 标签名)

控制流语句

ControlFlowStatement ::=(控制流语句 ::=)
   GotoStatement(Goto 语句)|
   ExitStatement(Exit 语句)|
   StopStatement(Stop 语句)|
   EndStatement(End 语句)|
   ReturnStatement(Return 语句)

GotoStatement ::= GoTo LabelName StatementTerminator(Goto 语句 ::= GoTo 标签名语句结束符)

ExitStatement ::= Exit ExitKind StatementTerminator(Exit 语句 ::= Exit 退出类型语句结束符)

ExitKind(退出类型)::= Do | For | While | Select | Sub | Function | Property | Try

StopStatement ::= Stop StatementTerminator(Stop 语句 ::= Stop 语句结束符)

EndStatement ::= End StatementTerminator(End 语句 ::= End 语句结束符)

ReturnStatement ::= Return [ Expression ](Return 语句 ::= Return [ 表达式 ])

数组处理语句

ArrayHandlingStatement ::=(数组处理语句 ::=)
   RedimStatement(Redim 语句)|
   EraseStatement(Erase 语句)

ReDim 语句

RedimStatement ::= ReDim [ Preserve ] RedimClauses+ StatementTerminator(Redim 表达式 ::= ReDim [ Preserve ] Redim 子句+ 语句结束符)

RedimClauses ::=(Redim 子句 ::=)
   RedimClauses(Redim 子句)|
   RedimClause , RedimClauses(Redim 子句 , Redim 子句)

RedimClause ::= VariableExpression ArrayInitializationModifier(Redim 子句 ::= 变量表达式数组初始化修饰符)

Erase 语句

EraseStatement ::= Erase VariableExpressions StatementTerminator(Erase 语句 ::= Erase 变量表达式语句结束符)

VariableExpressions ::=(变量表达式 ::=)
   VariableExpression(变量表达式)|
   VariableExpressions , VariableExpression(变量表达式 , 变量表达式)

表达式

Expression ::=(表达式 ::=)
   SimpleExpression(简单表达式)|
   InvocationExpression(调用表达式)|
   MemberAccessExpression(成员访问表达式)|
   IndexExpression(索引表达式)|
   NewExpression(New 表达式)|
   CastExpression(强制转换表达式)|
   TypeOfExpression(TypeOf 表达式)|
   OperatorExpression(运算符表达式)

常数表达式

ConstantExpression ::= Expression(常数表达式 ::= 表达式)

变量表达式

VariableExpression ::= Expression(变量表达式 ::= 表达式)

事件表达式

EventExpression ::=(事件表达式 ::=)
   Expression . IdentifierOrKeyword(表达式 . 标识符或关键字)|
   [ MeExpression . ] IdentifierOrKeyword([ Me 表达式 . ] 标识符或关键字)|
   EventMemberName(事件成员名)

简单表达式

SimpleExpression ::=(简单表达式 ::=)
   LiteralExpression(文本表达式)|
   ParenthesizedExpression(带括号的表达式)|
   MeExpression(Me 表达式)|
   MetaTypeExpression(元类型表达式)|
   LocalVariableExpression(局部变量表达式)|
   TypeOfIsOperatorExpression(TypeOfIs 运算符表达式)|
   IsOperatorExpression(Is 运算符表达式)

文本表达式

LiteralExpression ::= Literal(文本表达式 ::= 文本)

带括号的表达式

ParenthesizedExpression ::= ( Expression )(带括号的表达式 ::= ( 表达式 ))

Me 表达式

MeExpression ::= Me(Me 表达式 ::= Me)

GetType 表达式

MetaTypeExpression ::= GetType ( TypeName )(元类型表达式 ::= GetType ( 类型名 ))

局部变量表达式

LocalVariableExpression ::= LocalVariableName(局部变量表达式 ::= 局部变量名)

TypeOf...Is 表达式

TypeOfIsOperatorExpression ::= TypeOf Expression Is TypeName(TypeOfIs 运算符表达式 ::= TypeOf 表达式 Is 类型名)

Is 表达式

IsOperatorExpression ::= Expression Is Expression(Is 运算符表达式 ::= 表达式 Is 表达式)

调用表达式

InvocationExpression ::= InvocationTargetExpression [ ( [ ArgumentList ] ) ](调用表达式 ::= 调用目标表达式 [ ( [ 参数列表 ] ) ])

InvocationTargetExpression ::=(调用目标表达式 ::=)
   DelegateExpression(委托表达式)|
   [ [ Expression ] . ] IdentifierOrKeyword([ [ 表达式 ] . ] 标识符或关键字)|
   MyClass . IdentifierOrKeyword(MyClass . 标识符或关键字)|
   MyBase . IdentifierOrKeyword(MyBase . 标识符或关键字)|
   MethodMemberName(方法成员名)

DelegateExpression ::= Expression(委托表达式 ::= 表达式)

参数列表

ArgumentList ::=(参数列表 ::=)
   PositionalArgumentList , NamedArgumentList(定位参数列表 , 命名参数列表)|
   PositionalArgumentList(定位参数列表)|
   NamedArgumentList(命名参数列表)

PositionalArgumentList ::=(定位参数列表 ::=)
   ArgumentExpression(参数表达式)|
   PositionalArgumentList , [ ArgumentExpression ](定位参数列表 , [ 参数表达式 ])

NamedArgumentList ::=(命名参数列表 ::=)
   Identifier : = ArgumentExpression(标识符 : = 参数表达式)|
   NamedArgumentList , Identifier : = ArgumentExpression(命名参数列表 , 标识符 : = 参数表达式)

ArgumentExpression ::= Expression | DelegateArgumentExpression(参数表达式 ::= 表达式 | 委托参数表达式)

委托参数表达式

DelegateArgumentExpression ::= AddressOf InvocationTargetExpression(委托参数表达式 ::= AddressOf 调用目标表达式)

成员访问表达式

MemberAccessExpression ::=(成员访问表达式 ::=)
   [ [ Expression ] . ] IdentifierOrKeyword([ [ 表达式 ] . ] 标识符或关键字)|
   VariableMemberName(变量成员名)|
   PropertyMemberName(属性成员名)|
   ConstantMemberName(常数成员名)|
   EnumMemberName(枚举成员名)|
   DictionaryAccessExpression(字典访问表达式)

字典成员访问

DictionaryAccessExpression ::= [ Expression ] ! IdentifierOrKeyword(字典访问表达式 ::= [ 表达式 ] ! 标识符或关键字)

索引表达式

IndexExpression ::= Expression ( ArgumentList )(索引表达式 ::= 表达式 ( 参数列表 ))

New 表达式

NewExpression ::=(New 表达式 ::=)
   ObjectCreationExpression(对象创建表达式)|
   ArrayCreationExpression(数组创建表达式)|
   DelegateCreationExpression(委托创建表达式)

对象创建表达式

ObjectCreationExpression ::= New TypeName [ ( [ ArgumentList ] ) ](对象创建表达式 ::= New 类型名 [ ( [ 参数列表 ] ) ])

数组创建表达式

ArrayCreationExpression ::=(数组创建表达式 ::=)
   New TypeName ( ArgumentList ) ArrayElementInitializer(New 类型名 ( 参数列表 ) 数组元素初始值设定项)|
   New ArrayTypeName ArrayElementInitializer(New 数组类型名数组元素初始值设定项)

委托创建表达式

DelegateCreationExpression ::= New TypeName ( InvocationTargetExpression )(委托创建表达式 ::= New 类型名 ( 调用目标表达式 ))

强制转换表达式

CastExpression ::=(强制转换表达式 ::=)
   CType ( Expression , TypeName )CType ( 表达式 , 类型名 )) |
   CastTarget ( Expression )(强制转换目标 ( 表达式 ))

CastTarget(强制转换目标)::=
   CBool | CByte | CChar | CDate | CDec | CDbl |
   CInt | CLng | CObj | CShort | CSng | CStr

运算符

OperatorExpression ::= UnaryOperatorExpression | BinaryOperatorExpression(运算符表达式 ::= 一元运算符表达式 | 二元运算符表达式)

BinaryOperatorExpression ::=(二元运算符表达式 ::=)
   ArithmeticOperatorExpression(算术运算符表达式)|
   RelationalOperatorExpression(关系运算符表达式)|
   LikeOperatorExpression(Like 运算符表达式)|
   ConcatenationOperatorExpression(串联运算符表达式)|
   ShortCircuitLogicalOperatorExpression(短路逻辑运算符表达式)|
   LogicalOperatorExpression(逻辑运算符表达式)|
   ShiftOperatorExpression(移位运算符表达式)

一元运算符

UnaryOperatorExpression ::=(一元运算符表达式 ::=)
   UnaryPlusExpression(一元加表达式)|
   UnaryMinusExpression(一元减表达式)|
   UnaryLogicalNotExpression(一元逻辑 Not 表达式)

一元加运算符

UnaryPlusExpression ::= + Expression(一元加表达式 ::= + 表达式)

一元减运算符

UnaryMinusExpression ::= - Expression(一元减表达式 ::= - 表达式)

逻辑非运算符

UnaryLogicalNotExpression ::= Not Expression(一元逻辑 Not 表达式 ::= Not 表达式)

算术运算符

ArithmeticOperatorExpression ::=(算术运算符表达式 ::=)
   AdditionOperatorExpression(加法运算符表达式)|
   SubtractionOperatorExpression(减法运算符表达式)|
   MultiplicationOperatorExpression(乘法运算符表达式)|
   DivisionOperatorExpression(除法运算符表达式)|
   ModuloOperatorExpression(模运算符表达式)|
   ExponentOperatorExpression(幂运算符表达式)

加法运算符

AdditionOperatorExpression ::= Expression + Expression(加法运算符表达式 ::= 表达式 + 表达式)

减法运算符

SubtractionOperatorExpression ::= Expression - Expression(减法运算符表达式 ::= 表达式 - 表达式)

乘法运算符

MultiplicationOperatorExpression ::= Expression * Expression(乘法运算符表达式 ::= 表达式 * 表达式)

除法运算符

DivisionOperatorExpression ::=(除法运算符表达式 ::=)
   RegularDivisionOperatorExpression(规则除法运算符表达式)|
   IntegerDivisionOperatorExpression(整数除法运算符表达式)

RegularDivisionOperatorExpression ::= Expression / Expression(规则除法运算符表达式 ::= 表达式 / 表达式)

IntegerDivisionOperatorExpression ::= Expression / Expression(整数除法运算符表达式 ::= 表达式 / 表达式)

Mod 运算符

ModOperatorExpression ::= Expression Mod Expression(Mod 运算符表达式 ::= 表达式 Mod 表达式)

幂运算符

ExponentOperatorExpression ::= Expression ^ Expression(幂运算符表达式 ::= 表达式 ^ 表达式)

关系运算符

RelationalOperatorExpression ::=(关系运算符表达式 ::=)
   Expression = Expression(表达式 = 表达式)|
   Expression < > Expression(表达式 < > 表达式)|
   Expression < Expression(表达式 < 表达式)|
   Expression > Expression(表达式 > 表达式)|
   Expression < = Expression(表达式 < = 表达式)|
   Expression > = Expression(表达式 > = 表达式)

Like 运算符

LikeOperatorExpression ::= Expression Like Expression(Like 运算符表达式 ::= 表达式 Like 表达式)

串联运算符

ConcatenationOperatorExpression ::= Expression & Expression(串联运算符表达式 ::= 表达式 & 表达式)

逻辑运算符

LogicalOperatorExpression ::=(逻辑运算符表达式 ::=)
   Expression And Expression(表达式 And 表达式)|
   Expression Or Expression(表达式 Or 表达式)|
   Expression Xor Expression(表达式 Xor 表达式)|
   Expression AndAlso Expression(表达式 AndAlso 表达式)|
   Expression OrElse Expression(表达式 OrElse 表达式)

移位运算符

ShiftOperatorExpression ::=(移位运算符表达式 ::=)
   Expression << Expression(表达式 << 表达式)|
   Expression >> Expression(表达式 >> 表达式)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值