diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2009-08-22 15:12:15 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2009-08-22 15:12:15 +0200 |
commit | dc7b8d2063dac867f2e87dbe764d2f3df2331e95 (patch) | |
tree | a1fbb118067bd285570082f171078a6699e22465 | |
parent | 66455ad2d34c46650a798738c53bb550d250ab04 (diff) |
Add support for long long int
-rw-r--r-- | cli/parser.cxx | 120 | ||||
-rw-r--r-- | tests/parser/test-005.cli | 12 |
2 files changed, 130 insertions, 2 deletions
diff --git a/cli/parser.cxx b/cli/parser.cxx index e63a7b6..4e999c2 100644 --- a/cli/parser.cxx +++ b/cli/parser.cxx @@ -456,6 +456,18 @@ fundamental_type (Token& t) switch ((t = lexer_->next ()).keyword ()) { case Token::k_short: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_int: + { + t = lexer_->next (); + } + default: + break; + } + break; + } case Token::k_long: { switch ((t = lexer_->next ()).keyword ()) @@ -463,6 +475,20 @@ fundamental_type (Token& t) case Token::k_int: { t = lexer_->next (); + break; + } + case Token::k_long: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_int: + { + t = lexer_->next (); + } + default: + break; + } + break; } default: break; @@ -474,9 +500,22 @@ fundamental_type (Token& t) switch ((t = lexer_->next ()).keyword ()) { case Token::k_short: - case Token::k_long: { t = lexer_->next (); + break; + } + case Token::k_long: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_long: + { + t = lexer_->next (); + } + default: + break; + } + break; } default: break; @@ -514,6 +553,43 @@ fundamental_type (Token& t) } break; } + case Token::k_long: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_signed: + case Token::k_unsigned: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_int: + { + t = lexer_->next (); + } + default: + break; + } + break; + } + case Token::k_int: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_signed: + case Token::k_unsigned: + { + t = lexer_->next (); + } + default: + break; + } + break; + } + default: + break; + } + break; + } case Token::k_int: { switch ((t = lexer_->next ()).keyword ()) @@ -550,9 +626,21 @@ fundamental_type (Token& t) switch ((t = lexer_->next ()).keyword ()) { case Token::k_short: - case Token::k_long: { t = lexer_->next (); + break; + } + case Token::k_long: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_long: + { + t = lexer_->next (); + } + default: + break; + } } default: break; @@ -560,6 +648,19 @@ fundamental_type (Token& t) break; } case Token::k_short: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_signed: + case Token::k_unsigned: + { + t = lexer_->next (); + } + default: + break; + } + break; + } case Token::k_long: { switch ((t = lexer_->next ()).keyword ()) @@ -568,6 +669,21 @@ fundamental_type (Token& t) case Token::k_unsigned: { t = lexer_->next (); + break; + } + case Token::k_long: + { + switch ((t = lexer_->next ()).keyword ()) + { + case Token::k_signed: + case Token::k_unsigned: + { + t = lexer_->next (); + } + default: + break; + } + break; } default: break; diff --git a/tests/parser/test-005.cli b/tests/parser/test-005.cli index 9a43103..7798552 100644 --- a/tests/parser/test-005.cli +++ b/tests/parser/test-005.cli @@ -29,6 +29,18 @@ class c char signed -i18; unsigned char -i19; char unsigned -i20; + + long long -ll1; + long long int -ll2; + long long unsigned -ll3; + int long long -ll4; + unsigned long long -ll5; + long long int unsigned -ll6; + long long unsigned int -ll7; + unsigned long long int -ll8; + unsigned int long long -ll9; + int long long unsigned -ll10; + int unsigned long long -ll11; double -d1; long double -d2; |