# Syntax (old) ### Statements ```PEG ExpressionStatement ← Expression ';' ``` ### Expressions ```PEG AssignmentTargetExpression ← identifier ATEElementSuffix* ATEElementSuffix ← '[' Expression ']' / '.' identifier / '->' identifier AtomicExpression ← identifier / constant / string-literal / '(' Expression ')' ObjectExpression ← AtomicExpression ObjectSuffix* / ArrayLiteralExpression / StructLiteralExpression ObjectSuffix ← '[' Expression ']' / '(' CommasExpressionList? ')' / '.' identifier / '->' identifier CommasExpressionList ← Expression ',' CommasExpressionList? / Expression ','? ArrayLiteralExpression ← '{' CommasExpressionList '}' StructLiteralExpression ← '{' StructLiteralBody '}' StructLiteralBody ← StructLiteralElement ',' StructLiteralBody? / StructLiteralElement ','? StructLiteralElement ← '.' identifier '=' Expression FactorExpression ← '(' Type ')' FactorExpression / '&' FactorExpression / '*' FactorExpression / '+' FactorExpression / '-' FactorExpression / '~' FactorExpression / '!' FactorExpression / 'sizeof' FactorExpression / 'sizeof' Type / ObjectExpression TermExpression ← FactorExpression TermSuffix* TermSuffix ← '*' FactorExpression / '/' FactorExpression / '%' FactorExpression ArithmeticExpression ← TermExpression ArithmeticSuffix* ArithmeticSuffix ← '+' TermExpression / '-' TermExpression BitwiseOpExpression ← ArithmeticExpression '<<' ArithmeticExpression / ArithmeticExpression '>>' ArithmeticExpression / ArithmeticExpression '^' ArithmeticExpression / ArithmeticExpression ('&' ArithmeticExpression)+ / ArithmeticExpression ('|' ArithmeticExpression)+ / ArithmeticExpression ComparisonExpression ← BitwiseOpExpression '==' BitwiseOpExpression / BitwiseOpExpression '!=' BitwiseOpExpression / BitwiseOpExpression '<=' BitwiseOpExpression / BitwiseOpExpression '>=' BitwiseOpExpression / BitwiseOpExpression '<' BitwiseOpExpression / BitwiseOpExpression '>' BitwiseOpExpression / BitwiseOpExpression Expression ← ComparisonExpression ('&&' ComparisonExpression)+ / ComparisonExpression ('||' ComparisonExpression)+ / ComparisonExpression ```