summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-08-22 15:12:15 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-08-22 15:12:15 +0200
commitdc7b8d2063dac867f2e87dbe764d2f3df2331e95 (patch)
treea1fbb118067bd285570082f171078a6699e22465 /cli
parent66455ad2d34c46650a798738c53bb550d250ab04 (diff)
Add support for long long int
Diffstat (limited to 'cli')
-rw-r--r--cli/parser.cxx120
1 files changed, 118 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;