From dc7b8d2063dac867f2e87dbe764d2f3df2331e95 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 22 Aug 2009 15:12:15 +0200 Subject: Add support for long long int --- cli/parser.cxx | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 2 deletions(-) (limited to 'cli/parser.cxx') 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; -- cgit v1.1