diff --git a/test/corpus/negative/ArrayExpression1.txt b/test/corpus/negative/ArrayExpression1.txt new file mode 100644 index 0000000..9f9ce54 --- /dev/null +++ b/test/corpus/negative/ArrayExpression1.txt @@ -0,0 +1,12 @@ +==================== +ArrayExpression1 +:error +==================== + +function main() { + x[] = 3; + + return; +} + +-------------------- diff --git a/test/corpus/negative/ArrayExpression2.txt b/test/corpus/negative/ArrayExpression2.txt new file mode 100644 index 0000000..5ee134e --- /dev/null +++ b/test/corpus/negative/ArrayExpression2.txt @@ -0,0 +1,12 @@ +==================== +ArrayExpression2 +:error +==================== + +function main() { + x[1, 3] = 3; + + return; +} + +-------------------- diff --git a/test/corpus/negative/ArrayExpression3.txt b/test/corpus/negative/ArrayExpression3.txt new file mode 100644 index 0000000..41d571a --- /dev/null +++ b/test/corpus/negative/ArrayExpression3.txt @@ -0,0 +1,12 @@ +==================== +ArrayExpression3 +:error +==================== + +function main() { + x[[13]] = 3; + + return; +} + +-------------------- diff --git a/test/corpus/negative/ArrayExpression4.txt b/test/corpus/negative/ArrayExpression4.txt new file mode 100644 index 0000000..063b2da --- /dev/null +++ b/test/corpus/negative/ArrayExpression4.txt @@ -0,0 +1,12 @@ +==================== +ArrayExpression4 +:error +==================== + +function main() { + x[13 3] = 3; + + return; +} + +-------------------- diff --git a/test/corpus/negative/ArrayExpression5.txt b/test/corpus/negative/ArrayExpression5.txt new file mode 100644 index 0000000..fb069dd --- /dev/null +++ b/test/corpus/negative/ArrayExpression5.txt @@ -0,0 +1,12 @@ +==================== +ArrayExpression5 +:error +==================== + +function main() { + x[13]3 = 3; + + return; +} + +-------------------- diff --git a/test/corpus/negative/ArrayExpression6.txt b/test/corpus/negative/ArrayExpression6.txt new file mode 100644 index 0000000..9aeb9d8 --- /dev/null +++ b/test/corpus/negative/ArrayExpression6.txt @@ -0,0 +1,12 @@ +==================== +ArrayExpression6 +:error +==================== + +function main() { + x 3[13] = 3; + + return; +} + +-------------------- diff --git a/test/corpus/negative/Assignments1.txt b/test/corpus/negative/Assignments1.txt new file mode 100644 index 0000000..b25555f --- /dev/null +++ b/test/corpus/negative/Assignments1.txt @@ -0,0 +1,8 @@ +==================== +Assignments1 +:error +==================== + +int x += 3; + +-------------------- diff --git a/test/corpus/negative/ForStatement1.txt b/test/corpus/negative/ForStatement1.txt new file mode 100644 index 0000000..2128a2b --- /dev/null +++ b/test/corpus/negative/ForStatement1.txt @@ -0,0 +1,15 @@ +==================== +ForStatement1 +:error +==================== + +function main() -> int { + I32 x = 0; + + for (;;;) { + } + + return 0; +} + +-------------------- diff --git a/test/corpus/negative/ForStatement2.txt b/test/corpus/negative/ForStatement2.txt new file mode 100644 index 0000000..d2f24d8 --- /dev/null +++ b/test/corpus/negative/ForStatement2.txt @@ -0,0 +1,13 @@ +==================== +ForStatement2 +:error +==================== + +function main() -> int { + for (while (true){};;) { + } + + return 0; +} + +-------------------- diff --git a/test/corpus/negative/FunctionCall1.txt b/test/corpus/negative/FunctionCall1.txt new file mode 100644 index 0000000..38c78fe --- /dev/null +++ b/test/corpus/negative/FunctionCall1.txt @@ -0,0 +1,10 @@ +==================== +FunctionCall1 +:error +==================== + +function main() { + f(3 3); +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration1.txt b/test/corpus/negative/FunctionDeclaration1.txt new file mode 100644 index 0000000..4791ea9 --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration1.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration1 +:error +==================== + +int main() { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration2.txt b/test/corpus/negative/FunctionDeclaration2.txt new file mode 100644 index 0000000..9c097e6 --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration2.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration2 +:error +==================== + +function main() : int { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration3.txt b/test/corpus/negative/FunctionDeclaration3.txt new file mode 100644 index 0000000..7c43c2b --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration3.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration3 +:error +==================== + +function main() -> { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration4.txt b/test/corpus/negative/FunctionDeclaration4.txt new file mode 100644 index 0000000..c0b0fff --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration4.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration4 +:error +==================== + +function main(int a int b) { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration5.txt b/test/corpus/negative/FunctionDeclaration5.txt new file mode 100644 index 0000000..49eec7e --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration5.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration5 +:error +==================== + +function main(a) { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration6.txt b/test/corpus/negative/FunctionDeclaration6.txt new file mode 100644 index 0000000..e3e39f1 --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration6.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration6 +:error +==================== + +function main(, ) { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration7.txt b/test/corpus/negative/FunctionDeclaration7.txt new file mode 100644 index 0000000..f49e1e8 --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration7.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration7 +:error +==================== + +function main(int a, ) { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration8.txt b/test/corpus/negative/FunctionDeclaration8.txt new file mode 100644 index 0000000..b6b62f8 --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration8.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration8 +:error +==================== + +function main(, int a) { +} + +-------------------- diff --git a/test/corpus/negative/FunctionDeclaration9.txt b/test/corpus/negative/FunctionDeclaration9.txt new file mode 100644 index 0000000..6a8233d --- /dev/null +++ b/test/corpus/negative/FunctionDeclaration9.txt @@ -0,0 +1,9 @@ +==================== +FunctionDeclaration9 +:error +==================== + +function main(a, int b) { +} + +-------------------- diff --git a/test/corpus/negative/ReturnStatement1.txt b/test/corpus/negative/ReturnStatement1.txt new file mode 100644 index 0000000..a24cb3a --- /dev/null +++ b/test/corpus/negative/ReturnStatement1.txt @@ -0,0 +1,10 @@ +==================== +ReturnStatement1 +:error +==================== + +function main() -> int { + return 1, 4; +} + +-------------------- diff --git a/test/corpus/negative/ReturnStatement2.txt b/test/corpus/negative/ReturnStatement2.txt new file mode 100644 index 0000000..b1a58dd --- /dev/null +++ b/test/corpus/negative/ReturnStatement2.txt @@ -0,0 +1,10 @@ +==================== +ReturnStatement2 +:error +==================== + +function main() -> int { + return 1 4; +} + +-------------------- diff --git a/test/corpus/negative/ReturnStatement3.txt b/test/corpus/negative/ReturnStatement3.txt new file mode 100644 index 0000000..604eb74 --- /dev/null +++ b/test/corpus/negative/ReturnStatement3.txt @@ -0,0 +1,10 @@ +==================== +ReturnStatement3 +:error +==================== + +function main() -> int { + return (1, 4); +} + +-------------------- diff --git a/test/corpus/negative/WhileStatement1.txt b/test/corpus/negative/WhileStatement1.txt new file mode 100644 index 0000000..b27f6aa --- /dev/null +++ b/test/corpus/negative/WhileStatement1.txt @@ -0,0 +1,10 @@ +==================== +WhileStatement1 +:error +==================== + +function main() { + while (true) { + } + +-------------------- diff --git a/test/corpus/negative/WhileStatement2.txt b/test/corpus/negative/WhileStatement2.txt new file mode 100644 index 0000000..32cb0a6 --- /dev/null +++ b/test/corpus/negative/WhileStatement2.txt @@ -0,0 +1,11 @@ +==================== +WhileStatement2 +:error +==================== + +function main() { + while (true) +} +} + +-------------------- diff --git a/test/corpus/negative/WhileStatement3.txt b/test/corpus/negative/WhileStatement3.txt new file mode 100644 index 0000000..2a57061 --- /dev/null +++ b/test/corpus/negative/WhileStatement3.txt @@ -0,0 +1,11 @@ +==================== +WhileStatement3 +:error +==================== + +function main() { + while () { + } +} + +-------------------- diff --git a/test/corpus/negative/WhileStatement4.txt b/test/corpus/negative/WhileStatement4.txt new file mode 100644 index 0000000..a8107e1 --- /dev/null +++ b/test/corpus/negative/WhileStatement4.txt @@ -0,0 +1,12 @@ +==================== +WhileStatement4 +:error +==================== + +function main() { + while + true { + } +} + +-------------------- diff --git a/test/corpus/positive/ArithmeticExpression1.txt b/test/corpus/positive/ArithmeticExpression1.txt new file mode 100644 index 0000000..57026b9 --- /dev/null +++ b/test/corpus/positive/ArithmeticExpression1.txt @@ -0,0 +1,35 @@ +==================== +ArithmeticExpression1 +==================== + +int x = a + b; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) diff --git a/test/corpus/positive/ArithmeticExpression2.txt b/test/corpus/positive/ArithmeticExpression2.txt new file mode 100644 index 0000000..e966c78 --- /dev/null +++ b/test/corpus/positive/ArithmeticExpression2.txt @@ -0,0 +1,51 @@ +==================== +ArithmeticExpression2 +==================== + +int x = (a * b) + c; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) diff --git a/test/corpus/positive/ArithmeticExpression3.txt b/test/corpus/positive/ArithmeticExpression3.txt new file mode 100644 index 0000000..8475a69 --- /dev/null +++ b/test/corpus/positive/ArithmeticExpression3.txt @@ -0,0 +1,51 @@ +==================== +ArithmeticExpression3 +==================== + +int x = a * (b + c); + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArithmeticExpression4.txt b/test/corpus/positive/ArithmeticExpression4.txt new file mode 100644 index 0000000..4a6f75d --- /dev/null +++ b/test/corpus/positive/ArithmeticExpression4.txt @@ -0,0 +1,51 @@ +==================== +ArithmeticExpression4 +==================== + +int x = a / (b - c); + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArithmeticExpression5.txt b/test/corpus/positive/ArithmeticExpression5.txt new file mode 100644 index 0000000..0b48951 --- /dev/null +++ b/test/corpus/positive/ArithmeticExpression5.txt @@ -0,0 +1,76 @@ +==================== +ArithmeticExpression5 +==================== + +int x = (4I) - (5i) / (2U); + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression1.txt b/test/corpus/positive/ArrayExpression1.txt new file mode 100644 index 0000000..0f49208 --- /dev/null +++ b/test/corpus/positive/ArrayExpression1.txt @@ -0,0 +1,42 @@ +==================== +ArrayExpression1 +==================== + +int x = y[3u]; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression2.txt b/test/corpus/positive/ArrayExpression2.txt new file mode 100644 index 0000000..b4fc0d5 --- /dev/null +++ b/test/corpus/positive/ArrayExpression2.txt @@ -0,0 +1,67 @@ +==================== +ArrayExpression2 +==================== + +int x = y[3u][a][9]; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression3.txt b/test/corpus/positive/ArrayExpression3.txt new file mode 100644 index 0000000..0260e59 --- /dev/null +++ b/test/corpus/positive/ArrayExpression3.txt @@ -0,0 +1,447 @@ +==================== +ArrayExpression3 +==================== + +int x = (a[(e / 11 - (h + 12)) * ((e * f) * 13)][12][f]) - + ((f[13 * 12]) * (f + ((b - 3) - (11 - e)))) / + (((11 / a - (3 + g)) * ((c - d) / 12)) / (13 - (d[0][12]))); + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression4.txt b/test/corpus/positive/ArrayExpression4.txt new file mode 100644 index 0000000..d209d4b --- /dev/null +++ b/test/corpus/positive/ArrayExpression4.txt @@ -0,0 +1,205 @@ +==================== +ArrayExpression4 +==================== + +int x = h[(((f - h) - 11i8) - (d / 0i64) / (11u16 - b)) + + (a[g / f][f - e][d - 12I32])]; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal)))))))))))))))))))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression5.txt b/test/corpus/positive/ArrayExpression5.txt new file mode 100644 index 0000000..85fbd04 --- /dev/null +++ b/test/corpus/positive/ArrayExpression5.txt @@ -0,0 +1,233 @@ +==================== +ArrayExpression5 +==================== + +int x = (e[(c[13u16]) - 11i16 / f][(e / e) / 13U16 + (c + 0I16) * b]) / + (e - (11I8 - (a[12U8 * a][d]))); + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression6.txt b/test/corpus/positive/ArrayExpression6.txt new file mode 100644 index 0000000..e3e27f3 --- /dev/null +++ b/test/corpus/positive/ArrayExpression6.txt @@ -0,0 +1,555 @@ +==================== +ArrayExpression6 +==================== + + +int x = (((h[3][a]) / (3 / 13 + 12 * 3)) * ((a[13][e][b]) * 13) + + ((13 * 12) / 0 + 3 / (d * 3)) * (13 - c)) / + (((d[i]) / 12 + (h + (12 + 12)) * f) + + (0 * (3 - (0 - 3))) / ((12 - g) / (a + 0) + (i + a) / (g * 12))); + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression7.txt b/test/corpus/positive/ArrayExpression7.txt new file mode 100644 index 0000000..26c522c --- /dev/null +++ b/test/corpus/positive/ArrayExpression7.txt @@ -0,0 +1,307 @@ +==================== +ArrayExpression7 +==================== + +function main() { + x[24][a / 4 * 3 + 3][x[3][b[1]]] = + (12 + (c[13 + 12][11][12]) * (((12 + 13) - (13 + g)) - i)) * + (12 / 11); +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ArrayExpression8.txt b/test/corpus/positive/ArrayExpression8.txt new file mode 100644 index 0000000..f9b7397 --- /dev/null +++ b/test/corpus/positive/ArrayExpression8.txt @@ -0,0 +1,94 @@ +==================== +ArrayExpression8 +==================== + +function main() { + int b; + int[10] x; + + x[b = 4] = 4; + + return; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (array_specifier + (type_specifier + (int_type)) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (block_item + (statement + (jump_statement)))))))) diff --git a/test/corpus/positive/Assignments1.txt b/test/corpus/positive/Assignments1.txt new file mode 100644 index 0000000..4640775 --- /dev/null +++ b/test/corpus/positive/Assignments1.txt @@ -0,0 +1,171 @@ +==================== +Assignments1 +==================== + + +function main() { + int x = 0; + int y = 3; + + x += 3; + y -= x + 3; + x *= y * y - 3; + y /= x; + + return; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (block_item + (statement + (jump_statement)))))))) diff --git a/test/corpus/positive/BooleanExpression1.txt b/test/corpus/positive/BooleanExpression1.txt new file mode 100644 index 0000000..55a9465 --- /dev/null +++ b/test/corpus/positive/BooleanExpression1.txt @@ -0,0 +1,68 @@ +==================== +BooleanExpression1 +==================== + +function main() { + + bool b = true && false || false && true; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (predefined_constant)))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (predefined_constant)))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (predefined_constant)))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (predefined_constant))))))))))))))))))))) diff --git a/test/corpus/positive/BooleanExpression2.txt b/test/corpus/positive/BooleanExpression2.txt new file mode 100644 index 0000000..5334b3a --- /dev/null +++ b/test/corpus/positive/BooleanExpression2.txt @@ -0,0 +1,184 @@ +==================== +BooleanExpression2 +==================== + +function main() { + bool b = + ((x < 9) || (y >= -1)) || (9 == z) && (x + c > 10 || x - c <= 4); +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (geq_operator) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))) + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (leq_operator) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/CastingExpression1.txt b/test/corpus/positive/CastingExpression1.txt new file mode 100644 index 0000000..3ad6ad2 --- /dev/null +++ b/test/corpus/positive/CastingExpression1.txt @@ -0,0 +1,102 @@ +==================== +CastingExpression1 +==================== + +function main() { + int x = (int)b; + int y = (int)(uint)b; + int z = (int)(char)(uint)b; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (type_specifier_qualifier + (type_specifier + (int_type))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (type_specifier_qualifier + (type_specifier + (int_type))) + (cast_expression + (type_specifier_qualifier + (type_specifier + (uint_type))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (type_specifier_qualifier + (type_specifier + (int_type))) + (cast_expression + (type_specifier_qualifier + (type_specifier)) + (cast_expression + (type_specifier_qualifier + (type_specifier + (uint_type))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))) diff --git a/test/corpus/positive/Character1.txt b/test/corpus/positive/Character1.txt new file mode 100644 index 0000000..fa295a9 --- /dev/null +++ b/test/corpus/positive/Character1.txt @@ -0,0 +1,113 @@ +==================== +Character1 +==================== + +char a = 'a'; +char b = '\n'; +char c = '\v'; +char d = '='; +char e = '\''; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (char_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (char_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (char_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (char_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (char_literal))))))))))))))))) diff --git a/test/corpus/positive/ForStatement1.txt b/test/corpus/positive/ForStatement1.txt new file mode 100644 index 0000000..bb25552 --- /dev/null +++ b/test/corpus/positive/ForStatement1.txt @@ -0,0 +1,321 @@ +==================== +ForStatement1 +==================== + +function e() { + int d; + i = 12 * (0 * (d - 13 * e)); + for (; 0 * ((12 / h) / 3) != 13 + g;) + ++d; + for (int i = 0; f > 0 && 12 == a; i++) { + int d; + i = b; + } + + d = h + 12; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))))))))))) + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))) + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))) + (block_item + (statement + (primary_block + (iteration_statement + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))) + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))) diff --git a/test/corpus/positive/ForStatement2.txt b/test/corpus/positive/ForStatement2.txt new file mode 100644 index 0000000..fceece8 --- /dev/null +++ b/test/corpus/positive/ForStatement2.txt @@ -0,0 +1,579 @@ +==================== +ForStatement2 +==================== + +function a() { + int f; + uint64_t b; + for (;;) { + if ((11 + g) * (3 + d) - (i / 13) / (e - 13) < + (13 * (a + d)) * ((f - 11) + (b - 11))) { + break; + } else if (f[d] == 3) { + uint h; + for (; b != 11 || d >= 0;) { + int a; + uint d; + f = 12; + a = 13; + } + e = d; + } else { + for (int i = 0;;) + break; + } + + int d; + for (;; d--) { + for (;;) { + d += 9; + } + g[3][d] = d; + } + } +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (primary_block + (iteration_statement + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (selection_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))))))))))) + (statement_block + (block_item_list + (block_item + (statement + (jump_statement))))) + (selection_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))) + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))) + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))) + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (geq_operator) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))) + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))) + (secondary_block + (statement + (jump_statement)))))))))))))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/ForStatement3.txt b/test/corpus/positive/ForStatement3.txt new file mode 100644 index 0000000..aa0117b --- /dev/null +++ b/test/corpus/positive/ForStatement3.txt @@ -0,0 +1,72 @@ +==================== +ForStatement3 +==================== + +function main() -> int { + I32 x = 0; + + for (;;) { + } + + return 0; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (block_item + (statement + (primary_block + (iteration_statement + (secondary_block + (statement + (primary_block + (statement_block)))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))) diff --git a/test/corpus/positive/ForStatement4.txt b/test/corpus/positive/ForStatement4.txt new file mode 100644 index 0000000..498373d --- /dev/null +++ b/test/corpus/positive/ForStatement4.txt @@ -0,0 +1,48 @@ +==================== +ForStatement4 +==================== + +function main() -> int { + for (;;) + ; + + return 0; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (secondary_block + (statement + (expression_statement))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))) diff --git a/test/corpus/positive/InitializerDeclaration1.txt b/test/corpus/positive/InitializerDeclaration1.txt new file mode 100644 index 0000000..683d82c --- /dev/null +++ b/test/corpus/positive/InitializerDeclaration1.txt @@ -0,0 +1,164 @@ +==================== +InitializerDeclaration1 +==================== + +int[10] x = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (array_specifier + (type_specifier + (int_type)) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (init_declarator + (identifier) + (initializer + (braced_initializer + (initializer_list + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))) diff --git a/test/corpus/positive/Limits1.txt b/test/corpus/positive/Limits1.txt new file mode 100644 index 0000000..b6820c4 --- /dev/null +++ b/test/corpus/positive/Limits1.txt @@ -0,0 +1,75 @@ +==================== +Limits1 +==================== + +I64 x = 9223372036854775807; +I64 y = -9223372036854775808; +U64 z = 18446744073709551615; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) diff --git a/test/corpus/positive/Program1.txt b/test/corpus/positive/Program1.txt new file mode 100644 index 0000000..a1c37fb --- /dev/null +++ b/test/corpus/positive/Program1.txt @@ -0,0 +1,648 @@ +==================== +Program1 +==================== + + +function y(int x, uint32_t z) -> int16_t { + mut int[3][13][3] x; + const int a = 3; + x = y(3, z(y, y)); + x(x(13, z) - (z / 3 + a + x), y(y, 13) / (13 / 3 - y / x)); +} + +// ---------- + +function x(int z, int x) -> int { + mut int x; + int b = 45; + return y(13 + (-b) + y, y * y - z / y); + y(((y - 13) / (3 - x)) / (13 * (13 + 13)), y(3 - 3, 3 * x)); +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature + (parameter_list + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (identifier)) + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (identifier))) + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (array_specifier + (type_specifier + (array_specifier + (type_specifier + (array_specifier + (type_specifier + (int_type)) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))))))))))))) + (comment) + (translation_entity + (function_definition + (identifier) + (function_signature + (parameter_list + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (identifier)) + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (identifier))) + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/Program2.txt b/test/corpus/positive/Program2.txt new file mode 100644 index 0000000..17684b5 --- /dev/null +++ b/test/corpus/positive/Program2.txt @@ -0,0 +1,906 @@ +==================== +Program2 +==================== + +function x(int y, int x) -> int { + const int y; + z = x(3 / 3, y) * y(3 + z, z); + while (y > 13 / x) { + int[13][3][3] x; + y = (z - 3) * 3; + y(z * y, 3 + 3); + } +} + +//---------- + +function y(int y, char z) -> int[3u] { + mut bool z; + if (y * ((z - 13) - z) >= ((z * 3) / (y - y)) * ((x - z) * x)) { + U64 y; + if (y + y <= 3 + x) { + I32 z; + return y; + return; + } + z(13 / x, z); + } else if (x * 3 > 0) { + const uint32_t a = y(y * x, 3); + return a; + } else { + z(13i32); + } + x = x(13 - y, 13 * 3) * ((z * 3 - 3) - (13 - 13) / z); +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature + (parameter_list + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (identifier)) + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (identifier))) + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))) + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (array_specifier + (type_specifier + (array_specifier + (type_specifier + (array_specifier + (type_specifier + (int_type)) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))))))))))))))) + (comment) + (translation_entity + (function_definition + (identifier) + (function_signature + (parameter_list + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (identifier)) + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (identifier))) + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (array_specifier + (type_specifier + (int_type)) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier))) + (init_declarator + (identifier)))) + (block_item + (statement + (primary_block + (selection_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))) + (geq_operator) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (primary_block + (selection_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (leq_operator) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))) + (block_item + (statement + (jump_statement))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))))))))))) + (selection_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (uint_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))) + (statement_block + (block_item_list + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (signed_integer_literal))))))))))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/Program3.txt b/test/corpus/positive/Program3.txt new file mode 100644 index 0000000..e9d05b9 --- /dev/null +++ b/test/corpus/positive/Program3.txt @@ -0,0 +1,788 @@ +==================== +Program3 +==================== + +mut uint[10u] array = {3u, 58u, 17u, 81u, 22u, 0u, 39u, 11u, 49u, 64u}; + +function bubble(uint n) -> int { + for (mut uint i = n - 1u; i > 0u; i--) { + for (mut uint j = 0u; j < i; j++) { + if (array[j] > array[j + 1u]) { + uint tmp = array[j + 1u]; + array[j + 1u] = array[j]; + array[j] = tmp; + } + } + } + + return 0; +} + +function print_array(uint n) { + for (mut uint i = 0u; i < n; i++) { + print((string)(array[i]) + ", "); + } + print("\n"); +} + +function main() -> int { + print_array(10u); + bubble(10u); + print_array(10u); + + return 0; +} + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (array_specifier + (type_specifier + (uint_type)) + (constant_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))) + (init_declarator + (identifier) + (initializer + (braced_initializer + (initializer_list + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))))))))) + (translation_entity + (function_definition + (identifier) + (function_signature + (parameter_list + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (identifier))) + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (uint_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (uint_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (selection_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))))))))))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))))))))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))) + (translation_entity + (function_definition + (identifier) + (function_signature + (parameter_list + (parameter_declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (uint_type)))) + (identifier)))) + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (uint_type)))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal))))))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (statement + (print_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (type_specifier_qualifier + (type_specifier)) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (string_literal))))))))))))))))))))))))) + (block_item + (statement + (print_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (string_literal)))))))))))))))))))) + (translation_entity + (function_definition + (identifier) + (function_signature + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)) + (argument_expression_list + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (unsigned_integer_literal)))))))))))))))))))))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))) diff --git a/test/corpus/positive/ReturnStatement1.txt b/test/corpus/positive/ReturnStatement1.txt new file mode 100644 index 0000000..7fbc206 --- /dev/null +++ b/test/corpus/positive/ReturnStatement1.txt @@ -0,0 +1,101 @@ +==================== +ReturnStatement1 +==================== + +function g() -> int { + mut int i; + const mut bool b; + return (11 - 3) / (c + 13); +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier) + (type_qualifier)) + (type_specifier))) + (init_declarator + (identifier)))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/String1.txt b/test/corpus/positive/String1.txt new file mode 100644 index 0000000..3e0ab1d --- /dev/null +++ b/test/corpus/positive/String1.txt @@ -0,0 +1,92 @@ +==================== +String1 +==================== + +string s1 = "this is a test\n"; +string s2 = "'a filepath'"; +string s3 = "this\0 is a test\n"; +string s4 = "\tthis\tis\v\a\'my\'test\n"; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (string_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (string_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (string_literal)))))))))))))))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier))) + (init_declarator + (identifier) + (initializer + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (string_literal))))))))))))))))) diff --git a/test/corpus/positive/Types1.txt b/test/corpus/positive/Types1.txt new file mode 100644 index 0000000..d062dff --- /dev/null +++ b/test/corpus/positive/Types1.txt @@ -0,0 +1,81 @@ +==================== +Types1 +==================== + +mut int x; +const int y; +const mut int z; +mut const int a; +const mut const int b; +const mut mut const uint c; + +-------------------- + +(source_file + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier) + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier) + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier) + (type_qualifier) + (type_qualifier)) + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (translation_entity + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier) + (type_qualifier) + (type_qualifier) + (type_qualifier)) + (type_specifier + (uint_type)))) + (init_declarator + (identifier))))) diff --git a/test/corpus/positive/WhileStatement1.txt b/test/corpus/positive/WhileStatement1.txt new file mode 100644 index 0000000..fa0a319 --- /dev/null +++ b/test/corpus/positive/WhileStatement1.txt @@ -0,0 +1,383 @@ +==================== +WhileStatement1 +==================== + +function i() { + I8 i; + while (a - 12 > (i + (c + 11)) - 11) { + int g; + mut bool d; + d = g / f - 3; + g = 12 + (d + e); + } + while (13 * i >= (h + 0) / c + i) + g++; + int f; + while (b - h <= g) { + int f; + int32_t e; + b = d; + a = a; + } +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature) + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))))))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_qualifier_list + (type_qualifier)) + (type_specifier))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))))))))) + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (geq_operator) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))) + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (expression_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))))))))))))))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))) + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier))))))) + (leq_operator) + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))) + (secondary_block + (statement + (primary_block + (statement_block + (block_item_list + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (declaration + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))) + (init_declarator + (identifier)))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))) + (block_item + (statement + (expression_statement + (expression + (assignment_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))) + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (identifier)))))))))))))))))))))))))))))) diff --git a/test/corpus/positive/WhileStatement2.txt b/test/corpus/positive/WhileStatement2.txt new file mode 100644 index 0000000..5bd4f84 --- /dev/null +++ b/test/corpus/positive/WhileStatement2.txt @@ -0,0 +1,62 @@ +==================== +WhileStatement2 +==================== + +function main() -> int { + while (true) { + } + + return 0; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (predefined_constant))))))))))))) + (secondary_block + (statement + (primary_block + (statement_block)))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal))))))))))))))))))))) diff --git a/test/corpus/positive/WhileStatement3.txt b/test/corpus/positive/WhileStatement3.txt new file mode 100644 index 0000000..b303839 --- /dev/null +++ b/test/corpus/positive/WhileStatement3.txt @@ -0,0 +1,61 @@ +==================== +WhileStatement3 +==================== + +function main() -> int { + while (true) + ; + + return 0; +} + +-------------------- + +(source_file + (translation_entity + (function_definition + (identifier) + (function_signature + (return_list + (declaration_specifier + (type_specifier_qualifier + (type_specifier + (int_type)))))) + (statement_block + (block_item_list + (block_item + (statement + (primary_block + (iteration_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (predefined_constant))))))))))))) + (secondary_block + (statement + (expression_statement))))))) + (block_item + (statement + (jump_statement + (expression + (assignment_expression + (logical_expression + (equality_expression + (relational_expression + (additive_expression + (multiplicative_expression + (cast_expression + (unary_expression + (postfix_expression + (base_expression + (constant + (integer_literal)))))))))))))))))))))