BARfly Help - BAR Implementation File Reference - Expressions

  Expressions

An “expression” is a calculation statement of one or more tokens that results in a numerical value, a pointer, or a void expression.

Expression ::= Constant | IdentifierName | ‘this’ | UnaryExpression | BinaryExpression | ParentheticalExpression | FunctionCallExpression | NavigationExpressionSingular | NavigationExpressionPlural | NewChildExpressionSingular | NewChildExpressionPlural | NewExpressionSingular | NewExpressionPlural | SizeOfExpression | UnaryMathExpression | BinaryMathExpression | IndexedDereference

A “unary expression” is composed of a single unary operator preceding an expression.

UnaryExpression ::= TypeCastExpression | AddressOf | UnaryInversion | PointerDeref | PrefixIncrement

A “binary expression” is composed of a binary operator between two expressions.

BinaryExpression ::= StructureMemberSelection | PointerToStructureMemberSelection | Multiply | Divide | Modulo | Add | Subtract | ShiftLeft | ShiftRight | Relational | Bitwise | Logical | Assignment | AssignmentWithOperation

A “function call expression” is composed of a function name and argument list (which could be empty).

FunctionCallExpression ::= IdentifierName S? (FunctionCallNoArguments | ArgumentExpression)


  See also:  [Expression characteristics] [Identifier interpretations] [Built-in functions] [Special load considerations]
[Additional rules for expressions] [Final expression type result] [L-value status gain and loss]
[Overly complex expressions] [Limitations on pointer usage] [Structure member dereference:  bit scan blocks]


BARfly Help Copyright © 2009 Christopher Allen