@flowscripter/mpeg-sdl-parser
Version:
ISO/IEC 14496-34 Syntactic Description Language (MPEG SDL) parser implemented in TypeScript
184 lines (172 loc) • 4.28 kB
Plain Text
# First expression is expression
class A {for (i=1;i<9;i++) {j++;}}
==>
Specification(
ClassDeclaration(
class
Whitespace
Identifier
Whitespace
OpenBrace
ForStatement(
for
Whitespace
OpenParenthesis
AssignmentExpression(
UnaryExpression(
Identifier
)
Assignment
UnaryExpression(
IntegerLiteral
)
)
Semicolon
BinaryExpression(
UnaryExpression(
Identifier
)
RelationalLessThan
UnaryExpression(
IntegerLiteral
)
)
Semicolon
UnaryExpression(
UnaryExpression(
Identifier
)
PostfixIncrement
)
CloseParenthesis
Whitespace
CompoundStatement(
OpenBrace
ExpressionStatement(
UnaryExpression(
UnaryExpression(
Identifier
)
PostfixIncrement
)
Semicolon
)
CloseBrace
)
)
CloseBrace
)
)
# First expression is computed elementary type definition
class A {for (computed int i=1;i<9;i++) {j++;}}
==>
Specification(
ClassDeclaration(
class
Whitespace
Identifier
Whitespace
OpenBrace
ForStatement(
for
Whitespace
OpenParenthesis
ComputedElementaryTypeDefinition(
computed
Whitespace
ElementaryType(
int
)
Whitespace
Identifier
Assignment
UnaryExpression(
IntegerLiteral
)
Semicolon
)
BinaryExpression(
UnaryExpression(
Identifier
)
RelationalLessThan
UnaryExpression(
IntegerLiteral
)
)
Semicolon
UnaryExpression(
UnaryExpression(
Identifier
)
PostfixIncrement
)
CloseParenthesis
Whitespace
CompoundStatement(
OpenBrace
ExpressionStatement(
UnaryExpression(
UnaryExpression(
Identifier
)
PostfixIncrement
)
Semicolon
)
CloseBrace
)
)
CloseBrace
)
)
# First expression is empty
class A {for (;i<9;i++) {j++;}}
==>
Specification(
ClassDeclaration(
class
Whitespace
Identifier
Whitespace
OpenBrace
ForStatement(
for
Whitespace
OpenParenthesis
Semicolon
BinaryExpression(
UnaryExpression(
Identifier
)
RelationalLessThan
UnaryExpression(
IntegerLiteral
)
)
Semicolon
UnaryExpression(
UnaryExpression(
Identifier
)
PostfixIncrement
)
CloseParenthesis
Whitespace
CompoundStatement(
OpenBrace
ExpressionStatement(
UnaryExpression(
UnaryExpression(
Identifier
)
PostfixIncrement
)
Semicolon
)
CloseBrace
)
)
CloseBrace
)
)