diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-18 13:21:58 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-18 13:21:58 +0000 |
commit | eae17d816ea2aa8075d671635c45d3d6b7891e90 (patch) | |
tree | 9d7c24035bddb199a728b16cb3cf1c301e47ff92 /c_compiler | |
parent | f8d984811645f0af6859deff1bf53250317ca542 (diff) | |
download | Compiler-eae17d816ea2aa8075d671635c45d3d6b7891e90.tar.gz Compiler-eae17d816ea2aa8075d671635c45d3d6b7891e90.zip |
Working while loop
Diffstat (limited to 'c_compiler')
-rw-r--r-- | c_compiler/src/c_parser.y | 2 | ||||
-rw-r--r-- | c_compiler/test/in/while.c | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/c_compiler/src/c_parser.y b/c_compiler/src/c_parser.y index 721a6e3..8f70a90 100644 --- a/c_compiler/src/c_parser.y +++ b/c_compiler/src/c_parser.y @@ -212,7 +212,7 @@ JumpStatement: T_RETURN Expression T_SC { $$ = new JumpStatement($2); } ; IterationStatement: - T_WHILE T_LRB Expression T_RRB Statement { $$ = $5; } + T_WHILE T_LRB Expression T_RRB Statement { $$ = new WhileLoop($3, $5); } | T_DO Statement T_WHILE T_LRB Expression T_RRB T_SC { $$ = $2; } | T_FOR T_LRB Expression T_SC Expression T_SC Expression T_RRB Statement { $$ = $9; } ; diff --git a/c_compiler/test/in/while.c b/c_compiler/test/in/while.c new file mode 100644 index 0000000..00ad19d --- /dev/null +++ b/c_compiler/test/in/while.c @@ -0,0 +1,11 @@ +int main() +{ + int x = 0; + + while(x < 10) + { + x = x + 1; + } + + return x; +} |