* 式 [#dc9e1708] #contents ** ExpressionのEBNF [#abe280b9] #code(){{ UnaryOperator: | "++" | "--" | "+" | "-" | "!" | "~" | "@" NewExpression: "new" TypePath FunctionCallExpression DeleteExpression: "delete" UnaryExpression PrimaryExpression: Identifier # ScopeRootIdentExpression | "." Identifier # NamespaceRootIdentExpression | ConstantLiteral | "(" Expression ")" IndexExpression: "[" Expression "]" FunctionCallExpression: "(" SequenceExpression ")" PostfixOperator: "++" | "--" | IndexExpression | FunctionCallExpression | "." Identifier # ChildIdentExpression PostfixExpression: PrimaryExpression (PostfixOperator)* CastExpression: "cast" "(" TypePath ")" UnaryExpression UnaryExpression: (UnaryOperator)* (CastExpression | NewExpression | DeleteExpression | PostfixExpression) MultiplicativeOperator: "*" | "/" | "%" MultiplicativeExpression: CastExpression (MultiplicativeOperator CastExpression)* AdditiveOperator: "+" | "-" AdditiveExpression: MultiplicativeExpression (AdditiveOperator MultiplicativeExpression)* ShiftOperator: ">>" | "<<" ShiftExpression: AdditiveExpression (ShiftOperator AdditiveExpression)* RelationalOperator: ">" | "<" | "<=" | ">=" RelationalExpression: ShiftExpression (RelationalOperator ShiftExpression)* EqualityOperator: "==" | "!=" EqualityExpression: RelationalExpression (EqulityOperator RelationalExpression)* IdentityOperator: "is" | "!" "is" IdentityExpression: EqualityExpression (IdentityOperator EqualityExpression )* BitwiseAndOperator: "&" BitwiseAndExpression: EqualityExpression (BitwiseAndOperator EqualityExpression )* IdentityExpression (BitwiseAndOperator IdentityExpression )* BitwiseXorOperator: "^" BitwiseXorExpression: BitwiseAndExpression (BitwiseXorOperator BitwiseAndExpression)* BitwiseOrOperator: "|" BitwiseOrExpression: BitwiseXorExpression (BitwiseOrOperator BitwiseXorExpression)* LogicalAndOperator: "&&" LogicalAndExpression: BitwiseOrExpression (LogicalAndOperator BitwiseOrExpression)* LogicalOrOperator: "||" LogicalOrExpression: LogicalAndExpression (LogicalOrOperator LogicalAndExpression)* ConditionalExpression: LogicalOrExpression ("?" ConditionalExpression ":" ConditionalExpression)* AssignmentOperator: "=" | "+=" | "-=" | "*=" | "/=" | "%=" | ">>=" | "<<=" | "&=" | "|=" | "^=" AssignmentExpression: (ConditionalExpression AssignmentOperator)* ConditionalExpression Expression: AssignmentExpression SequenceOperator: "," SequenceExpression: Expression (SequenceOperator Expression)* }} |