Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2009-02-04 16:58:18 -0500
committerMike Kucera2009-02-04 16:58:18 -0500
commitc9b3182198be50b2aa80d612d16ccc35402adb54 (patch)
tree2218a93bf91b4208f87c138a06067d3f9a8b5ad1 /lrparser/org.eclipse.cdt.core.lrparser
parentb1f0b681d3be562f5ff5a35e2c7de71feea0de60 (diff)
downloadorg.eclipse.cdt-c9b3182198be50b2aa80d612d16ccc35402adb54.tar.gz
org.eclipse.cdt-c9b3182198be50b2aa80d612d16ccc35402adb54.tar.xz
org.eclipse.cdt-c9b3182198be50b2aa80d612d16ccc35402adb54.zip
cleaning up the architecture of the LR parsers
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g (renamed from lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g)60
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g66
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java87
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java5
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java37
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java19
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java40
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java22
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java81
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java10
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java (renamed from lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParserActionTokenProvider.java)6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java28
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java17
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java90
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java9
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java17
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java21
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java21
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java21
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java682
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java1085
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java678
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java1078
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java697
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java1610
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java678
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java1080
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java32
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java2863
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java32
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java2834
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java32
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java2972
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java51
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java1211
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java32
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java2886
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java32
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java2997
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java45
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java26
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java77
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java4262
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java12
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java62
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java4336
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java42
70 files changed, 16731 insertions, 16503 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g
index ba2ae8d25b..4e999b0da8 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
-- All we need to do is import the main parser and redefine the start symbol.
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
index 7948a0aea5..229155762b 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
C99Grammar.g
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g
index 38195cc4a0..505d9ed0b9 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g
@@ -11,19 +11,15 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=FixedBtParserTemplateD.g
+%options template=LRParserTemplate.g
-- This file is needed because LPG won't allow redefinition of the
--- start symbol, so C99Grammar.g cannot define a start symbol.
+-- start symbol, so C99Grammar.g cannot define the start symbol.
$Import
C99Grammar.g
$End
-$Define
- $ast_class /. IASTTranslationUnit ./
-$End
-
$Start
translation_unit
$End \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
index 14084dc832..d9e515c576 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g
index b9ab4957b7..ef93dac3d5 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
-- All we need to do is import the main parser and redefine the start symbol.
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g
index ea1a9d944d..f5438e7751 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
CPPGrammar.g
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g
index 6e0bcc4cd3..ad093c6355 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
CPPGrammar.g
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g
index 8f4d80864d..9d9fb78abe 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRParserTemplate.g
-- This file is needed because LPG won't allow redefinition of the
@@ -21,10 +21,6 @@ $Import
CPPGrammar.g
$End
-$Define
- $ast_class /. IASTTranslationUnit ./
-$End
-
$Start
translation_unit
$End \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
index 124f023bb3..44f875fcea 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g
index dfacf88d8e..86f452af64 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
-- This parser is a bit of a hack.
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
index 1ae760dd6d..ac9b15cff2 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.gcc
-%options template=FixedBtParserTemplateD.g
+%options template=LRParserTemplate.g
-- This file is needed because LPG won't allow redefinition of the
@@ -21,10 +21,6 @@ $Import
GCCGrammar.g
$End
-$Define
- $ast_class /. IASTTranslationUnit ./
-$End
-
$Start
translation_unit
$End \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g
index a3c6000fed..389a215e6c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.gcc
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
index f2dd3ebf20..4ee7b043a0 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRParserTemplate.g
-- This file is needed because LPG won't allow redefinition of the
@@ -21,10 +21,6 @@ $Import
GPPGrammar.g
$End
-$Define
- $ast_class /. IASTTranslationUnit ./
-$End
-
$Start
translation_unit
$End \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g
index 68bb20848a..e8a8833d66 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g
index ea7a5bf27e..f5be287b82 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g
@@ -10,7 +10,7 @@
----------------------------------------------------------------------------------
--- This template is a modified version of BtParserTemplateD.g.
+-- This template is a modified version of BtParserTemplateD.g. for use with the LR parsers.
-- This template contains a fix for an LPG bug:
-- http://sourceforge.net/tracker/index.php?func=detail&aid=1732851&group_id=155963&atid=797879
@@ -141,7 +141,9 @@ $End
$Headers
/.
- public class $action_type extends PrsStream implements RuleAction$additional_interfaces
+ public class $action_type extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser<$ast_class>
+ $additional_interfaces
{
private static ParseTable prs = new $prs_type();
private FixedBacktrackingParser btParser;
@@ -312,10 +314,10 @@ $End
$Define
-- These macros allow the template and header code to be customized by an extending parser.
- $ast_class /. IASTNode ./ -- override with more specific node type
+ $ast_class /. IASTTranslationUnit ./ -- override in secondary parsers
$extra_interfaces /. ./ -- can override this macro to provide additional interfaces
- $additional_interfaces /. , IParserActionTokenProvider, IParser<$ast_class> $extra_interfaces ./
+ $additional_interfaces /. $extra_interfaces ./
$build_action_class /. ./ -- name of the class that has the AST building callbacks
$node_factory_create_expression /. ./ -- expression that will create the INodeFactory
@@ -332,10 +334,16 @@ $Globals
/.
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+ import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
- import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+ import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
+ import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+ import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+ import org.eclipse.cdt.core.parser.IScanner;
+ import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+ import org.eclipse.cdt.core.index.IIndex;
./
$End
@@ -344,7 +352,11 @@ $Headers
private $build_action_class action;
private IASTCompletionNode compNode;
- public $action_type() { // constructor
+
+ public $action_type(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set<IParser.Options> options) {
+ initActions(options);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
private void initActions(Set<IParser.Options> options) {
@@ -363,10 +375,9 @@ $Headers
}
- public $ast_class parse(Set<IParser.Options> options) {
+ public $ast_class parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(options);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
@@ -398,37 +409,4 @@ $Headers
./
$End
-$Globals
-/.
- import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
- import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-./
-$End
-$Headers
-/.
-
- private ITokenMap tokenMap = null;
-
- public void setTokens(List<IToken> tokens) {
- resetTokenStream();
- addToken(new Token(null, 0, 0, 0)); // dummy token
- for(IToken token : tokens) {
- token.setKind(tokenMap.mapKind(token.getKind()));
- addToken(token);
- }
- addToken(new Token(null, 0, 0, $sym_type.TK_EOF_TOKEN));
- }
-
- public $action_type(IParserActionTokenProvider parser) { // constructor
- tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
- }
-
-
-./
-$End
-
-
---
--- E N D O F T E M P L A T E
---
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g
new file mode 100644
index 0000000000..b449829d1f
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g
@@ -0,0 +1,66 @@
+----------------------------------------------------------------------------------
+-- Copyright (c) 2006, 2009 IBM Corporation and others.
+-- All rights reserved. This program and the accompanying materials
+-- are made available under the terms of the Eclipse Public License v1.0
+-- which accompanies this distribution, and is available at
+-- http://www.eclipse.org/legal/epl_v10.html
+--
+-- Contributors:
+-- IBM Corporation - initial API and implementation
+----------------------------------------------------------------------------------
+
+
+%Options programming_language=java,margin=4,backtrack
+%Options table,error_maps,scopes
+%options prefix=TK_,
+%options action=("*.java", "/.", "./")
+%options ParseTable=lpg.lpgjavaruntime.ParseTable
+
+
+-- additional code needed by secondary parsers
+
+-- path is relative to the grammar file that uses the template
+$Include
+../template/LRParserTemplate.g
+$End
+
+
+
+
+$Define
+
+ $additional_interfaces /. , ISecondaryParser<$ast_class> $extra_interfaces ./
+
+$End
+
+$Globals
+/.
+ import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+ import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+ import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
+./
+$End
+
+$Headers
+/.
+
+ private ITokenMap tokenMap = null;
+
+ public void setTokens(List<IToken> tokens) {
+ resetTokenStream();
+ addToken(new Token(null, 0, 0, 0)); // dummy token
+ for(IToken token : tokens) {
+ token.setKind(tokenMap.mapKind(token.getKind()));
+ addToken(token);
+ }
+ addToken(new Token(null, 0, 0, $sym_type.TK_EOF_TOKEN));
+ }
+
+ public $action_type(ITokenStream stream, Set<IParser.Options> options) { // constructor for creating secondary parser
+ initActions(options);
+ tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
+ }
+
+./
+$End
+
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java
index d893671abe..8076a5afae 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java
@@ -35,7 +35,7 @@ import org.eclipse.cdt.core.dom.ast.IParameter;
import org.eclipse.cdt.core.dom.ast.IPointerType;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.parser.util.DebugUtil;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym;
@@ -87,7 +87,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
// provides limited access to the token stream
- private final IParserActionTokenProvider parser;
+ private final ITokenStream parser;
// The symbolTable currently in use
private C99SymbolTable symbolTable = C99SymbolTable.EMPTY_TABLE;
@@ -138,7 +138,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
}
- public C99ResolveParserAction(IParserActionTokenProvider parser) {
+ public C99ResolveParserAction(ITokenStream parser) {
this.parser = parser;
bindingScopeStack.add(new C99Scope(EScopeKind.eGlobal)); // the global scope
System.out.println();
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java
index 7667e1d80d..9930e3b038 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java
@@ -14,7 +14,7 @@ import java.util.LinkedList;
import lpg.lpgjavaruntime.IToken;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.parser.util.DebugUtil;
import org.eclipse.cdt.internal.core.dom.lrparser.symboltable.TypedefSymbolTable;
/**
@@ -32,7 +32,7 @@ public class C99TypedefTrackerParserAction {
// provides limited access to the token stream
- private final IParserActionTokenProvider parser;
+ private final ITokenStream parser;
// The symbolTable currently in use
private TypedefSymbolTable symbolTable = TypedefSymbolTable.EMPTY_TABLE;
@@ -64,7 +64,7 @@ public class C99TypedefTrackerParserAction {
}
- public C99TypedefTrackerParserAction(IParserActionTokenProvider parser) {
+ public C99TypedefTrackerParserAction(ITokenStream parser) {
this.parser = parser;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
index 5efe8d44d1..68c1b53338 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
@@ -15,22 +15,19 @@ import java.util.HashSet;
import java.util.Set;
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
-import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage;
import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage;
import org.eclipse.cdt.core.dom.parser.CLanguageKeywords;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.AbstractLanguage;
import org.eclipse.cdt.core.model.ICLanguageKeywords;
+import org.eclipse.cdt.core.model.IContributedModelBuilder;
import org.eclipse.cdt.core.model.ILanguage;
+import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.IParserLogService;
import org.eclipse.cdt.core.parser.IScanner;
@@ -38,9 +35,7 @@ import org.eclipse.cdt.core.parser.IScannerInfo;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.core.parser.util.ASTPrinter;
import org.eclipse.cdt.core.parser.util.DebugUtil;
-import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit;
import org.eclipse.cdt.internal.core.parser.scanner.CPreprocessor;
import org.eclipse.cdt.internal.core.pdom.dom.IPDOMLinkageFactory;
import org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory;
@@ -68,15 +63,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage {
* Can be overridden in subclasses to provide a different parser
* for a language extension.
*/
- protected abstract IParser<IASTTranslationUnit> getParser();
-
-
- /**
- * A token map is used to map tokens from the DOM preprocessor
- * to the tokens defined by an LPG parser.
- */
- protected abstract IDOMTokenMap getTokenMap();
-
+ protected abstract IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Set<IParser.Options> options);
/**
* Returns the ParserLanguage value that is to be used when creating
@@ -92,11 +79,6 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage {
protected abstract IScannerExtensionConfiguration getScannerExtensionConfiguration();
- /**
- * Returns a bindings provider that will provide additional bindings based on the language extension.
- */
- protected abstract IBuiltinBindingsProvider getBuiltinBindingsProvider();
-
@SuppressWarnings("nls")
@Override
@@ -124,24 +106,21 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage {
IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator);
preprocessor.setComputeImageLocations((options & ILanguage.OPTION_NO_IMAGE_LOCATIONS) == 0);
- // The translation unit has to be created here so that the preprocessor
- // can fill in the preprocessor AST nodes.
- //IASTTranslationUnit tu = getASTTranslationUnit(index, preprocessor);
- IParser<IASTTranslationUnit> parser = getParser();
- CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap());
+
+ //parser.setScanner(preprocessor, getTokenMap());
+ //CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap());
Set<IParser.Options> parserOptions = new HashSet<IParser.Options>();
//if((options & OPTION_SKIP_FUNCTION_BODIES) != 0)
// parserOptions.add(IParser.Options.OPTION_SKIP_FUNCTION_BODIES);
if((options & OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS) != 0)
parserOptions.add(IParser.Options.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS);
-
if(!parserOptions.isEmpty())
parserOptions = EnumSet.copyOf(parserOptions);
- IASTTranslationUnit tu = parser.parse(parserOptions);
+ IParser<IASTTranslationUnit> parser = getParser(preprocessor, index, parserOptions);
+ IASTTranslationUnit tu = parser.parse();
tu.setIsHeaderUnit((options & OPTION_IS_SOURCE_UNIT) == 0); // the TU is marked as either a source file or a header file
- setUpTranslationUnit(tu, preprocessor, index);
if(DEBUG_PRINT_AST) {
System.out.println("Base Extensible Language AST:");
@@ -152,43 +131,6 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage {
}
-
- private void setUpTranslationUnit(IASTTranslationUnit tu, IScanner preprocessor, IIndex index) throws CoreException {
- tu.setIndex(index);
-
- // add built-in names to the scope
- IBuiltinBindingsProvider builtinBindingsProvider = getBuiltinBindingsProvider();
- if (builtinBindingsProvider != null) {
- IScope tuScope = tu.getScope();
- IBinding[] bindings = builtinBindingsProvider.getBuiltinBindings(tuScope);
- try {
- for (IBinding binding : bindings) {
- ASTInternal.addBinding(tuScope, binding);
- }
- } catch (DOMException e) {
- throw new CoreException(LRParserPlugin.createStatus(e));
- }
- }
-
- if(tu instanceof ASTTranslationUnit) {
- ((ASTTranslationUnit)tu).setLocationResolver(preprocessor.getLocationResolver());
- }
- for(IASTNode node : tu.getAllPreprocessorStatements()) {
- node.setParent(tu);
- }
- for(IASTNode node : tu.getComments()) {
- node.setParent(tu);
- }
- for(IASTNode node : tu.getMacroDefinitions()) {
- node.setParent(tu);
- }
- for(IASTNode node : tu.getMacroExpansions()) {
- node.setParent(tu);
- }
- }
-
-
-
public IASTTranslationUnit getASTTranslationUnit(CodeReader reader,
IScannerInfo scanInfo, ICodeReaderFactory fileCreator,
IIndex index, IParserLogService log) throws CoreException {
@@ -220,14 +162,9 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage {
IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator);
preprocessor.setContentAssistMode(offset);
- IParser<IASTTranslationUnit> parser = getParser();
- CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap());
-
- // the parser will fill in the rest of the AST
Set<IParser.Options> parserOptions = EnumSet.of(IParser.Options.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS);
- IASTTranslationUnit tu = parser.parse(parserOptions);
- setUpTranslationUnit(tu, preprocessor, index);
-
+ IParser<IASTTranslationUnit> parser = getParser(preprocessor, index, parserOptions);
+ parser.parse();
IASTCompletionNode completionNode = parser.getCompletionNode();
if(DEBUG_PRINT_AST) {
@@ -283,4 +220,8 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage {
return super.getAdapter(adapter);
}
+ public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) {
+ return null;
+ }
+
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
index a9d3d5b15e..ea4011dfab 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
@@ -21,8 +21,10 @@ import org.eclipse.cdt.core.parser.OffsetLimitReachedException;
* Adapts the CPreprocessor from the CDT core for use with LPG based parsers.
*
* @author Mike Kucera
+ * @noreference
+ * TODO move into an internal package
*/
-class CPreprocessorAdapter {
+public class CPreprocessorAdapter {
/**
* During content assist the preprocessor may return a completion token
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
index 3b54e34e4f..7e3bf0ed6a 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
@@ -11,7 +11,6 @@
package org.eclipse.cdt.core.dom.lrparser;
import java.util.EnumSet;
-import java.util.Set;
import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTNode;
@@ -23,7 +22,7 @@ import org.eclipse.cdt.core.model.ILanguage;
*
* @author Mike Kucera
*/
-public interface IParser<N extends IASTNode> extends ITokenCollector {
+public interface IParser<N extends IASTNode> {
/**
* Options used by implementations of IParser. Some of the options
@@ -69,7 +68,7 @@ public interface IParser<N extends IASTNode> extends ITokenCollector {
* @throws NullPointerException if either parameter is null
* @see EnumSet
*/
- public N parse(Set<Options> options);
+ public N parse();
/**
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java
new file mode 100644
index 0000000000..866154c746
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.lrparser;
+
+import java.util.List;
+
+import lpg.lpgjavaruntime.IToken;
+
+import org.eclipse.cdt.core.dom.ast.IASTNode;
+
+public interface ISecondaryParser<N extends IASTNode> extends IParser<N> {
+
+
+ /**
+ * Set the list of tokens that will be parsed.
+ *
+ * The given list does not need to contain dummy and EOF tokens,
+ * these will be added automatically.
+ *
+ * This method causes any tokens already contained in the parser
+ * to be removed.
+ *
+ * This method is mainly used by secondary parsers that are called
+ * from a main parser.
+ *
+ * @throws NullPointerException if tokens is null
+ */
+ public void setTokens(List<IToken> tokens);
+}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java
index d8286687da..6783a61b57 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java
@@ -10,8 +10,6 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser;
-import java.util.List;
-
import lpg.lpgjavaruntime.IToken;
/**
@@ -33,20 +31,5 @@ public interface ITokenCollector {
* @throws NullPointerException if token is null
*/
public void addToken(IToken token);
-
- /**
- * Set the list of tokens that will be parsed.
- *
- * The given list does not need to contain dummy and EOF tokens,
- * these will be added automatically.
- *
- * This method causes any tokens already contained in the parser
- * to be removed.
- *
- * This method is mainly used by secondary parsers that are called
- * from a main parser.
- *
- * @throws NullPointerException if tokens is null
- */
- public void setTokens(List<IToken> tokens);
+
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java
index 69b6036ca6..3a58250575 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java
@@ -21,7 +21,6 @@ public class LRParserPlugin extends Plugin {
public static final String PLUGIN_ID = "org.eclipse.cdt.core.lrparser"; //$NON-NLS-1$
- @SuppressWarnings("unused")
private static LRParserPlugin plugin;
@@ -43,17 +42,52 @@ public class LRParserPlugin extends Plugin {
}
/**
- * @noreference This method is not intended to be referenced by clients.
+ * @noreference
*/
public static IStatus createStatus(String msg, Throwable e) {
return new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, msg, e);
}
/**
- * @noreference This method is not intended to be referenced by clients.
+ * @noreference
*/
public static IStatus createStatus(Throwable e) {
return createStatus(e.getMessage(), e);
}
+ /**
+ * @noreference
+ */
+ public static void log(IStatus status) {
+ plugin.getLog().log(status);
+ }
+
+ /**
+ * @noreference
+ */
+ public static void logError(Throwable exception, String message) {
+ log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, exception));
+ }
+
+ /**
+ * @noreference
+ */
+ public static void logError(Throwable exception) {
+ logError(exception, exception.getMessage());
+ }
+
+ /**
+ * @noreference
+ */
+ public static void logError(String message) {
+ log(new Status(IStatus.ERROR, PLUGIN_ID, message));
+ }
+
+ /**
+ * @noreference
+ */
+ public static void logInfo(String message) {
+ log(new Status(IStatus.INFO, PLUGIN_ID, message));
+ }
+
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java
index 973e5de5cd..6e53c83a40 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java
@@ -20,7 +20,7 @@ import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
@SuppressWarnings("restriction")
@@ -41,7 +41,7 @@ public abstract class AbstractParserAction {
/** Provides an interface to the token stream */
- protected final IParserActionTokenProvider parser;
+ protected final ITokenStream stream;
/** Stack that holds the intermediate nodes as the AST is being built */
protected final ScopedStack<Object> astStack;
@@ -70,21 +70,21 @@ public abstract class AbstractParserAction {
* @param tu Root node of the AST, its list of declarations should be empty.
* @throws NullPointerException if any of the parameters are null
*/
- public AbstractParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack) {
+ public AbstractParserAction(ITokenStream parser, ScopedStack<Object> astStack) {
if(parser == null)
throw new NullPointerException("parser is null"); //$NON-NLS-1$
if(astStack == null)
throw new NullPointerException("astStack is null"); //$NON-NLS-1$
- this.parser = parser;
+ this.stream = parser;
this.astStack = astStack;
}
protected void setOffsetAndLength(IASTNode node) {
- int ruleOffset = parser.getLeftIToken().getStartOffset();
- int ruleLength = parser.getRightIToken().getEndOffset() - ruleOffset;
+ int ruleOffset = stream.getLeftIToken().getStartOffset();
+ int ruleLength = stream.getRightIToken().getEndOffset() - ruleOffset;
((ASTNode)node).setOffsetAndLength(ruleOffset, ruleLength < 0 ? 0 : ruleLength);
}
@@ -143,15 +143,15 @@ public abstract class AbstractParserAction {
* Runs the given parser on the given token list.
*
*/
- protected <N extends IASTNode> N runSecondaryParser(IParser<N> secondaryParser) {
- return runSecondaryParser(secondaryParser, parser.getRuleTokens());
+ protected <N extends IASTNode> N runSecondaryParser(ISecondaryParser<N> secondaryParser) {
+ return runSecondaryParser(secondaryParser, stream.getRuleTokens());
}
/**
* Runs the given parser on the tokens that make up the current rule.
*/
- protected <N extends IASTNode> N runSecondaryParser(IParser<N> secondaryParser, List<IToken> tokens) {
+ protected <N extends IASTNode> N runSecondaryParser(ISecondaryParser<N> secondaryParser, List<IToken> tokens) {
// the secondary parser will alter the token kinds, which will need to be undone
int[] savedKinds = new int[tokens.size()];
@@ -160,7 +160,7 @@ public abstract class AbstractParserAction {
savedKinds[i++] = token.getKind();
secondaryParser.setTokens(tokens);
- N result = secondaryParser.parse(options);
+ N result = secondaryParser.parse();
IASTCompletionNode compNode = secondaryParser.getCompletionNode();
if(compNode != null) {
@@ -227,6 +227,6 @@ public abstract class AbstractParserAction {
* Gets the current token and places it on the stack for later consumption.
*/
public void consumeToken() {
- astStack.push(parser.getRightIToken());
+ astStack.push(stream.getRightIToken());
}
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
index 6e660ed07a..f9fc228a45 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
@@ -16,6 +16,7 @@ import java.util.List;
import lpg.lpgjavaruntime.IToken;
+import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
@@ -62,13 +63,20 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
+import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.INodeFactory;
+import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
+import org.eclipse.cdt.core.dom.lrparser.LRParserPlugin;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.parser.IProblem;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.ASTQueries;
import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit;
@@ -98,6 +106,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
protected abstract boolean isIdentifierToken(IToken token);
+ protected IASTTranslationUnit tu = null;
/**
@@ -105,7 +114,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
* @param tu Root node of the AST, its list of declarations should be empty.
* @throws NullPointerException if any of the parameters are null
*/
- public BuildASTParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack, INodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
+ public BuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, INodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
super(parser, astStack);
if(nodeFactory == null)
@@ -116,20 +125,46 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
this.nodeFactory = nodeFactory;
this.parserFactory = parserFactory;
}
+
+
+ public void initializeTranslationUnit(IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index) {
+ tu = nodeFactory.newTranslationUnit();
+ tu.setIndex(index);
+
+ // add built-in names to the scope
+ if (builtinBindingsProvider != null) {
+ IScope tuScope = tu.getScope();
+ IBinding[] bindings = builtinBindingsProvider.getBuiltinBindings(tuScope);
+ try {
+ for (IBinding binding : bindings) {
+ ASTInternal.addBinding(tuScope, binding);
+ }
+ } catch (DOMException e) {
+ LRParserPlugin.logError(e);
+ }
+ }
+
+ if(tu instanceof ASTTranslationUnit) {
+ ((ASTTranslationUnit)tu).setLocationResolver(scanner.getLocationResolver());
+ }
+ }
public void consumeTranslationUnit() {
- // can't close the outermost scope
- // the outermost scope may be empty if there are no tokens in the file
- IASTTranslationUnit tu = nodeFactory.newTranslationUnit();
+ if(tu == null)
+ tu = nodeFactory.newTranslationUnit();
+ // can't close the outermost scope
for(Object o : astStack.topScope()) {
tu.addDeclaration((IASTDeclaration)o);
}
+ while(!astStack.isEmpty()) {
+ astStack.pop();
+ }
// this is the same way that the DOM parser computes the length
IASTDeclaration[] declarations = tu.getDeclarations();
- if (declarations.length != 0) {
+ if(declarations.length != 0) {
IASTNode d = declarations[declarations.length-1];
ParserUtil.setOffsetAndLength(tu, 0, offset(d) + length(d));
}
@@ -146,7 +181,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
*
* @see AbstractGNUSourceCodeParser#resolveAmbiguities()
*/
- private void resolveAmbiguityNodes(IASTTranslationUnit tu) {
+ private static void resolveAmbiguityNodes(IASTTranslationUnit tu) {
if (tu instanceof ASTTranslationUnit) {
((ASTTranslationUnit)tu).resolveAmbiguities();
}
@@ -156,7 +191,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
* Consumes a single identifier token.
*/
public void consumeIdentifierName() {
- astStack.push(createName(parser.getRightIToken()));
+ astStack.push(createName(stream.getRightIToken()));
}
@@ -173,10 +208,10 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
// attempt to also parse the tokens as an expression
IASTExpressionStatement expressionStatement = null;
if(decl instanceof IASTSimpleDeclaration) {
- List<IToken> expressionTokens = parser.getRuleTokens();
+ List<IToken> expressionTokens = stream.getRuleTokens();
expressionTokens = expressionTokens.subList(0, expressionTokens.size()-1); // remove the semicolon at the end
- IParser<IASTExpression> expressionParser = parserFactory.getExpressionParser(parser);
+ ISecondaryParser<IASTExpression> expressionParser = parserFactory.getExpressionParser(stream, options);
IASTExpression expr = runSecondaryParser(expressionParser, expressionTokens);
if(expr != null) { // the parse may fail
@@ -186,7 +221,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
}
- List<IToken> tokens = parser.getRuleTokens();
+ List<IToken> tokens = stream.getRuleTokens();
IASTNode result;
if(expressionStatement == null)
@@ -253,7 +288,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
* @see ICPPASTLiteralExpression
*/
public void consumeExpressionLiteral(int kind) {
- IToken token = parser.getRightIToken();
+ IToken token = stream.getRightIToken();
String rep = token.toString();
// Strip the quotes from string literals, this is just to be consistent
@@ -280,7 +315,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
public void consumeExpressionID() {
- IASTName name = createName(parser.getLeftIToken());
+ IASTName name = createName(stream.getLeftIToken());
IASTIdExpression expr = nodeFactory.newIdExpression(name);
setOffsetAndLength(expr);
astStack.push(expr);
@@ -353,7 +388,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
IASTExpression alternateExpr = null;
if(operator == IASTCastExpression.op_cast) { // don't reparse for dynamic_cast etc as those are not ambiguous
// try parsing as non-cast to resolve ambiguities
- IParser<IASTExpression> secondaryParser = parserFactory.getNoCastExpressionParser(parser);
+ ISecondaryParser<IASTExpression> secondaryParser = parserFactory.getNoCastExpressionParser(stream, options);
alternateExpr = runSecondaryParser(secondaryParser);
}
@@ -393,7 +428,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
setOffsetAndLength(expr);
// try parsing as an expression to resolve ambiguities
- IParser<IASTExpression> secondaryParser = parserFactory.getSizeofExpressionParser(parser);
+ ISecondaryParser<IASTExpression> secondaryParser = parserFactory.getSizeofExpressionParser(stream, options);
IASTExpression alternateExpr = runSecondaryParser(secondaryParser);
if(alternateExpr == null)
@@ -439,7 +474,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
*/
public void consumeStatementLabeled() {
IASTStatement body = (IASTStatement) astStack.pop();
- IASTName label = createName(parser.getLeftIToken());
+ IASTName label = createName(stream.getLeftIToken());
IASTLabelStatement stat = nodeFactory.newLabelStatement(label, body);
setOffsetAndLength(stat);
@@ -474,7 +509,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
IASTStatement body = (IASTStatement) astStack.pop();
IASTDefaultStatement stat = nodeFactory.newDefaultStatement();
- List<IToken> tokens = parser.getRuleTokens();
+ List<IToken> tokens = stream.getRuleTokens();
IToken defaultToken = tokens.get(0);
IToken colonToken = tokens.get(1);
ParserUtil.setOffsetAndLength(stat, offset(defaultToken), offset(colonToken) - offset(defaultToken) + 1);
@@ -548,7 +583,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
* jump_statement ::= goto goto_identifier ';'
*/
public void consumeStatementGoto() {
- IASTName name = createName(parser.getRuleTokens().get(1));
+ IASTName name = createName(stream.getRuleTokens().get(1));
IASTGotoStatement gotoStat = nodeFactory.newGotoStatement(name);
setOffsetAndLength(gotoStat);
astStack.push(gotoStat);
@@ -599,7 +634,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
declarator = (IASTDeclarator) astStack.pop();
else {
declarator = nodeFactory.newDeclarator(nodeFactory.newName());
- ParserUtil.setOffsetAndLength(declarator, parser.getRightIToken().getEndOffset(), 0);
+ ParserUtil.setOffsetAndLength(declarator, stream.getRightIToken().getEndOffset(), 0);
}
IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop();
@@ -664,7 +699,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
* ::= 'asm' '(' 'stringlit' ')' ';'
*/
public void consumeDeclarationASM() {
- String s = parser.getRuleTokens().get(2).toString();
+ String s = stream.getRuleTokens().get(2).toString();
IASTASMDeclaration asm = nodeFactory.newASMDeclaration(s);
setOffsetAndLength(asm);
@@ -691,7 +726,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
*/
public void consumeParameterDeclarationWithoutDeclarator() {
// offsets need to be calculated differently in this case
- final int endOffset = parser.getRightIToken().getEndOffset();
+ final int endOffset = stream.getRightIToken().getEndOffset();
IASTName name = nodeFactory.newName();
ParserUtil.setOffsetAndLength(name, endOffset, 0);
@@ -911,7 +946,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
* | 'enum' enum_identifier '{' <openscope> enumerator_list_opt '}'
*/
public void consumeTypeSpecifierEnumeration(boolean hasIdent) {
- IASTName name = (hasIdent) ? createName(parser.getRuleTokens().get(1)) : nodeFactory.newName();
+ IASTName name = (hasIdent) ? createName(stream.getRuleTokens().get(1)) : nodeFactory.newName();
IASTEnumerationSpecifier enumSpec = nodeFactory.newEnumerationSpecifier(name);
@@ -928,7 +963,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
* | enum_identifier '=' constant_expression
*/
public void consumeEnumerator(boolean hasInitializer) {
- IASTName name = createName(parser.getLeftIToken());
+ IASTName name = createName(stream.getLeftIToken());
IASTExpression value = null;
if(hasInitializer)
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java
index b0ed1bc947..066ff1f90c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java
@@ -10,9 +10,11 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
/**
@@ -28,20 +30,20 @@ public interface ISecondaryParserFactory {
/**
* Get the parser that will recognize expressions.
*/
- IParser<IASTExpression> getExpressionParser(IParserActionTokenProvider parser);
+ ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Set<IParser.Options> options);
/**
* Expression parser that does not recognize cast expressions,
* used to disambiguate casts.
*/
- IParser<IASTExpression> getNoCastExpressionParser(IParserActionTokenProvider parser);
+ ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options);
/**
* Expression parser that treats all sizeof and typeid expressions
* as unary expressions.
*/
- IParser<IASTExpression> getSizeofExpressionParser(IParserActionTokenProvider parser);
+ ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParserActionTokenProvider.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java
index 5ef0f12631..9012e63c9a 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParserActionTokenProvider.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,7 +8,7 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
+package org.eclipse.cdt.core.dom.lrparser.action;
import java.util.List;
@@ -28,7 +28,7 @@ import lpg.lpgjavaruntime.IToken;
*
* @author Mike Kucera
*/
-public interface IParserActionTokenProvider {
+public interface ITokenStream {
/**
* Returns the tokens that were parsed to recognized
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
index 45457c831c..c85bb2e357 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
@@ -61,8 +61,8 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTTypeIdInitializerExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
import org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil;
@@ -94,7 +94,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
* @param orderedTerminalSymbols When an instance of this class is created for a parser
* that parsers token kinds will be mapped back to the base C99 parser's token kinds.
*/
- public C99BuildASTParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack, ICNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
+ public C99BuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, ICNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
super(parser, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
@@ -135,7 +135,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
* postfix_expression ::= postfix_expression '->' ident
*/
public void consumeExpressionFieldReference(boolean isPointerDereference) {
- IASTName name = createName(parser.getRightIToken());
+ IASTName name = createName(stream.getRightIToken());
IASTExpression owner = (IASTExpression) astStack.pop();
IASTFieldReference expr = nodeFactory.newFieldReference(name, owner);
expr.setIsPointerDereference(isPointerDereference);
@@ -289,7 +289,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
IASTName[] names = astStack.topScope().toArray(new IASTName[0]);
declarator.setParameterNames(names);
astStack.closeScope();
- int endOffset = endOffset(parser.getRightIToken());
+ int endOffset = endOffset(stream.getRightIToken());
addFunctionModifier(declarator, endOffset);
}
@@ -300,7 +300,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
* | identifier_list ',' 'identifier'
*/
public void consumeIdentifierKnR() {
- IASTName name = createName(parser.getRightIToken());
+ IASTName name = createName(stream.getRightIToken());
astStack.push(name);
}
@@ -313,7 +313,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
*/
public void consumePointer() {
IASTPointer pointer = nodeFactory.newPointer();
- IToken star = parser.getRightIToken();
+ IToken star = stream.getRightIToken();
ParserUtil.setOffsetAndLength(pointer, star);
astStack.push(pointer);
}
@@ -362,7 +362,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
}
if(hasDeclarator) {
- addFunctionModifier(declarator, endOffset(parser.getRightIToken()));
+ addFunctionModifier(declarator, endOffset(stream.getRightIToken()));
}
else {
setOffsetAndLength(declarator);
@@ -402,7 +402,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
* designator ::= '.' 'identifier'
*/
public void consumeDesignatorField() {
- IASTName name = createName(parser.getRightIToken());
+ IASTName name = createName(stream.getRightIToken());
ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name);
setOffsetAndLength(designator);
astStack.push(designator);
@@ -476,7 +476,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop();
- List<IToken> ruleTokens = parser.getRuleTokens();
+ List<IToken> ruleTokens = stream.getRuleTokens();
if(ruleTokens.size() == 1 && baseKind(ruleTokens.get(0)) == TK_EndOfCompletion)
return; // do not generate nodes for extra EOC tokens
@@ -498,7 +498,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
*/
public void consumeDeclarationEmpty() {
// Don't generate declaration nodes for extra EOC tokens
- if(baseKind(parser.getLeftIToken()) == C99Parsersym.TK_EndOfCompletion)
+ if(baseKind(stream.getLeftIToken()) == C99Parsersym.TK_EndOfCompletion)
return;
IASTDeclSpecifier declSpecifier = nodeFactory.newSimpleDeclSpecifier();
@@ -535,12 +535,12 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
public void consumeTypeSpecifierComposite(boolean hasName) {
int key = 0;
- switch(baseKind(parser.getLeftIToken())) {
+ switch(baseKind(stream.getLeftIToken())) {
case TK_struct: key = IASTCompositeTypeSpecifier.k_struct;
case TK_union: key = IASTCompositeTypeSpecifier.k_union;
}
- IASTName name = (hasName) ? createName(parser.getRuleTokens().get(1)) : nodeFactory.newName();
+ IASTName name = (hasName) ? createName(stream.getRuleTokens().get(1)) : nodeFactory.newName();
ICASTCompositeTypeSpecifier typeSpec = nodeFactory.newCompositeTypeSpecifier(key, name);
@@ -560,7 +560,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
* enum_specifier ::= 'enum' enum_identifier
*/
public void consumeTypeSpecifierElaborated(int kind) {
- IASTName name = createName(parser.getRuleTokens().get(1));
+ IASTName name = createName(stream.getRuleTokens().get(1));
IASTElaboratedTypeSpecifier typeSpec = nodeFactory.newElaboratedTypeSpecifier(kind, name);
setOffsetAndLength(typeSpec);
astStack.push(typeSpec);
@@ -604,7 +604,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
// bug 234463, fix for content assist to work in this case
int TK_EOC = TK_EndOfCompletion; // TODO: change this in the grammar file
- List<IToken> tokens = parser.getRuleTokens();
+ List<IToken> tokens = stream.getRuleTokens();
if(matchTokens(tokens, tokenMap,
TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) {
IASTName name = createName(tokens.get(2));
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java
index 83e0eef10f..19f44755d8 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java
@@ -10,10 +10,13 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.c99;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99SizeofExpressionParser;
@@ -27,15 +30,15 @@ public class C99SecondaryParserFactory implements ISecondaryParserFactory {
}
- public IParser<IASTExpression> getExpressionParser(IParserActionTokenProvider parser) {
- return new C99ExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new C99ExpressionParser(stream, options);
}
- public IParser<IASTExpression> getNoCastExpressionParser(IParserActionTokenProvider parser) {
- return new C99NoCastExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new C99NoCastExpressionParser(stream, options);
}
- public IParser<IASTExpression> getSizeofExpressionParser(IParserActionTokenProvider parser) {
- return new C99SizeofExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new C99SizeofExpressionParser(stream, options);
}
} \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
index 74179e0518..4f0163fb70 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
@@ -88,10 +88,10 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisibilityLabel;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNodeFactory;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter;
import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
@@ -104,7 +104,6 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousDeclarator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousExpression;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousStatement;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousTemplateArgument;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName;
import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator;
/**
@@ -134,7 +133,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* @param orderedTerminalSymbols When an instance of this class is created for a parser
* that parsers token kinds will be mapped back to the base C99 parser's token kinds.
*/
- public CPPBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack, ICPPNodeFactory nodeFactory, ICPPSecondaryParserFactory parserFactory) {
+ public CPPBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, ICPPNodeFactory nodeFactory, ICPPSecondaryParserFactory parserFactory) {
super(parser, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
@@ -408,7 +407,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
*/
public void consumeTemplateArgumentTypeId() {
// TODO is this necessary? It should be able to tell if it looks like an id expression
- IParser<IASTExpression> secondaryParser = parserFactory.getExpressionParser(parser);
+ ISecondaryParser<IASTExpression> secondaryParser = parserFactory.getExpressionParser(stream, options);
IASTExpression result = runSecondaryParser(secondaryParser);
// The grammar rule allows assignment_expression, but the ambiguity
@@ -459,7 +458,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* ::= 'operator' overloadable_operator
*/
public void consumeOperatorName() {
- List<IToken> tokens = parser.getRuleTokens();
+ List<IToken> tokens = stream.getRuleTokens();
tokens = tokens.subList(1, tokens.size());
OverloadableOperator operator = getOverloadableOperator(tokens);
@@ -515,7 +514,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* ::= '~' identifier_token
*/
public void consumeDestructorName() {
- char[] chars = ("~" + parser.getRightIToken()).toCharArray(); //$NON-NLS-1$
+ char[] chars = ("~" + stream.getRightIToken()).toCharArray(); //$NON-NLS-1$
IASTName name = nodeFactory.newName(chars);
setOffsetAndLength(name);
@@ -535,7 +534,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
IASTName newName = nodeFactory.newName(newChars);
- int offset = offset(parser.getLeftIToken());
+ int offset = offset(stream.getLeftIToken());
int length = offset - endOffset(oldName);
ParserUtil.setOffsetAndLength(newName, offset, length);
@@ -627,7 +626,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
// bug 234463, fix for content assist to work in this case
int TK_EOC = TK_EndOfCompletion; // TODO: change this in the grammar file
- List<IToken> tokens = parser.getRuleTokens();
+ List<IToken> tokens = stream.getRuleTokens();
if(matchTokens(tokens, tokenMap,
TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) {
IASTName name = createName(tokens.get(2));
@@ -763,13 +762,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
ParserUtil.setOffsetAndLength(qualifiedName, startOffset, endOffset - startOffset);
for(IASTName name : reverseIterable(names))
qualifiedName.addName(name);
-
- if(qualifiedName instanceof CPPASTQualifiedName) {
- // compute the signature, find the tokens that make up the name
- List<IToken> nameTokens = ParserUtil.tokenOffsetSubList(parser.getRuleTokens(), startOffset, endOffset);
- String signature = createStringRepresentation(nameTokens);
- ((CPPASTQualifiedName)qualifiedName).setSignature(signature);
- }
// there must be a dummy name in the AST after the last double colon, this happens with pointer to member names
if(endsWithColonColon) {
@@ -780,39 +772,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
return qualifiedName;
}
+
- private String createStringRepresentation(List<IToken> nameTokens) {
- StringBuilder sb = new StringBuilder();
- IToken prev = null;
- for(IToken t : nameTokens) {
- if(needSpaceBetween(prev, t))
- sb.append(' ');
- sb.append(t.toString());
- prev = t;
- }
- return sb.toString();
- }
-
-
- private boolean needSpaceBetween(IToken prev, IToken iter) {
- // this logic was copied from BasicTokenDuple.createCharArrayRepresentation()
- if(prev == null)
- return false;
-
- int prevKind = baseKind(prev);
- int iterKind = baseKind(iter);
-
- return prevKind != TK_ColonColon &&
- prevKind != TK_identifier &&
- prevKind != TK_LT &&
- prevKind != TK_Tilde &&
- iterKind != TK_GT &&
- prevKind != TK_LeftBracket &&
- iterKind != TK_RightBracket &&
- iterKind != TK_ColonColon;
- }
-
/**
* Consumes grammar sub-rules of the following form:
*
@@ -879,7 +841,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
public void consumeNamespaceAliasDefinition() {
IASTName qualifiedName = subRuleQualifiedName(false);
- IASTName alias = createName(parser.getRuleTokens().get(1));
+ IASTName alias = createName(stream.getRuleTokens().get(1));
ICPPASTNamespaceAlias namespaceAlias = nodeFactory.newNamespaceAlias(alias, qualifiedName);
setOffsetAndLength(namespaceAlias);
@@ -922,7 +884,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* | 'extern' 'stringlit' <openscope-ast> declaration
*/
public void consumeLinkageSpecification() {
- String name = parser.getRuleTokens().get(1).toString();
+ String name = stream.getRuleTokens().get(1).toString();
ICPPASTLinkageSpecification linkageSpec = nodeFactory.newLinkageSpecification(name);
for(Object declaration : astStack.closeScope())
@@ -1122,7 +1084,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
}
// the only way there could be a typename token
- for(IToken token : parser.getRuleTokens()) {
+ for(IToken token : stream.getRuleTokens()) {
if(baseKind(token) == TK_typename) {
declSpec.setIsTypename(true);
break;
@@ -1142,7 +1104,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
*/
public void consumeTypeSpecifierElaborated(boolean hasOptionalTemplateKeyword) {
IASTName name = subRuleQualifiedName(hasOptionalTemplateKeyword);
- int kind = getElaboratedTypeSpecifier(parser.getLeftIToken());
+ int kind = getElaboratedTypeSpecifier(stream.getLeftIToken());
IASTElaboratedTypeSpecifier typeSpecifier = nodeFactory.newElaboratedTypeSpecifier(kind, name);
@@ -1172,7 +1134,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
List<Object> declarators = hasDeclaratorList ? astStack.closeScope() : Collections.emptyList();
ICPPASTDeclSpecifier declSpec = (ICPPASTDeclSpecifier) astStack.pop(); // may be null
- List<IToken> ruleTokens = parser.getRuleTokens();
+ List<IToken> ruleTokens = stream.getRuleTokens();
IToken nameToken = null;
@@ -1184,7 +1146,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
// In the case that a single completion token is parsed then it needs
// to be interpreted as a named type specifier for content assist to work.
else if(matchTokens(ruleTokens, tokenMap, TK_Completion, TK_EndOfCompletion)) {
- IASTName name = createName(parser.getLeftIToken());
+ IASTName name = createName(stream.getLeftIToken());
declSpec = nodeFactory.newTypedefNameSpecifier(name);
ParserUtil.setOffsetAndLength(declSpec, offset(name), length(name));
declarators = Collections.emptyList(); // throw away the bogus declarator
@@ -1193,7 +1155,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
// can happen if implicit int is used
else if(declSpec == null) {
declSpec = nodeFactory.newSimpleDeclSpecifier();
- ParserUtil.setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0);
+ ParserUtil.setOffsetAndLength(declSpec, stream.getLeftIToken().getStartOffset(), 0);
}
@@ -1213,7 +1175,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
for(IToken t : ruleTokens.subList(0, ruleTokens.size()-1))
setSpecifier(declSpec, t);
- int offset = offset(parser.getLeftIToken());
+ int offset = offset(stream.getLeftIToken());
int length = endOffset(ruleTokens.get(ruleTokens.size()-2)) - offset;
ParserUtil.setOffsetAndLength(declSpec, offset, length);
@@ -1253,7 +1215,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
IASTDeclarator nested = declarator.getNestedDeclarator();
ICPPASTSimpleDeclSpecifier simpleDeclSpec = nodeFactory.newSimpleDeclSpecifier(); // empty
- ParserUtil.setOffsetAndLength(simpleDeclSpec, parser.getLeftIToken().getStartOffset(), 0);
+ ParserUtil.setOffsetAndLength(simpleDeclSpec, stream.getLeftIToken().getStartOffset(), 0);
if(!classNames.isEmpty() && nested != null && ParserUtil.isSameName(name, classNames.getLast())) {
@@ -1314,7 +1276,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
if(!(declarator instanceof IASTFunctionDeclarator))
return;
- IParser<IASTDeclarator> secondaryParser = parserFactory.getNoFunctionDeclaratorParser(parser);
+ ISecondaryParser<IASTDeclarator> secondaryParser = parserFactory.getNoFunctionDeclaratorParser(stream, options);
IASTDeclarator notFunctionDeclarator = runSecondaryParser(secondaryParser);
if(notFunctionDeclarator == null)
@@ -1405,7 +1367,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
*/
@SuppressWarnings("unchecked")
public void consumeClassHead(boolean hasNestedNameSpecifier) {
- int key = getCompositeTypeSpecifier(parser.getLeftIToken());
+ int key = getCompositeTypeSpecifier(stream.getLeftIToken());
List<Object> baseSpecifiers = astStack.closeScope();
// may be null, but if it is then hasNestedNameSpecifier == false
IASTName className = (IASTName) astStack.pop();
@@ -1491,7 +1453,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
int endOffset = endOffset(nestedNames.getFirst()); // temporary
// find the last double colon by searching for it
- for(IToken t : reverseIterable(parser.getRuleTokens())) {
+ for(IToken t : reverseIterable(stream.getRuleTokens())) {
if(baseKind(t) == TK_ColonColon) {
endOffset = endOffset(t);
break;
@@ -1556,7 +1518,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
}
if(hasDeclarator) {
- int endOffset = endOffset(parser.getRightIToken());
+ int endOffset = endOffset(stream.getRightIToken());
addFunctionModifier(declarator, endOffset);
}
else {
@@ -1571,7 +1533,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
*/
public void consumeAbstractDeclaratorEmpty() {
IASTName name = nodeFactory.newName();
- ParserUtil.setOffsetAndLength(name, offset(parser.getLeftIToken())+1, 0);
+ ParserUtil.setOffsetAndLength(name, offset(stream.getLeftIToken())+1, 0);
IASTDeclarator declarator = nodeFactory.newDeclarator(name);
setOffsetAndLength(declarator);
astStack.push(declarator);
@@ -1610,7 +1572,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
if(declSpec == null) { // can happen if implicit int is used
declSpec = nodeFactory.newSimpleDeclSpecifier();
- ParserUtil.setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0);
+ ParserUtil.setOffsetAndLength(declSpec, stream.getLeftIToken().getStartOffset(), 0);
}
else if(disambiguateToConstructor(declSpec, declarator)) {
declSpec = (IASTDeclSpecifier) astStack.pop();
@@ -1689,7 +1651,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
if(name == null)
name = nodeFactory.newName();
- int type = getTemplateParameterType(parser.getLeftIToken());
+ int type = getTemplateParameterType(stream.getLeftIToken());
ICPPASTSimpleTypeTemplateParameter templateParameter = nodeFactory.newSimpleTypeTemplateParameter(type, name, typeId);
@@ -1723,7 +1685,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* Yes its a hack.
*/
public void consumeTemplateParamterDeclaration() {
- IParser<ICPPASTTemplateParameter> typeParameterParser = parserFactory.getTemplateTypeParameterParser(parser);
+ ISecondaryParser<ICPPASTTemplateParameter> typeParameterParser = parserFactory.getTemplateTypeParameterParser(stream, options);
IASTNode alternate = runSecondaryParser(typeParameterParser);
if(alternate == null)
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java
index 1448d3e5fb..ff5e558529 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java
@@ -10,11 +10,14 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.cpp;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser;
@@ -31,24 +34,24 @@ public class CPPSecondaryParserFactory implements ICPPSecondaryParserFactory {
}
- public IParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(IParserActionTokenProvider parser) {
- return new CPPTemplateTypeParameterParser(parser);
+ public ISecondaryParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPTemplateTypeParameterParser(stream, options);
}
- public IParser<IASTDeclarator> getNoFunctionDeclaratorParser(IParserActionTokenProvider parser) {
- return new CPPNoFunctionDeclaratorParser(parser);
+ public ISecondaryParser<IASTDeclarator> getNoFunctionDeclaratorParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPNoFunctionDeclaratorParser(stream, options);
}
- public IParser<IASTExpression> getExpressionParser(IParserActionTokenProvider parser) {
- return new CPPExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPExpressionParser(stream, options);
}
- public IParser<IASTExpression> getNoCastExpressionParser(IParserActionTokenProvider parser) {
- return new CPPNoCastExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPNoCastExpressionParser(stream, options);
}
- public IParser<IASTExpression> getSizeofExpressionParser(IParserActionTokenProvider parser) {
- return new CPPSizeofExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPSizeofExpressionParser(stream, options);
}
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java
index c22032b84c..b839465842 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java
@@ -10,11 +10,14 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.cpp;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
/**
@@ -24,8 +27,8 @@ import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
*/
public interface ICPPSecondaryParserFactory extends ISecondaryParserFactory {
- IParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(IParserActionTokenProvider parser);
+ ISecondaryParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(ITokenStream stream, Set<IParser.Options> options);
- IParser<IASTDeclarator> getNoFunctionDeclaratorParser(IParserActionTokenProvider parser);
+ ISecondaryParser<IASTDeclarator> getNoFunctionDeclaratorParser(ITokenStream stream, Set<IParser.Options> options);
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
index ad5b85070e..5938684301 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
@@ -20,7 +20,7 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator;
import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
import org.eclipse.cdt.core.dom.ast.gnu.c.IGCCASTArrayRangeDesignator;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
@@ -30,7 +30,7 @@ public class GCCBuildASTParserAction extends GNUBuildASTParserAction {
private C99BuildASTParserAction baseAction;
- public GCCBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack, ICNodeFactory nodeFactory) {
+ public GCCBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, ICNodeFactory nodeFactory) {
super(parser, astStack, nodeFactory);
this.nodeFactory = nodeFactory;
}
@@ -45,7 +45,7 @@ public class GCCBuildASTParserAction extends GNUBuildASTParserAction {
* ::= identifier_token ':'
*/
public void consumeDesignatorField() {
- IASTName name = createName(parser.getLeftIToken());
+ IASTName name = createName(stream.getLeftIToken());
ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name);
setOffsetAndLength(designator);
astStack.push(designator);
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java
index 1fdc3ee6f0..7c7afbe1a3 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java
@@ -10,10 +10,13 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.gnu;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCSizeofExpressionParser;
@@ -27,15 +30,15 @@ public class GCCSecondaryParserFactory implements ISecondaryParserFactory {
}
- public IParser<IASTExpression> getExpressionParser(IParserActionTokenProvider parser) {
- return new C99ExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new C99ExpressionParser(stream, options);
}
- public IParser<IASTExpression> getNoCastExpressionParser(IParserActionTokenProvider parser) {
- return new C99NoCastExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new C99NoCastExpressionParser(stream, options);
}
- public IParser<IASTExpression> getSizeofExpressionParser(IParserActionTokenProvider parser) {
- return new GCCSizeofExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new GCCSizeofExpressionParser(stream, options);
}
} \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
index 6ec310b20c..215cba3f84 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
@@ -19,8 +19,8 @@ import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.INodeFactory;
import org.eclipse.cdt.core.dom.ast.gnu.IGNUASTCompoundStatementExpression;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
import org.eclipse.cdt.core.dom.lrparser.action.AbstractParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym;
@@ -31,7 +31,7 @@ public class GNUBuildASTParserAction extends AbstractParserAction {
private final TokenMap tokenMap;
- public GNUBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack, INodeFactory nodeFactory) {
+ public GNUBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, INodeFactory nodeFactory) {
super(parser, astStack);
this.nodeFactory = nodeFactory;
@@ -64,7 +64,7 @@ public class GNUBuildASTParserAction extends AbstractParserAction {
*
*/
public void consumeDeclarationASM() {
- List<IToken> tokens = parser.getRuleTokens();
+ List<IToken> tokens = stream.getRuleTokens();
int firstToken = 2;
if(tokenMap.mapKind(tokens.get(1).getKind()) == GCCParsersym.TK_volatile)
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java
index 18ec92f518..541d49c870 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java
@@ -20,7 +20,7 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNodeFactory;
import org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym;
@@ -32,7 +32,7 @@ public class GPPBuildASTParserAction extends GNUBuildASTParserAction {
private CPPBuildASTParserAction baseAction;
- public GPPBuildASTParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack, ICPPNodeFactory nodeFactory) {
+ public GPPBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, ICPPNodeFactory nodeFactory) {
super(parser, astStack, nodeFactory);
this.nodeFactory = nodeFactory;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java
index 4e59e9e5a3..e2df045441 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java
@@ -10,11 +10,14 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.gnu;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.cpp.ICPPSecondaryParserFactory;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
@@ -32,24 +35,24 @@ public class GPPSecondaryParserFactory implements ICPPSecondaryParserFactory {
}
- public IParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(IParserActionTokenProvider parser) {
- return new CPPTemplateTypeParameterParser(parser);
+ public ISecondaryParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPTemplateTypeParameterParser(stream, options);
}
- public IParser<IASTDeclarator> getNoFunctionDeclaratorParser(IParserActionTokenProvider parser) {
- return new CPPNoFunctionDeclaratorParser(parser);
+ public ISecondaryParser<IASTDeclarator> getNoFunctionDeclaratorParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPNoFunctionDeclaratorParser(stream, options);
}
- public IParser<IASTExpression> getExpressionParser(IParserActionTokenProvider parser) {
- return new CPPExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPExpressionParser(stream, options);
}
- public IParser<IASTExpression> getNoCastExpressionParser(IParserActionTokenProvider parser) {
- return new CPPNoCastExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new CPPNoCastExpressionParser(stream, options);
}
- public IParser<IASTExpression> getSizeofExpressionParser(IParserActionTokenProvider parser) {
- return new GPPSizeofExpressionParser(parser);
+ public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options) {
+ return new GPPSizeofExpressionParser(stream, options);
}
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
index 3bcb06dff6..98d12a2dc9 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
@@ -10,17 +10,19 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.c99;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ILinkage;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration;
+import org.eclipse.cdt.core.dom.lrparser.IParser.Options;
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.c.ANSICParserExtensionConfiguration;
-import org.eclipse.cdt.core.model.IContributedModelBuilder;
-import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parser;
@@ -40,24 +42,16 @@ public class C99Language extends BaseExtensibleLanguage {
return DEFAULT;
}
+
@Override
- protected IParser<IASTTranslationUnit> getParser() {
- return new C99Parser();
- }
-
- @Override
- protected IDOMTokenMap getTokenMap() {
- return DOMToC99TokenMap.DEFAULT_MAP;
+ protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Set<Options> options) {
+ return new C99Parser(scanner, DOMToC99TokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options);
}
@Override
protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
return ScannerExtensionConfiguration.createC();
}
-
- public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) {
- return null;
- }
public String getId() {
return ID;
@@ -72,8 +66,7 @@ public class C99Language extends BaseExtensibleLanguage {
return ParserLanguage.C;
}
- @Override
- protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
+ private IBuiltinBindingsProvider getBuiltinBindingsProvider() {
return new ANSICParserExtensionConfiguration().getBuiltinBindingsProvider();
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
index 0c514b89d3..4638bd1c5b 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
@@ -10,17 +10,18 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.cpp;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ILinkage;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.cpp.ANSICPPParserExtensionConfiguration;
-import org.eclipse.cdt.core.model.IContributedModelBuilder;
-import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParser;
@@ -40,13 +41,8 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage {
}
@Override
- protected IParser<IASTTranslationUnit> getParser() {
- return new CPPParser();
- }
-
- @Override
- protected IDOMTokenMap getTokenMap() {
- return DOMToISOCPPTokenMap.DEFAULT_MAP;
+ protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Set<IParser.Options> options) {
+ return new CPPParser(scanner, DOMToISOCPPTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options);
}
@Override
@@ -54,10 +50,6 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage {
return ScannerExtensionConfiguration.createCPP();
}
- public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) {
- return null;
- }
-
public String getId() {
return ID;
}
@@ -71,7 +63,6 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage {
return ParserLanguage.CPP;
}
- @Override
protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
return new ANSICPPParserExtensionConfiguration().getBuiltinBindingsProvider();
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java
index 9d69cf4034..a83deee351 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java
@@ -10,17 +10,18 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.gnu;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ILinkage;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.c.GCCParserExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.c.GCCScannerExtensionConfiguration;
-import org.eclipse.cdt.core.model.IContributedModelBuilder;
-import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParser;
@@ -40,23 +41,14 @@ public class GCCLanguage extends BaseExtensibleLanguage {
}
@Override
- protected IParser<IASTTranslationUnit> getParser() {
- return new GCCParser();
- }
-
- @Override
- protected IDOMTokenMap getTokenMap() {
- return DOMToGCCTokenMap.DEFAULT_MAP;
+ protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Set<IParser.Options> options) {
+ return new GCCParser(scanner, DOMToGCCTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options);
}
@Override
protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
return GCCScannerExtensionConfiguration.getInstance();
}
-
- public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) {
- return null;
- }
public String getId() {
return ID;
@@ -71,7 +63,6 @@ public class GCCLanguage extends BaseExtensibleLanguage {
return ParserLanguage.C;
}
- @Override
protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
return new GCCParserExtensionConfiguration().getBuiltinBindingsProvider();
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java
index 7bf49dcca1..533a44e943 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java
@@ -10,17 +10,18 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.gnu;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ILinkage;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.cpp.GPPParserExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.cpp.GPPScannerExtensionConfiguration;
-import org.eclipse.cdt.core.model.IContributedModelBuilder;
-import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParser;
@@ -40,23 +41,14 @@ public class GPPLanguage extends BaseExtensibleLanguage {
}
@Override
- protected IParser<IASTTranslationUnit> getParser() {
- return new GPPParser();
- }
-
- @Override
- protected IDOMTokenMap getTokenMap() {
- return DOMToGPPTokenMap.DEFAULT_MAP;
+ protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Set<IParser.Options> options) {
+ return new GPPParser(scanner, DOMToGPPTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, options);
}
@Override
protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
return GPPScannerExtensionConfiguration.getInstance();
}
-
- public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) {
- return null;
- }
public String getId() {
return ID;
@@ -71,7 +63,6 @@ public class GPPLanguage extends BaseExtensibleLanguage {
return ParserLanguage.CPP;
}
- @Override
protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
return new GPPParserExtensionConfiguration().getBuiltinBindingsProvider();
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
index a0bc2fc7b8..a72b879f6c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
@@ -17,19 +17,28 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-public class C99ExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression >
+public class C99ExpressionParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTExpression >
+ , ISecondaryParser< IASTExpression >
{
private static ParseTable prs = new C99ExpressionParserprs();
private FixedBacktrackingParser btParser;
@@ -167,7 +176,11 @@ public class C99ExpressionParser extends PrsStream implements RuleAction , IPars
private C99BuildASTParserAction action;
private IASTCompletionNode compNode;
-public C99ExpressionParser() { // constructor
+
+public C99ExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set<IParser.Options> options) {
+ initActions(options);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
private void initActions(Set<IParser.Options> options) {
@@ -186,10 +199,9 @@ public void addToken(IToken token) {
}
-public IASTExpression parse(Set<IParser.Options> options) {
+public IASTExpression parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(options);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
@@ -232,12 +244,12 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99ExpressionParsersym.TK_EOF_TOKEN));
}
-public C99ExpressionParser(IParserActionTokenProvider parser) { // constructor
+public C99ExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
+ initActions(options);
tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -250,1011 +262,1017 @@ public C99ExpressionParser(IParserActionTokenProvider parser) { // constructor
}
//
- // Rule 12: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 13: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 14: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 15: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 17: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 17: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 18: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 18: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 21: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 22: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 23: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 24: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 26: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 27: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 27: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 41: unary_expression ::= sizeof ( type_id )
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 43: cast_expression ::= ( type_id ) cast_expression
+ // Rule 42: unary_expression ::= sizeof ( type_id )
//
- case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 44: cast_expression ::= ( type_id ) cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
//
- case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression << additive_expression
+ // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 53: shift_expression ::= shift_expression >> additive_expression
+ // Rule 53: shift_expression ::= shift_expression << additive_expression
//
- case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 55: relational_expression ::= relational_expression < shift_expression
+ // Rule 54: shift_expression ::= shift_expression >> additive_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 56: relational_expression ::= relational_expression > shift_expression
+ // Rule 56: relational_expression ::= relational_expression < shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression <= shift_expression
+ // Rule 57: relational_expression ::= relational_expression > shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 58: relational_expression ::= relational_expression >= shift_expression
+ // Rule 58: relational_expression ::= relational_expression <= shift_expression
//
- case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression == relational_expression
+ // Rule 59: relational_expression ::= relational_expression >= shift_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 61: equality_expression ::= equality_expression != relational_expression
+ // Rule 61: equality_expression ::= equality_expression == relational_expression
//
- case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 63: AND_expression ::= AND_expression & equality_expression
+ // Rule 62: equality_expression ::= equality_expression != relational_expression
//
- case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 64: and_expression ::= and_expression & equality_expression
//
- case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 73: { action. consumeExpressionConditional(); break;
+ case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 74: { action. consumeExpressionConditional(); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression = assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression += assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
//
- case 88: { action. consumeExpressionList(); break;
+ case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 90: expression_list_opt ::= $Empty
+ // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
//
- case 90: { action. consumeEmpty(); break;
+ case 89: { action. consumeExpressionList(); break;
}
//
- // Rule 100: statement ::= ERROR_TOKEN
+ // Rule 91: expression_list_opt ::= $Empty
//
- case 100: { action. consumeStatementProblem(); break;
+ case 91: { action. consumeEmpty(); break;
}
//
- // Rule 101: labeled_statement ::= identifier_token : statement
+ // Rule 101: statement ::= ERROR_TOKEN
//
- case 101: { action. consumeStatementLabeled(); break;
+ case 101: { action. consumeStatementProblem(); break;
}
//
- // Rule 102: labeled_statement ::= case constant_expression : statement
+ // Rule 102: labeled_statement ::= identifier_token : statement
//
- case 102: { action. consumeStatementCase(); break;
+ case 102: { action. consumeStatementLabeled(); break;
}
//
- // Rule 103: labeled_statement ::= default : statement
+ // Rule 103: labeled_statement ::= case constant_expression : statement
//
- case 103: { action. consumeStatementDefault(); break;
+ case 103: { action. consumeStatementCase(); break;
}
//
- // Rule 104: compound_statement ::= { }
+ // Rule 104: labeled_statement ::= default : statement
//
- case 104: { action. consumeStatementCompoundStatement(false); break;
+ case 104: { action. consumeStatementDefault(); break;
}
//
- // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 105: compound_statement ::= { }
//
- case 105: { action. consumeStatementCompoundStatement(true); break;
+ case 105: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 109: block_item ::= declaration
+ // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 106: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 110: expression_statement ::= ;
+ // Rule 110: block_item ::= declaration
//
- case 110: { action. consumeStatementNull(); break;
+ case 110: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 111: expression_statement ::= expression_in_statement ;
+ // Rule 111: expression_statement ::= ;
//
- case 111: { action. consumeStatementExpression(); break;
+ case 111: { action. consumeStatementNull(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement
+ // Rule 112: expression_statement ::= expression_in_statement ;
//
- case 112: { action. consumeStatementIf(false); break;
+ case 112: { action. consumeStatementExpression(); break;
}
//
- // Rule 113: selection_statement ::= if ( expression ) statement else statement
+ // Rule 113: selection_statement ::= if ( expression ) statement
//
- case 113: { action. consumeStatementIf(true); break;
+ case 113: { action. consumeStatementIf(false); break;
}
//
- // Rule 114: selection_statement ::= switch ( expression ) statement
+ // Rule 114: selection_statement ::= if ( expression ) statement else statement
//
- case 114: { action. consumeStatementSwitch(); break;
+ case 114: { action. consumeStatementIf(true); break;
}
//
- // Rule 116: expression_opt ::= $Empty
+ // Rule 115: selection_statement ::= switch ( expression ) statement
//
- case 116: { action. consumeEmpty(); break;
+ case 115: { action. consumeStatementSwitch(); break;
}
//
- // Rule 117: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 117: expression_opt ::= $Empty
//
- case 117: { action. consumeStatementDoLoop(); break;
+ case 117: { action. consumeEmpty(); break;
}
//
- // Rule 118: iteration_statement ::= while ( expression ) statement
+ // Rule 118: iteration_statement ::= do statement while ( expression ) ;
//
- case 118: { action. consumeStatementWhileLoop(); break;
+ case 118: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= while ( expression ) statement
//
- case 119: { action. consumeStatementForLoop(); break;
+ case 119: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= goto identifier_token ;
+ // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 121: { action. consumeStatementGoto(); break;
+ case 121: { action. consumeStatementForLoop(); break;
}
//
- // Rule 122: jump_statement ::= continue ;
+ // Rule 122: jump_statement ::= goto identifier_token ;
//
- case 122: { action. consumeStatementContinue(); break;
+ case 122: { action. consumeStatementGoto(); break;
}
//
- // Rule 123: jump_statement ::= break ;
+ // Rule 123: jump_statement ::= continue ;
//
- case 123: { action. consumeStatementBreak(); break;
+ case 123: { action. consumeStatementContinue(); break;
}
//
- // Rule 124: jump_statement ::= return ;
+ // Rule 124: jump_statement ::= break ;
//
- case 124: { action. consumeStatementReturn(false); break;
+ case 124: { action. consumeStatementBreak(); break;
}
//
- // Rule 125: jump_statement ::= return expression ;
+ // Rule 125: jump_statement ::= return ;
//
- case 125: { action. consumeStatementReturn(true); break;
+ case 125: { action. consumeStatementReturn(false); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers ;
+ // Rule 126: jump_statement ::= return expression ;
//
- case 126: { action. consumeDeclarationSimple(false); break;
+ case 126: { action. consumeStatementReturn(true); break;
}
//
- // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 127: declaration ::= declaration_specifiers ;
//
- case 127: { action. consumeDeclarationSimple(true); break;
+ case 127: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 128: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 128: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 129: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 157: init_declarator ::= complete_declarator = initializer
+ // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 157: { action. consumeDeclaratorWithInitializer(true); break;
+ case 133: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 159: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 158: init_declarator ::= complete_declarator = initializer
//
- case 159: { action. consumeToken(); break;
+ case 158: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 165: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 160: storage_class_specifier ::= storage_class_specifier_token
//
- case 165: { action. consumeToken(); break;
+ case 160: { action. consumeToken(); break;
}
//
- // Rule 178: type_name_specifier ::= identifier_token
+ // Rule 166: simple_type_specifier ::= simple_type_specifier_token
//
- case 178: { action. consumeToken(); break;
+ case 166: { action. consumeToken(); break;
}
//
- // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 179: type_name_specifier ::= identifier_token
//
- case 179: { action. consumeTypeSpecifierComposite(false); break;
+ case 179: { action. consumeToken(); break;
}
//
- // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 180: { action. consumeTypeSpecifierComposite(true); break;
+ case 180: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 181: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 193: { action. consumeStructDeclaration(true); break;
+ case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 194: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 194: { action. consumeStructDeclaration(false); break;
+ case 194: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 195: struct_declaration ::= ERROR_TOKEN
+ // Rule 195: struct_declaration ::= specifier_qualifier_list ;
//
- case 195: { action. consumeDeclarationProblem(); break;
+ case 195: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 201: struct_declarator ::= : constant_expression
+ // Rule 196: struct_declaration ::= ERROR_TOKEN
//
- case 201: { action. consumeBitField(false); break;
+ case 196: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 202: struct_declarator ::= declarator : constant_expression
+ // Rule 202: struct_declarator ::= : constant_expression
//
- case 202: { action. consumeBitField(true); break;
+ case 202: { action. consumeBitField(false); break;
}
//
- // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 203: struct_declarator ::= declarator : constant_expression
//
- case 203: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 203: { action. consumeBitField(true); break;
}
//
- // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 204: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 210: enumerator ::= identifier_token
+ // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 210: { action. consumeEnumerator(false); break;
+ case 205: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 211: enumerator ::= identifier_token = constant_expression
+ // Rule 211: enumerator ::= identifier_token
//
- case 211: { action. consumeEnumerator(true); break;
+ case 211: { action. consumeEnumerator(false); break;
}
//
- // Rule 212: type_qualifier ::= type_qualifier_token
+ // Rule 212: enumerator ::= identifier_token = constant_expression
//
- case 212: { action. consumeToken(); break;
+ case 212: { action. consumeEnumerator(true); break;
}
//
- // Rule 216: function_specifier ::= inline
+ // Rule 213: type_qualifier ::= type_qualifier_token
//
- case 216: { action. consumeToken(); break;
+ case 213: { action. consumeToken(); break;
}
//
- // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 217: function_specifier ::= inline
//
- case 218: { action. consumeDeclaratorWithPointer(true); break;
+ case 217: { action. consumeToken(); break;
}
//
- // Rule 223: basic_direct_declarator ::= declarator_id_name
+ // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 223: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 219: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 224: basic_direct_declarator ::= ( declarator )
+ // Rule 224: basic_direct_declarator ::= declarator_id_name
//
- case 224: { action. consumeDirectDeclaratorBracketed(); break;
+ case 224: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 225: declarator_id_name ::= identifier
+ // Rule 225: basic_direct_declarator ::= ( declarator )
//
- case 225: { action. consumeIdentifierName(); break;
+ case 225: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 226: declarator_id_name ::= identifier
//
- case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 226: { action. consumeIdentifierName(); break;
}
//
- // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 230: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 231: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 232: { action. consumeDeclaratorWithPointer(true); break;
+ case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 233: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 235: { action. consumeDeclaratorWithPointer(true); break;
+ case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 236: identifier_list ::= identifier
+ // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 236: { action. consumeIdentifierKnR(); break;
+ case 236: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 237: identifier_list ::= identifier_list , identifier
+ // Rule 237: identifier_list ::= identifier
//
case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 238: array_modifier ::= [ ]
+ // Rule 238: identifier_list ::= identifier_list , identifier
//
- case 238: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 238: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 239: array_modifier ::= [ ]
//
- case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 239: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 240: array_modifier ::= [ assignment_expression ]
+ // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 240: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 241: array_modifier ::= [ assignment_expression ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 241: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 242: array_modifier ::= [ static assignment_expression ]
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 243: array_modifier ::= [ static assignment_expression ]
//
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 245: array_modifier ::= [ * ]
+ // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 246: array_modifier ::= [ * ]
//
- case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 248: pointer_seq ::= pointer_hook *
+ // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 248: { action. consumePointer(); break;
+ case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 249: pointer_seq ::= pointer_seq pointer_hook *
+ // Rule 249: pointer_seq ::= pointer_hook * pointer_hook
//
case 249: { action. consumePointer(); break;
}
//
- // Rule 250: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 250: { action. consumePointerTypeQualifierList(); break;
+ case 250: { action. consumePointer(); break;
}
//
- // Rule 251: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 255: parameter_type_list ::= parameter_list
+ // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 255: { action. consumeEmpty(); break;
+ case 252: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 256: parameter_type_list ::= parameter_list , ...
+ // Rule 256: parameter_type_list ::= parameter_list
//
- case 256: { action. consumePlaceHolder(); break;
+ case 256: { action. consumeEmpty(); break;
}
//
- // Rule 257: parameter_type_list ::= ...
+ // Rule 257: parameter_type_list ::= parameter_list , ...
//
case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 258: parameter_type_list ::= ...
//
- case 260: { action. consumeParameterDeclaration(); break;
+ case 258: { action. consumePlaceHolder(); break;
}
//
- // Rule 261: parameter_declaration ::= declaration_specifiers
+ // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 261: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 264: type_id ::= specifier_qualifier_list
+ // Rule 262: parameter_declaration ::= declaration_specifiers
//
- case 264: { action. consumeTypeId(false); break;
+ case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator
+ // Rule 265: type_id ::= specifier_qualifier_list
//
- case 265: { action. consumeTypeId(true); break;
+ case 265: { action. consumeTypeId(false); break;
}
//
- // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 267: { action. consumeDeclaratorWithPointer(false); break;
+ case 266: { action. consumeTypeId(true); break;
}
//
- // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq
//
case 268: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 272: { action. consumeDirectDeclaratorBracketed(); break;
+ case 269: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 273: array_direct_abstract_declarator ::= array_modifier
+ // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 273: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 274: array_direct_abstract_declarator ::= array_modifier
//
- case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= ( )
+ // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 277: function_direct_abstract_declarator ::= ( )
+ //
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
}
//
- // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
//
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 280: initializer ::= assignment_expression
+ // Rule 281: initializer ::= assignment_expression
//
- case 280: { action. consumeInitializer(); break;
+ case 281: { action. consumeInitializer(); break;
}
//
- // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
+ // Rule 282: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
//
- case 281: { action. consumeInitializerList(); break;
+ case 282: { action. consumeInitializerList(); break;
}
//
- // Rule 282: initializer ::= { <openscope-ast> }
+ // Rule 283: initializer ::= { <openscope-ast> }
//
- case 282: { action. consumeInitializerList(); break;
+ case 283: { action. consumeInitializerList(); break;
}
//
- // Rule 283: start_initializer_list ::= $Empty
+ // Rule 284: start_initializer_list ::= $Empty
//
- case 283: { action. initializerListStart(); break;
+ case 284: { action. initializerListStart(); break;
}
//
- // Rule 284: end_initializer_list ::= $Empty
+ // Rule 285: end_initializer_list ::= $Empty
//
- case 284: { action. initializerListEnd(); break;
+ case 285: { action. initializerListEnd(); break;
}
//
- // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 290: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 289: { action. consumeInitializerDesignated(); break;
+ case 290: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 293: designator_base ::= [ constant_expression ]
+ // Rule 294: designator_base ::= [ constant_expression ]
//
- case 293: { action. consumeDesignatorArray(); break;
+ case 294: { action. consumeDesignatorArray(); break;
}
//
- // Rule 294: designator_base ::= . identifier_token
+ // Rule 295: designator_base ::= . identifier_token
//
- case 294: { action. consumeDesignatorField(); break;
+ case 295: { action. consumeDesignatorField(); break;
}
//
- // Rule 295: designator ::= [ constant_expression ]
+ // Rule 296: designator ::= [ constant_expression ]
//
- case 295: { action. consumeDesignatorArray(); break;
+ case 296: { action. consumeDesignatorArray(); break;
}
//
- // Rule 296: designator ::= . identifier_token
+ // Rule 297: designator ::= . identifier_token
//
- case 296: { action. consumeDesignatorField(); break;
+ case 297: { action. consumeDesignatorField(); break;
}
//
- // Rule 297: translation_unit ::= external_declaration_list
+ // Rule 298: translation_unit ::= external_declaration_list
//
- case 297: { action. consumeTranslationUnit(); break;
+ case 298: { action. consumeTranslationUnit(); break;
}
//
- // Rule 298: translation_unit ::= $Empty
+ // Rule 299: translation_unit ::= $Empty
//
- case 298: { action. consumeTranslationUnit(); break;
+ case 299: { action. consumeTranslationUnit(); break;
}
//
- // Rule 303: external_declaration ::= ;
+ // Rule 304: external_declaration ::= ;
//
- case 303: { action. consumeDeclarationEmpty(); break;
+ case 304: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 304: external_declaration ::= ERROR_TOKEN
+ // Rule 305: external_declaration ::= ERROR_TOKEN
//
- case 304: { action. consumeDeclarationProblem(); break;
+ case 305: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 307: { action. consumeFunctionDefinition(true); break;
+ case 308: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 308: { action. consumeFunctionDefinition(false); break;
+ case 309: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 309: { action. consumeFunctionDefinitionKnR(); break;
+ case 310: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 310: function_body ::= { }
+ // Rule 311: function_body ::= { }
//
- case 310: { action. consumeStatementCompoundStatement(false); break;
+ case 311: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 311: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 312: function_body ::= { <openscope-ast> block_item_list }
//
- case 311: { action. consumeStatementCompoundStatement(true); break;
+ case 312: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 313: expression_parser_start ::= ERROR_TOKEN
+ // Rule 314: expression_parser_start ::= ERROR_TOKEN
//
- case 313: { action. consumeEmpty(); break;
+ case 314: { action. consumeEmpty(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
index 5619b86655..ec33f1d5a7 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
@@ -34,184 +34,185 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface BaseCheck {
public final static short baseCheck[] = {0,
- 0,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,3,1,1,
- 4,4,3,3,2,2,8,1,0,1,
- 1,2,2,2,2,2,2,2,2,2,
- 4,1,4,1,3,3,3,1,3,3,
- 1,3,3,1,3,3,3,3,1,3,
- 3,1,3,1,3,1,3,1,3,1,
- 3,1,5,1,3,3,3,3,3,3,
- 3,3,3,3,3,1,1,2,1,0,
- 1,3,1,1,1,1,1,1,1,1,
- 3,4,3,2,4,1,2,1,1,1,
- 2,5,7,5,1,0,7,5,9,8,
- 3,2,2,2,3,2,4,2,2,2,
- 2,2,1,1,1,1,2,1,2,2,
- 2,1,2,2,1,2,2,1,2,2,
- 1,2,2,1,3,1,3,1,1,1,
+ 0,0,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,3,1,
+ 1,4,4,3,3,2,2,8,1,0,
+ 1,1,2,2,2,2,2,2,2,2,
+ 2,4,1,4,1,3,3,3,1,3,
+ 3,1,3,3,1,3,3,3,3,1,
+ 3,3,1,3,1,3,1,3,1,3,
+ 1,3,1,5,1,3,3,3,3,3,
+ 3,3,3,3,3,3,1,1,2,1,
+ 0,1,3,1,1,1,1,1,1,1,
+ 1,3,4,3,2,4,1,2,1,1,
+ 1,2,5,7,5,1,0,7,5,9,
+ 8,3,2,2,2,3,2,4,2,2,
+ 2,2,2,1,1,1,1,2,1,2,
+ 2,2,1,2,2,1,2,2,1,2,
+ 2,1,2,2,1,3,1,3,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,6,8,
- 0,0,1,1,3,3,3,0,1,0,
- 1,2,4,2,1,1,1,3,1,1,
- 2,3,7,8,0,1,0,1,3,1,
- 3,1,1,1,1,1,1,3,1,1,
- 1,1,1,3,1,2,2,1,5,3,
- 1,3,5,1,3,1,3,2,4,3,
- 5,4,6,6,3,5,1,2,3,4,
- 5,0,1,2,1,3,1,1,3,2,
- 1,1,1,1,2,1,2,3,1,1,
- 1,3,1,2,2,2,3,4,5,1,
- 7,3,0,0,1,1,3,3,4,1,
- 1,2,3,2,3,2,1,0,1,2,
- 1,1,1,1,1,2,4,3,6,2,
- 4,1,1,-37,0,0,0,0,0,0,
- 0,0,0,0,-2,0,0,0,0,0,
- 0,0,0,0,-159,0,0,-117,0,-4,
+ 1,1,1,1,1,1,1,1,1,6,
+ 8,0,0,1,1,3,3,3,0,1,
+ 0,1,2,4,2,1,1,1,3,1,
+ 1,2,3,7,8,0,1,0,1,3,
+ 1,3,1,1,1,1,1,1,3,1,
+ 1,1,1,1,3,1,2,2,1,5,
+ 3,1,3,5,1,3,1,3,2,4,
+ 3,5,4,6,6,3,5,1,3,4,
+ 5,6,0,1,2,1,3,1,1,3,
+ 2,1,1,1,1,2,1,2,3,1,
+ 1,1,3,1,2,2,2,3,4,5,
+ 1,7,3,0,0,1,1,3,3,4,
+ 1,1,2,3,2,3,2,1,0,1,
+ 2,1,1,1,1,1,2,4,3,6,
+ 2,4,1,1,-37,0,0,0,0,0,
+ 0,0,0,0,0,-159,0,0,0,0,
+ 0,0,0,0,0,-2,0,0,-4,-76,
+ -71,-77,0,0,0,0,-55,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-117,
+ 0,-118,0,-140,-14,0,0,0,0,0,
+ -5,0,0,0,0,0,0,0,0,0,
0,0,0,0,-123,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-14,-76,
- -165,-79,-118,0,0,0,0,0,0,-5,
+ 0,0,0,0,0,-187,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-140,0,0,0,
- 0,0,0,0,-38,0,0,0,0,0,
- 0,0,0,0,-119,0,0,-187,0,0,
+ 0,0,0,0,0,0,-56,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-160,0,
+ 0,0,0,0,-38,0,0,0,0,0,
+ 0,0,0,0,-196,0,0,-16,0,0,
+ 0,0,-30,0,0,-39,0,0,0,0,
+ 0,0,0,0,0,-31,0,0,-160,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-56,
+ 0,0,0,0,0,0,0,0,0,-74,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-39,0,0,
- 0,0,0,0,0,0,0,-120,0,0,
- -16,0,0,0,0,-177,-17,0,-6,0,
- 0,0,0,0,0,0,0,0,-74,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-121,
- 0,-18,0,-183,0,0,0,0,0,0,
- 0,0,0,0,-201,0,0,0,0,0,
- 0,0,0,0,-3,0,0,0,0,0,
+ -17,-107,0,0,-12,0,0,0,0,0,
+ 0,0,0,0,-119,0,-18,0,-6,0,
+ 0,0,0,0,0,0,0,0,-183,0,
+ 0,0,0,0,0,0,0,0,0,-34,
+ 0,0,0,0,0,0,0,0,0,-3,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-52,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-71,0,-110,0,0,0,0,0,0,
+ -52,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-85,0,-110,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-128,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-82,
+ -19,-128,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-132,0,-144,
- 0,-55,0,0,0,0,0,0,0,0,
- 0,0,-107,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-27,0,
- 0,0,0,0,0,0,0,0,0,-125,
+ 0,0,-132,0,-129,0,-53,0,0,0,
+ 0,0,0,0,0,0,0,-20,0,0,
+ 0,-165,0,-125,0,0,0,0,-35,-79,
+ 0,0,0,0,-49,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-162,0,-19,0,-185,0,0,0,
- 0,0,0,-7,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-57,0,0,
- 0,0,0,0,0,0,0,0,-34,0,
- 0,0,0,0,0,0,0,0,-58,0,
+ 0,0,0,0,0,-21,0,0,0,0,
+ 0,-120,0,0,0,0,0,0,-7,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-59,
+ 0,0,-27,0,0,0,0,0,0,0,
+ 0,0,0,-68,0,0,0,0,0,0,
+ 0,0,0,-57,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -35,0,0,0,0,0,0,0,0,0,
- -60,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-58,0,0,0,0,0,
+ 0,0,0,0,0,-69,0,0,0,0,
+ 0,0,0,0,0,-59,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-61,0,0,0,0,0,0,0,0,
- 0,0,-68,0,0,0,0,0,0,0,
- 0,0,-62,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-60,0,0,0,
+ 0,0,0,0,0,0,0,-70,0,0,
+ 0,0,0,0,0,0,0,-61,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-63,0,0,0,0,0,0,
- 0,0,0,0,-69,0,0,0,0,0,
- 0,0,0,0,-64,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-62,0,
+ 0,0,0,0,0,0,0,0,0,-114,
+ 0,0,0,0,0,0,0,0,0,-63,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-65,0,0,0,0,
- 0,0,0,0,0,0,-70,0,0,0,
- 0,0,0,0,0,0,-66,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-67,0,0,
- 0,0,0,0,0,0,0,0,-114,0,
- 0,0,0,0,0,0,0,0,-145,0,
+ -64,0,0,0,0,0,0,0,0,0,
+ 0,-130,0,0,0,0,0,0,0,0,
+ 0,-65,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-146,
+ 0,0,-66,0,0,0,0,0,0,0,
+ 0,0,0,-154,0,0,0,0,0,0,
+ 0,0,0,-67,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -130,0,0,0,0,0,0,0,0,0,
- -163,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-122,0,0,0,0,0,
+ 0,0,0,0,0,-171,0,0,0,0,
+ 0,0,0,0,0,-145,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -186,0,0,0,0,0,0,0,0,0,
- 0,-20,0,0,0,0,0,0,0,0,
- -12,0,0,0,0,0,0,0,-8,0,
- 0,0,0,0,0,0,-194,0,0,0,
+ 0,0,0,0,0,0,-146,0,0,0,
+ 0,0,0,0,0,0,0,-22,0,0,
+ 0,0,0,0,0,0,0,-163,0,0,
+ 0,0,0,0,0,0,0,0,-80,0,
+ 0,0,0,0,0,0,0,-186,0,0,
+ 0,0,0,0,0,0,0,0,-83,0,
+ 0,0,0,0,0,0,0,-13,0,0,
+ 0,0,0,0,0,-8,0,0,0,0,
+ 0,0,0,-195,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-202,0,0,0,
- 0,0,0,0,0,0,0,-80,0,0,
- 0,0,0,0,0,0,-13,0,0,0,
- 0,0,0,0,-9,0,0,0,0,0,
- 0,0,-210,0,0,0,0,0,0,0,
+ 0,0,0,-204,0,0,0,0,0,0,
+ 0,0,0,0,-139,0,0,0,0,0,
+ 0,0,0,-135,0,-121,0,0,-162,0,
+ 0,-23,-164,-185,0,-73,-24,-174,-78,-212,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-122,0,0,0,0,0,0,0,
- 0,0,0,-131,0,0,0,0,0,0,
- 0,0,-30,0,0,-21,-82,-22,-176,0,
- -136,-113,0,0,0,0,0,0,0,0,
- -112,0,-77,-149,-126,-135,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-131,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-83,0,0,0,0,
- -23,0,-167,-32,-153,-87,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-25,-143,
+ 0,0,0,0,0,0,0,-152,-200,-149,
+ 0,-207,0,0,0,0,0,0,0,0,
+ 0,-177,0,0,0,0,0,0,-136,0,
+ 0,-33,0,0,0,0,-189,0,0,0,
+ -87,0,0,0,0,0,0,0,0,0,
+ -192,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-176,-203,0,0,0,
+ 0,0,0,0,-47,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -24,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-53,0,
- 0,0,0,0,0,0,0,0,0,-174,
- 0,0,0,-116,0,-129,0,0,0,0,
- 0,0,-138,-25,0,0,0,0,0,0,
- 0,-158,0,0,0,0,-73,0,0,-191,
- 0,-26,-88,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-49,0,0,0,
+ 0,0,0,-180,0,-26,-88,0,0,-89,
+ -90,0,0,0,0,0,-50,0,0,0,
+ 0,0,0,0,0,0,0,-199,0,-51,
0,0,0,0,0,0,0,0,0,0,
- -141,-31,0,0,0,0,0,0,0,0,
- -89,0,-90,-91,-92,0,-193,0,-50,0,
+ -193,0,0,0,-211,-91,0,-92,-93,0,
+ 0,0,-94,-194,0,0,-43,0,0,0,
+ 0,0,0,0,0,0,0,-44,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-51,0,0,0,0,0,0,0,0,
- 0,0,-209,0,-143,0,0,-93,0,-111,
- -127,0,0,0,-154,0,-200,-206,-150,-147,
- 0,-43,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-198,-158,0,-95,
+ -96,0,0,-45,0,0,0,0,0,0,
+ 0,0,0,0,-46,0,0,0,0,0,
+ 0,0,0,0,0,-48,0,0,0,0,
+ 0,0,0,0,0,-206,0,0,-138,-111,
+ -116,-75,-127,-201,-147,-97,0,0,-98,0,
+ -150,0,0,-113,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-94,-95,-96,0,0,
- 0,-44,0,0,0,0,0,0,0,0,
- 0,0,-45,0,0,0,0,0,0,0,
- 0,0,0,-46,0,0,0,0,0,0,
- 0,0,0,0,0,0,-47,0,0,0,
- 0,0,0,0,0,0,-48,0,0,0,
- 0,0,0,0,0,0,-204,-75,-78,-10,
- 0,0,0,0,0,0,0,0,0,-11,
- 0,0,0,0,0,0,0,-152,0,-151,
- 0,0,-97,0,-168,0,0,0,0,-169,
- 0,0,0,0,0,0,0,-211,-36,-164,
+ 0,0,0,0,0,0,0,0,-151,-213,
+ -81,0,0,0,0,0,0,0,-148,0,
+ 0,0,0,0,0,0,-141,-99,-100,0,
+ -101,-102,0,0,0,-103,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-98,0,0,-157,0,-148,0,0,0,
- 0,0,0,0,0,0,0,-85,0,-179,
- 0,0,0,0,0,0,0,0,-139,-99,
- 0,0,0,0,0,-40,0,0,0,0,
- 0,0,0,-100,-101,-102,0,-41,0,0,
- 0,0,0,0,0,-42,0,0,0,0,
- 0,0,0,-72,0,0,0,0,0,0,
- 0,-115,-188,-15,-172,-28,-195,0,-1,0,
- -166,-175,0,0,0,0,0,0,0,0,
- -207,0,0,-212,0,0,0,-103,0,0,
- 0,-33,0,0,0,0,0,-29,0,0,
- -180,0,0,-170,0,0,0,0,0,0,
- 0,0,0,0,0,-173,0,-104,0,0,
- -81,0,0,0,0,0,0,0,-192,-197,
- 0,-84,0,-205,0,-171,0,-105,0,0,
- -86,-156,0,0,-198,-108,-106,0,0,0,
+ -9,0,0,0,0,0,0,0,-10,0,
+ 0,0,0,0,0,0,-11,0,0,0,
+ 0,0,0,0,-36,-40,0,0,0,0,
+ 0,0,0,-144,-157,0,-41,0,0,0,
+ 0,0,0,0,0,0,-104,-169,-105,-106,
+ 0,-42,0,0,0,0,0,0,0,-72,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-115,-15,-173,-172,-28,-166,-29,-167,
+ -32,-170,0,0,0,0,0,0,0,0,
+ 0,0,-184,-175,-202,0,-208,0,0,0,
+ 0,0,0,0,0,0,0,-214,-109,0,
+ -124,0,-84,0,0,0,0,0,0,0,
+ 0,0,0,-86,0,0,0,0,0,0,
+ 0,-108,0,0,0,0,0,-156,0,-190,
+ 0,0,0,0,-191,0,0,-133,0,-1,
+ 0,0,0,0,0,0,-178,0,0,-134,
+ 0,-197,0,-137,0,-112,-142,0,0,0,
+ 0,-179,0,-155,0,0,0,0,-126,0,
+ -209,0,0,-161,0,0,0,0,0,0,
+ 0,-181,-182,-205,0,-153,0,-54,0,-210,
+ 0,0,0,0,0,-168,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-188,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-184,-189,-190,-178,0,-196,0,0,
- 0,-134,0,0,0,0,0,-109,0,0,
- 0,0,0,-54,-199,-124,0,-133,0,0,
- 0,0,-137,-142,0,-155,0,-161,0,-181,
- -182,-203,-208,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0
+ 0,0,0,0,0,0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -221,185 +222,186 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface BaseAction {
public final static char baseAction[] = {
- 87,11,24,24,21,21,32,32,70,70,
- 1,1,2,2,2,2,3,3,3,4,
- 5,5,5,5,5,5,5,5,51,51,
- 71,6,6,6,6,6,6,6,6,6,
- 6,6,7,7,8,8,8,8,9,9,
- 9,10,10,10,12,12,12,12,12,13,
- 13,13,14,14,15,15,16,16,17,17,
- 18,18,19,19,20,20,20,20,20,20,
- 20,20,20,20,20,20,101,41,33,88,
- 88,73,73,47,102,102,102,102,102,102,
- 102,103,103,103,104,104,109,109,110,110,
- 105,105,106,106,106,112,112,107,107,107,
- 107,108,108,108,108,108,111,111,25,25,
- 25,25,25,27,27,27,79,79,74,74,
- 74,74,75,75,75,76,76,76,77,77,
- 77,78,78,78,113,113,114,114,115,28,
- 30,30,30,30,30,52,54,54,54,54,
- 54,54,54,54,54,54,54,54,64,61,
- 61,89,90,65,65,62,62,62,66,80,
- 80,81,81,67,67,67,42,91,91,82,
- 83,83,83,63,63,92,84,84,85,85,
- 68,68,22,23,23,23,29,48,48,34,
- 34,34,34,37,37,39,35,35,36,40,
- 40,116,116,38,117,117,93,93,26,26,
- 26,26,26,26,26,26,26,86,49,49,
- 49,49,31,56,56,55,55,55,57,57,
- 50,50,94,94,60,60,58,58,58,43,
- 43,43,44,45,45,45,46,46,46,46,
- 53,53,53,59,95,72,72,72,72,69,
- 96,97,97,98,98,99,99,118,118,119,
- 119,120,120,120,120,122,122,121,121,121,
- 123,123,87,87,1,1273,16,20,17,369,
- 1272,44,497,491,695,44,532,1146,1022,1191,
- 1148,1254,1211,74,91,738,134,212,65,1166,
- 172,136,133,135,159,432,19,16,20,17,
- 369,1272,44,497,491,695,397,532,1146,1022,
- 1191,1148,1254,1211,74,280,138,27,165,663,
- 365,738,634,161,186,142,145,148,151,1078,
- 524,19,16,20,17,369,40,340,1449,372,
- 1631,1642,1651,1196,134,212,274,694,285,144,
- 133,135,159,282,1714,501,19,16,20,17,
- 369,42,44,1311,286,161,185,1529,478,19,
- 16,20,17,369,1272,44,497,491,695,397,
- 532,1146,1022,1191,1148,1254,1211,74,280,326,
- 19,16,20,17,369,1272,44,497,491,695,
- 397,532,1146,1022,1191,1148,1254,1211,74,280,
- 501,19,16,20,17,369,42,44,497,491,
- 695,285,532,1146,1022,1191,1628,1714,501,19,
- 16,20,17,369,42,44,1313,286,352,1713,
- 1640,21,287,1718,1490,291,739,154,1714,501,
- 19,16,20,17,369,42,39,1270,288,275,
- 19,16,20,17,369,1272,44,497,491,695,
- 1161,532,1146,1022,1191,1148,1254,1211,74,1350,
- 161,187,6,238,455,19,16,20,17,369,
- 1272,44,497,491,695,723,532,1146,1022,1191,
- 1148,1254,1211,74,280,501,19,16,20,17,
- 369,1272,44,497,491,695,194,532,1146,1022,
- 1191,1148,1254,1211,74,91,501,19,16,20,
- 17,369,42,44,497,491,695,289,532,1146,
- 1022,1544,282,1714,570,19,16,20,17,369,
- 1272,44,497,491,695,1165,532,1146,1022,1191,
- 1148,1254,1211,74,1351,193,21,299,19,16,
- 20,17,369,1272,44,497,491,695,340,532,
- 1146,1022,1191,1148,1254,1211,74,1360,189,178,
- 52,239,501,19,16,20,17,369,42,44,
- 497,491,695,13,532,1146,1022,1191,1148,1598,
- 134,212,253,212,345,136,133,135,159,501,
- 19,16,20,17,369,1272,44,497,491,695,
- 596,532,1146,1022,1191,1148,1254,1211,74,92,
- 138,640,165,161,294,69,1475,161,296,142,
- 145,148,151,1078,501,19,16,20,17,369,
- 42,38,1449,372,1631,1642,1651,1196,501,19,
- 16,20,17,369,1272,44,497,491,695,727,
- 532,1146,1022,1191,1148,1254,1211,74,85,501,
- 19,16,20,17,369,1272,44,497,491,695,
- 1564,532,1146,1022,1191,1148,1254,1211,74,84,
- 501,19,16,20,17,369,1272,44,497,491,
- 695,727,532,1146,1022,1191,1148,1254,1211,74,
- 83,501,19,16,20,17,369,1272,44,497,
- 491,695,18,532,1146,1022,1191,1148,1254,1211,
- 74,82,501,19,16,20,17,369,1272,44,
- 497,491,695,727,532,1146,1022,1191,1148,1254,
- 1211,74,81,501,19,16,20,17,369,1272,
- 44,497,491,695,1648,532,1146,1022,1191,1148,
- 1254,1211,74,80,501,19,16,20,17,369,
- 1272,44,497,491,695,727,532,1146,1022,1191,
- 1148,1254,1211,74,79,501,19,16,20,17,
- 369,1272,44,497,491,695,1657,532,1146,1022,
- 1191,1148,1254,1211,74,78,501,19,16,20,
- 17,369,1272,44,497,491,695,727,532,1146,
- 1022,1191,1148,1254,1211,74,77,501,19,16,
- 20,17,369,1272,44,497,491,695,22,532,
- 1146,1022,1191,1148,1254,1211,74,76,501,19,
- 16,20,17,369,1272,44,497,491,695,727,
- 532,1146,1022,1191,1148,1254,1211,74,75,501,
- 19,16,20,17,369,1272,44,497,491,695,
- 272,532,1146,1022,1191,1148,1254,1211,74,1480,
- 501,19,16,20,17,369,1272,44,497,491,
- 695,727,532,1146,1022,1191,1148,1254,1211,74,
- 1614,501,19,16,20,17,369,42,44,497,
- 491,695,278,532,1146,1022,1191,1148,1254,1211,
- 93,501,19,16,20,17,369,42,44,497,
- 491,695,67,532,1146,1022,1191,1148,1254,1211,
- 93,547,19,16,20,17,369,33,1683,501,
- 19,16,20,17,369,42,37,501,19,16,
- 20,17,369,42,44,497,491,695,1688,532,
- 1146,1022,1191,1148,1254,1211,93,501,19,16,
- 20,17,369,42,44,497,491,695,125,532,
- 1146,1022,1191,1148,1254,1211,93,547,19,16,
- 20,17,369,32,211,501,19,16,20,17,
- 369,42,36,501,19,16,20,17,369,42,
- 44,497,491,695,201,532,1146,1022,1191,1148,
- 1254,1211,93,501,19,16,20,17,369,42,
- 44,497,491,695,151,532,1146,1022,1191,1148,
- 1254,1211,73,161,30,1468,144,250,219,738,
- 202,13,357,19,16,20,17,369,42,35,
- 273,52,1652,673,711,52,157,338,217,1359,
- 220,1470,222,223,228,1575,245,266,1163,370,
- 271,179,262,253,212,276,413,253,212,275,
- 273,191,263,52,605,710,189,178,217,1359,
- 220,1470,222,223,228,555,638,266,1163,370,
- 271,319,1646,373,24,253,212,1246,134,212,
- 1134,1246,939,137,133,135,159,89,260,501,
- 19,16,20,17,369,42,44,497,491,695,
- 198,532,1146,1545,735,259,638,617,139,1573,
- 165,949,415,13,281,1692,1716,143,146,149,
- 152,1078,552,1720,1262,277,273,70,254,212,
- 247,1706,554,593,218,1359,220,1470,222,223,
- 228,1644,897,268,1163,370,271,501,19,16,
- 20,17,369,42,44,497,491,695,1698,532,
- 1473,13,161,30,217,1359,220,1470,222,223,
- 228,156,371,350,415,460,1656,738,1722,501,
- 19,16,20,17,369,42,44,497,491,695,
- 208,1502,501,19,16,20,17,369,42,44,
- 497,491,695,247,1530,647,1611,1721,483,203,
- 282,282,197,199,1644,727,1193,738,738,682,
- 282,545,501,19,16,20,17,369,42,44,
- 497,491,1314,23,240,242,279,217,1359,220,
- 1470,222,223,228,241,227,686,194,324,180,
- 204,1722,501,19,16,20,17,369,42,44,
- 497,491,1315,501,19,16,20,17,369,42,
- 44,497,491,1348,501,19,16,20,17,369,
- 42,44,497,491,1386,198,199,501,19,16,
- 20,17,369,42,44,497,1387,501,19,16,
- 20,17,369,42,44,497,1388,484,717,232,
- 501,19,16,20,17,369,42,35,1644,1572,
- 501,19,16,20,17,369,42,34,70,276,
- 701,134,212,575,273,684,141,133,135,159,
- 282,217,1359,220,1470,222,223,228,748,241,
- 736,266,1163,370,271,1646,226,254,212,1698,
- 1267,140,50,165,243,13,939,357,19,16,
- 20,17,369,42,35,273,1520,1240,437,1706,
- 552,1720,218,1359,220,1470,222,223,228,742,
- 57,246,266,1163,370,271,501,19,16,20,
- 17,369,42,47,323,428,104,265,501,19,
- 16,20,17,369,42,46,501,19,16,20,
- 17,369,42,45,408,19,16,20,17,369,
- 42,43,307,718,13,307,13,161,1720,380,
- 335,13,13,638,530,314,638,314,208,292,
- 555,738,418,1685,211,254,212,1134,513,196,
- 1134,196,13,1698,1639,1721,1698,87,13,87,
- 488,745,87,555,282,771,1489,771,1489,314,
- 312,1656,258,1594,1240,258,735,981,656,1708,
- 981,643,1708,196,729,87,813,1684,244,745,
- 742,87,672,592,70,209,727,230,97,771,
- 1489,681,48,134,212,727,242,351,147,133,
- 135,159,1317,638,134,212,325,224,855,150,
- 133,135,159,134,212,1698,229,196,153,133,
- 135,159,273,282,110,142,95,1706,282,281,
- 1358,1591,615,1488,496,638,638,638,532,268,
- 1163,370,271,638,13,577,590,293,377,1134,
- 196,196,295,509,751,555,754,1134,392,191,
- 755,761,236,767,1789,1789,233,496,496,1789,
- 1789,1789,1149,1686,258,1789,1789,87,1789,1655,
- 1789,1708,258,1789,1789,1546,1789,1355,1789,1708,
- 1789,1789,191,192,1789,1789,1789,1789,1789,1789,
- 1789,1789,1789,1789,1789,1357,1686,1789,1789,1789,
- 1789,1789,1789,1789,1789,1789,1789,1705,1789,0,
- 19,178,0,1,2014,0,1,2025,0
+ 87,11,101,24,24,21,21,32,32,70,
+ 70,1,1,2,2,2,2,3,3,3,
+ 4,5,5,5,5,5,5,5,5,51,
+ 51,71,6,6,6,6,6,6,6,6,
+ 6,6,6,7,7,8,8,8,8,9,
+ 9,9,10,10,10,12,12,12,12,12,
+ 13,13,13,14,14,15,15,16,16,17,
+ 17,18,18,19,19,20,20,20,20,20,
+ 20,20,20,20,20,20,20,102,41,33,
+ 88,88,73,73,47,103,103,103,103,103,
+ 103,103,104,104,104,105,105,110,110,111,
+ 111,106,106,107,107,107,113,113,108,108,
+ 108,108,109,109,109,109,109,112,112,25,
+ 25,25,25,25,28,28,28,79,79,74,
+ 74,74,74,75,75,75,76,76,76,77,
+ 77,77,78,78,78,114,114,115,115,116,
+ 29,31,31,31,31,31,52,54,54,54,
+ 54,54,54,54,54,54,54,54,54,64,
+ 61,61,89,90,65,65,62,62,62,66,
+ 80,80,81,81,67,67,67,42,91,91,
+ 82,83,83,83,63,63,92,84,84,85,
+ 85,68,68,22,23,23,23,30,48,48,
+ 34,34,34,34,37,37,39,35,35,36,
+ 40,40,117,117,38,118,118,93,93,26,
+ 26,26,26,26,26,26,26,26,86,49,
+ 49,49,49,27,56,56,55,55,55,57,
+ 57,50,50,94,94,60,60,58,58,58,
+ 43,43,43,44,45,45,45,46,46,46,
+ 46,53,53,53,59,95,72,72,72,72,
+ 69,96,97,97,98,98,99,99,119,119,
+ 120,120,121,121,121,121,123,123,122,122,
+ 122,124,124,87,87,1,1307,17,21,18,
+ 375,1306,45,531,468,641,738,547,716,678,
+ 1162,1048,1209,1167,75,92,44,135,213,172,
+ 365,282,673,137,134,136,160,501,20,17,
+ 21,18,375,43,45,531,468,641,28,547,
+ 716,678,1162,1048,1496,22,275,139,276,166,
+ 65,1154,161,187,694,663,143,146,149,152,
+ 1069,524,20,17,21,18,375,41,339,1169,
+ 690,1471,1623,1634,1251,432,20,17,21,18,
+ 375,1306,45,531,468,641,374,547,716,678,
+ 1162,1048,1209,1167,75,281,478,20,17,21,
+ 18,375,1306,45,531,468,641,374,547,716,
+ 678,1162,1048,1209,1167,75,281,501,20,17,
+ 21,18,375,43,45,531,468,641,286,547,
+ 716,678,1162,1557,1677,501,20,17,21,18,
+ 375,43,45,1310,287,161,1702,1145,21,286,
+ 1694,1163,292,161,31,1677,501,20,17,21,
+ 18,375,43,45,1311,287,161,31,1387,326,
+ 20,17,21,18,375,1306,45,531,468,641,
+ 374,547,716,678,1162,1048,1209,1167,75,281,
+ 275,20,17,21,18,375,1306,45,531,468,
+ 641,1676,547,716,678,1162,1048,1209,1167,75,
+ 1430,154,13,210,239,547,20,17,21,18,
+ 375,34,288,395,25,161,186,6,1677,501,
+ 20,17,21,18,375,43,40,24,289,455,
+ 20,17,21,18,375,1306,45,531,468,641,
+ 727,547,716,678,1162,1048,1209,1167,75,281,
+ 501,20,17,21,18,375,1306,45,531,468,
+ 641,1570,547,716,678,1162,1048,1209,1167,75,
+ 92,501,20,17,21,18,375,43,45,531,
+ 468,641,290,547,716,678,1489,437,1677,570,
+ 20,17,21,18,375,1306,45,531,468,641,
+ 1689,547,716,678,1162,1048,1209,1167,75,1433,
+ 250,69,299,20,17,21,18,375,1306,45,
+ 531,468,641,339,547,716,678,1162,1048,1209,
+ 1167,75,1435,189,179,596,240,501,20,17,
+ 21,18,375,43,45,531,468,641,67,547,
+ 716,1491,738,1156,70,135,213,255,213,727,
+ 634,137,134,136,160,501,20,17,21,18,
+ 375,43,45,531,468,641,372,547,1436,722,
+ 19,1544,135,213,283,139,144,166,145,134,
+ 136,160,352,1674,143,146,149,152,1069,501,
+ 20,17,21,18,375,43,39,1169,690,1471,
+ 1623,1634,1251,501,20,17,21,18,375,1306,
+ 45,531,468,641,727,547,716,678,1162,1048,
+ 1209,1167,75,93,501,20,17,21,18,375,
+ 1306,45,531,468,641,1559,547,716,678,1162,
+ 1048,1209,1167,75,86,501,20,17,21,18,
+ 375,1306,45,531,468,641,727,547,716,678,
+ 1162,1048,1209,1167,75,85,501,20,17,21,
+ 18,375,1306,45,531,468,641,1560,547,716,
+ 678,1162,1048,1209,1167,75,84,501,20,17,
+ 21,18,375,1306,45,531,468,641,727,547,
+ 716,678,1162,1048,1209,1167,75,83,501,20,
+ 17,21,18,375,1306,45,531,468,641,23,
+ 547,716,678,1162,1048,1209,1167,75,82,501,
+ 20,17,21,18,375,1306,45,531,468,641,
+ 727,547,716,678,1162,1048,1209,1167,75,81,
+ 501,20,17,21,18,375,1306,45,531,468,
+ 641,273,547,716,678,1162,1048,1209,1167,75,
+ 80,501,20,17,21,18,375,1306,45,531,
+ 468,641,727,547,716,678,1162,1048,1209,1167,
+ 75,79,501,20,17,21,18,375,1306,45,
+ 531,468,641,279,547,716,678,1162,1048,1209,
+ 1167,75,78,501,20,17,21,18,375,1306,
+ 45,531,468,641,727,547,716,678,1162,1048,
+ 1209,1167,75,77,501,20,17,21,18,375,
+ 1306,45,531,468,641,280,547,716,678,1162,
+ 1048,1209,1167,75,76,501,20,17,21,18,
+ 375,1306,45,531,468,641,727,547,716,678,
+ 1162,1048,1209,1167,75,74,501,20,17,21,
+ 18,375,1306,45,531,468,641,225,547,716,
+ 678,1162,1048,1209,1167,75,1558,501,20,17,
+ 21,18,375,1306,45,531,468,641,219,547,
+ 716,678,1162,1048,1209,1167,75,1592,501,20,
+ 17,21,18,375,43,45,531,468,641,125,
+ 547,716,678,1162,1048,1209,1167,94,501,20,
+ 17,21,18,375,43,45,531,468,641,413,
+ 547,716,678,1162,1048,1209,1167,94,547,20,
+ 17,21,18,375,33,1603,501,20,17,21,
+ 18,375,43,38,501,20,17,21,18,375,
+ 43,45,531,468,641,1672,547,716,678,1162,
+ 1048,1209,1167,94,501,20,17,21,18,375,
+ 43,45,531,468,641,742,547,716,678,1162,
+ 1048,1209,1167,94,157,545,161,188,370,161,
+ 295,212,191,736,161,297,70,319,198,232,
+ 501,20,17,21,18,375,43,45,531,468,
+ 641,202,547,716,678,1162,1048,1209,1167,94,
+ 151,135,213,1619,274,1621,326,142,134,136,
+ 160,1218,219,1441,221,1469,223,224,229,281,
+ 70,269,342,340,272,1642,274,203,70,727,
+ 711,141,70,166,218,1441,221,1469,223,224,
+ 229,1586,739,267,342,340,272,1590,263,13,
+ 230,277,13,1261,1684,1619,274,684,264,1619,
+ 1648,189,179,580,218,1441,221,1469,223,224,
+ 229,247,293,267,342,340,272,1168,1006,255,
+ 213,1470,1222,135,213,88,738,723,880,138,
+ 134,136,160,341,261,501,20,17,21,18,
+ 375,43,45,531,1390,218,1441,221,1469,223,
+ 224,229,195,140,745,166,554,593,180,1704,
+ 156,350,144,147,150,153,1069,501,20,17,
+ 21,18,375,43,45,531,468,641,718,1439,
+ 501,20,17,21,18,375,43,45,531,468,
+ 641,745,1488,198,200,247,415,194,460,483,
+ 255,213,1277,686,738,1354,1222,501,20,17,
+ 21,18,375,43,45,531,468,1346,501,20,
+ 17,21,18,375,43,45,531,468,1348,218,
+ 1441,221,1469,223,224,229,204,742,552,1702,
+ 194,324,1607,1704,501,20,17,21,18,375,
+ 43,45,531,468,1349,501,20,17,21,18,
+ 375,43,45,531,468,1353,501,20,17,21,
+ 18,375,43,45,531,1391,484,199,200,13,
+ 282,735,717,282,577,282,575,1222,1691,50,
+ 1388,682,1670,1583,357,20,17,21,18,375,
+ 43,36,278,277,241,234,209,243,274,242,
+ 218,1441,221,1469,223,224,229,228,246,701,
+ 748,643,1304,1703,1006,267,342,340,272,357,
+ 20,17,21,18,375,43,36,13,57,323,
+ 880,428,104,135,213,227,513,1621,682,148,
+ 134,136,160,247,219,1441,221,1469,223,224,
+ 229,501,20,17,21,18,375,43,37,501,
+ 20,17,21,18,375,43,36,501,20,17,
+ 21,18,375,43,35,241,501,20,17,21,
+ 18,375,43,48,638,13,1166,501,20,17,
+ 21,18,375,43,47,1716,1682,656,282,97,
+ 351,274,501,20,17,21,18,375,43,46,
+ 408,20,17,21,18,375,43,44,267,342,
+ 340,272,244,307,13,735,307,13,13,13,
+ 647,605,282,266,663,315,1650,663,315,416,
+ 315,1730,580,282,13,738,231,738,1190,197,
+ 1619,1190,197,1619,197,1655,245,88,211,532,
+ 88,590,88,672,90,689,1535,294,689,1535,
+ 689,1535,1642,259,681,1168,259,181,922,205,
+ 1658,922,242,1658,570,135,213,754,48,796,
+ 110,151,134,136,160,142,135,213,377,663,
+ 380,663,154,134,136,160,663,95,274,1621,
+ 615,580,282,197,509,1190,52,751,663,838,
+ 197,663,552,1702,754,269,342,340,272,52,
+ 1232,738,197,88,392,1190,296,1232,254,213,
+ 259,313,755,761,236,1219,710,1658,13,1232,
+ 767,254,213,282,1798,192,52,663,1798,580,
+ 259,1798,192,1618,1798,964,1798,1658,1276,1667,
+ 52,1190,665,1798,193,1605,1667,1798,254,213,
+ 1798,88,1798,1434,1798,665,1798,336,1798,1492,
+ 209,1798,254,213,1798,1798,260,1798,1798,1798,
+ 1798,1798,642,1798,1798,1798,1341,1703,1798,1798,
+ 1798,1798,1247,1798,1798,1016,1798,1798,1798,1798,
+ 1798,1798,1798,1798,1798,1798,1328,1798,0,20,
+ 179,0,1,2024,0,1,2035,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -503,88 +505,88 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface TermAction {
public final static char termAction[] = {0,
- 1789,1799,1574,1800,1450,59,2002,2003,2004,1095,
- 1039,1460,1,1087,1031,380,1801,1802,1803,1804,
- 51,704,499,1951,1952,1950,2005,1953,1949,478,
- 405,1956,1961,1960,1958,1959,1957,1962,1963,1955,
- 1964,1965,1966,1789,1518,1186,1147,1789,1,61,
- 1,1789,190,1,1,1,60,2002,2003,2004,
- 1414,1403,1392,1362,1789,1799,64,1800,54,252,
- 1,1,1,1,1,1,1151,1287,1,1,
+ 1798,1809,1584,1810,1519,60,2012,2013,2014,1511,
+ 1106,1527,1,1098,535,381,1811,1812,1813,1814,
+ 52,729,549,1961,1962,1960,2015,1963,1959,476,
+ 455,1966,1971,1970,1968,1969,1967,1972,1973,1965,
+ 1974,1975,1976,1798,617,1089,640,1798,1,62,
+ 1,1798,191,1,1,1,61,2012,2013,2014,
+ 1405,1394,1368,1357,1798,1809,65,1810,55,253,
+ 1,1,1,1,1,1,1239,695,1,1,
1,1,1,1,1,1,1,1,1,1,
- 190,1,1,1,1789,1,41,1,1984,189,
- 1,1,1,1789,1414,1403,1392,1362,653,1,
- 1786,1414,1403,1392,1362,1427,1437,1,1,1,
- 1,1,1,1779,181,1,1,1,1,1,
- 1,1,1,1,1,1,1,189,1,1,
- 1,1789,1,62,1,1984,190,1,1,1,
- 261,2014,1164,48,1,50,182,1556,2046,1556,
- 1789,1799,1123,1800,1,1,1,1,1,1,
- 509,88,1,1,1,1,1,1,1,1,
- 1,1,1,1,190,1,1,1,1789,1799,
- 66,1800,1984,53,2002,2003,2004,267,2014,1164,
- 669,252,478,405,1332,1319,1548,1536,1548,1536,
- 284,1951,1952,1950,2005,1953,1949,509,68,1956,
- 1961,1960,1958,1959,1957,1962,1963,1955,1964,1965,
- 1966,128,1518,1186,1147,200,1789,2002,2003,2004,
- 264,267,1448,1448,1,252,1,2014,1447,184,
- 2862,1789,2862,1229,1951,1952,1950,2005,1953,1949,
- 509,509,1956,1961,1960,1958,1959,1957,1962,1963,
- 1955,1964,1965,1966,1,1799,1574,1800,1152,1792,
- 70,1789,576,1095,1039,1460,1792,1087,1031,380,
- 1801,1802,1803,1804,1103,704,499,594,1789,1799,
- 1574,1800,1507,1792,1789,1067,1,1095,1039,1460,
- 252,1087,1031,380,1801,1802,1803,1804,72,704,
- 499,970,67,52,1791,1,1799,1574,1800,1450,
- 28,1791,478,405,1095,1039,1460,2855,1087,1031,
- 380,1801,1802,1803,1804,460,704,499,1791,49,
- 1789,1789,1799,1556,1800,2046,1789,1799,1574,1800,
- 1450,1792,653,1253,270,1095,1039,1460,28,1087,
- 1031,380,1801,1802,1803,1804,255,704,499,1789,
- 1,1,1,1,509,1229,642,1704,1,1,
- 1,1789,1,1,1,1,1,1,1,1789,
- 1,1,1548,1536,1789,1195,1791,1789,1799,1574,
- 1800,1450,183,2866,58,2866,1095,1039,1460,653,
- 1087,1031,380,1801,1802,1803,1804,65,704,499,
- 2102,1,1799,1574,1800,1450,205,2872,1287,2872,
- 1095,1039,1460,2855,1087,1031,380,1801,1802,1803,
- 1804,534,704,499,1789,1799,1574,1800,1450,57,
- 1789,1427,1437,1095,1039,1460,2855,1087,1031,380,
- 1801,1802,1803,1804,1789,704,499,1,1799,1574,
- 1800,1450,56,1,2014,1447,1095,1039,1460,2855,
- 1087,1031,380,1801,1802,1803,1804,1789,704,499,
- 1789,1799,1574,1800,1450,1789,1427,1437,1789,1095,
- 1039,1460,71,1087,1031,380,1801,1802,1803,1804,
- 1505,704,499,1789,1799,1576,1800,1450,1789,1427,
- 1437,1789,1095,1039,1460,680,1087,1031,380,1801,
- 1802,1803,1804,1789,704,499,1789,1799,1608,1800,
- 1450,207,1799,42,1800,1095,1039,1460,1789,1087,
- 1031,380,1801,1802,1803,1804,1789,704,499,1,
- 1799,1574,1800,1450,63,1789,1789,460,1095,1039,
- 1460,1794,1087,1031,380,1801,1802,1803,1804,1789,
- 704,499,19,1345,1780,248,1780,1780,178,178,
- 178,1,1,1,1,1723,1793,206,1577,90,
- 1577,1789,1780,928,1,178,178,178,178,178,
- 178,1789,1780,907,886,865,844,823,781,802,
- 760,739,718,129,90,1332,1319,247,1789,2002,
- 2003,2004,130,2002,2003,2004,249,1789,2002,2003,
- 2004,1789,1,1,1,69,1951,1952,1950,2005,
- 1953,1949,31,2046,1194,1951,1952,1950,2005,1953,
- 1949,131,269,1789,1244,1814,1815,2002,2003,2004,
- 132,219,1602,250,1789,55,2002,2003,2004,2002,
- 2003,2004,509,1789,1951,1952,1950,2005,1953,1949,
- 221,509,1626,1951,1952,1950,2005,1953,1949,1,
- 1,1783,1164,991,1302,1794,1,251,1448,576,
- 509,1794,1789,2002,2003,2004,1789,1798,1789,1143,
- 509,1794,1427,1437,1,290,509,1789,1,1794,
- 1793,29,1796,1798,29,693,1793,252,2014,1447,
- 1789,1343,283,1789,210,1011,1793,1301,2045,188,
- 206,1789,1581,188,1793,1582,1789,2026,1789,188,
- 439,184,1789,1817,1789,183,1789,1789,1789,1789,
- 1795,205,1789,1789,1789,1789,1789,697,1797,2710,
- 1789,1789,1789,1789,1789,1301,1789,1789,1789,1789,
- 1789,1789,1789,1789,1797,1789,1789,1789,1789,1789,
- 1789,1789,1789,1789,1047
+ 191,1,1,1,1798,1,42,1,1994,190,
+ 1,1,1,1798,1405,1394,1368,1357,532,1,
+ 1795,1405,1394,1368,1357,1285,1416,1,1,1,
+ 1,1,1,1788,182,1,1,1,1,1,
+ 1,1,1,1,1,1,1,190,1,1,
+ 1,1798,1,63,1,1994,191,1,1,1,
+ 262,2024,1220,49,1,51,183,1562,2056,1562,
+ 1798,1809,995,1810,1,1,1,1,1,1,
+ 510,89,1,1,1,1,1,1,1,1,
+ 1,1,1,1,191,1,1,1,1798,1809,
+ 67,1810,1994,54,2012,2013,2014,268,2024,1220,
+ 743,253,476,455,1330,1317,1547,1536,1547,1536,
+ 285,1961,1962,1960,2015,1963,1959,510,69,1966,
+ 1971,1970,1968,1969,1967,1972,1973,1965,1974,1975,
+ 1976,129,617,1089,640,201,1798,2012,2013,2014,
+ 265,268,1432,1432,1,253,1,2024,1426,185,
+ 2872,1798,2872,667,1961,1962,1960,2015,1963,1959,
+ 510,510,1966,1971,1970,1968,1969,1967,1972,1973,
+ 1965,1974,1975,1976,1,1809,1584,1810,1444,1802,
+ 71,1798,601,1511,1106,1527,1802,1098,535,381,
+ 1811,1812,1813,1814,1170,729,549,619,1798,1809,
+ 1584,1810,1479,1802,1798,1134,1,1511,1106,1527,
+ 253,1098,535,381,1811,1812,1813,1814,73,729,
+ 549,1037,68,53,1801,1,1809,1584,1810,1519,
+ 29,1801,476,455,1511,1106,1527,2865,1098,535,
+ 381,1811,1812,1813,1814,437,729,549,1801,50,
+ 1798,1798,1809,1562,1810,2056,1798,1809,1584,1810,
+ 1519,1802,532,1429,271,1511,1106,1527,29,1098,
+ 535,381,1811,1812,1813,1814,256,729,549,1798,
+ 1,1,1,1,510,667,347,1708,1,1,
+ 1,1798,1,1,1,1,1,1,1,1798,
+ 1,1,1547,1536,1798,1706,1801,1798,1809,1584,
+ 1810,1519,184,2876,59,2876,1511,1106,1527,532,
+ 1098,535,381,1811,1812,1813,1814,66,729,549,
+ 2112,1,1809,1584,1810,1519,206,2882,695,2882,
+ 1511,1106,1527,2865,1098,535,381,1811,1812,1813,
+ 1814,559,729,549,1798,1809,1584,1810,1519,58,
+ 1798,1285,1416,1511,1106,1527,2865,1098,535,381,
+ 1811,1812,1813,1814,1798,729,549,1,1809,1584,
+ 1810,1519,57,1,2024,1426,1511,1106,1527,2865,
+ 1098,535,381,1811,1812,1813,1814,1798,729,549,
+ 1798,1809,1584,1810,1519,1798,1285,1416,1798,1511,
+ 1106,1527,72,1098,535,381,1811,1812,1813,1814,
+ 1545,729,549,1798,1809,1587,1810,1519,1798,1285,
+ 1416,1798,1511,1106,1527,684,1098,535,381,1811,
+ 1812,1813,1814,1798,729,549,1798,1809,1589,1810,
+ 1519,208,1809,43,1810,1511,1106,1527,1798,1098,
+ 535,381,1811,1812,1813,1814,1798,729,549,1,
+ 1809,1584,1810,1519,64,1798,1798,437,1511,1106,
+ 1527,1804,1098,535,381,1811,1812,1813,1814,1798,
+ 729,549,20,1210,1789,248,1789,1789,179,179,
+ 179,2012,2013,2014,1,1710,1803,207,465,91,
+ 465,1798,1789,974,1,179,179,179,179,179,
+ 179,1798,1789,953,932,911,890,869,827,848,
+ 806,785,764,130,91,1330,1317,249,1798,2012,
+ 2013,2014,131,1,1,1,250,1798,2012,2013,
+ 2014,1798,1,1,1,70,1961,1962,1960,2015,
+ 1963,1959,32,2056,1591,1961,1962,1960,2015,1963,
+ 1959,132,270,1798,1431,1824,1825,2012,2013,2014,
+ 133,220,1242,251,1798,56,2012,2013,2014,2012,
+ 2013,2014,510,1798,1961,1962,1960,2015,1963,1959,
+ 222,510,1585,1961,1962,1960,2015,1963,1959,1,
+ 1,1792,1220,1058,486,1804,1,252,1432,601,
+ 510,1804,1798,2012,2013,2014,1798,1808,1798,473,
+ 510,1804,1285,1416,1,291,510,1798,1,1804,
+ 1803,30,1806,1808,30,1159,1803,253,2024,1426,
+ 1798,1345,284,1798,211,1078,1803,1487,2055,189,
+ 207,1798,1588,189,1803,1604,1798,2036,1798,189,
+ 489,185,1798,1827,1798,184,1798,1798,1798,1798,
+ 1805,206,1798,1798,1798,1798,1798,1164,1807,2720,
+ 1798,1798,1798,1798,1798,1487,1798,1798,1798,1798,
+ 1798,1798,1798,1798,1807,1798,1798,1798,1798,1798,
+ 1798,1798,1798,1798,1114
};
};
public final static char termAction[] = TermAction.termAction;
@@ -592,28 +594,28 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface Asb {
public final static char asb[] = {0,
- 370,1,83,41,83,83,83,83,83,83,
- 83,83,83,3,329,403,400,407,405,413,
- 411,415,414,417,416,10,83,329,329,254,
- 254,150,83,221,221,282,329,83,83,83,
- 83,83,83,83,83,83,83,83,83,83,
- 83,83,83,83,83,83,83,83,83,83,
- 83,83,83,83,83,83,83,221,221,221,
- 45,52,286,77,224,219,218,257,269,66,
- 269,66,66,269,66,269,343,175,400,400,
- 405,405,405,405,403,403,411,407,407,414,
- 413,294,416,415,388,68,50,282,286,100,
- 45,366,81,221,300,227,66,254,254,66,
- 254,83,50,286,277,366,45,80,77,221,
- 280,343,220,229,68,120,68,169,171,297,
- 147,68,277,366,83,83,45,81,224,289,
- 288,286,229,221,68,120,169,169,147,48,
- 431,254,83,296,147,50,366,277,45,45,
- 221,300,227,280,120,147,70,120,169,171,
- 428,171,52,45,254,83,50,277,229,120,
- 72,171,147,83,254,45,171,221,220,147,
- 424,83,423,96,286,147,147,255,72,83,
- 96,171
+ 410,1,76,41,76,76,76,76,76,76,
+ 76,76,76,3,350,23,20,27,25,33,
+ 31,35,34,37,36,9,76,350,350,270,
+ 270,391,76,231,231,142,350,76,76,76,
+ 76,76,76,76,76,76,76,76,76,76,
+ 76,76,76,76,76,76,76,76,76,76,
+ 76,76,76,76,76,76,76,231,231,231,
+ 45,52,146,70,240,229,228,117,129,66,
+ 129,66,66,129,66,129,364,185,20,20,
+ 25,25,25,25,23,23,31,27,27,34,
+ 33,279,36,35,281,68,50,142,146,93,
+ 45,387,74,231,321,243,66,270,270,66,
+ 270,76,50,146,137,387,45,73,70,231,
+ 140,364,230,245,68,155,68,234,236,114,
+ 182,68,137,137,76,76,45,74,240,274,
+ 273,146,245,231,68,155,234,234,182,48,
+ 431,270,76,113,182,50,137,387,45,45,
+ 231,321,243,140,155,182,148,155,234,236,
+ 428,236,52,45,270,76,50,387,137,245,
+ 155,150,236,182,76,270,45,236,137,231,
+ 230,182,317,76,316,89,146,182,182,271,
+ 150,76,89,236
};
};
public final static char asb[] = Asb.asb;
@@ -621,49 +623,49 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface Asr {
public final static byte asr[] = {0,
- 80,0,66,20,2,52,67,13,14,11,
- 4,9,10,53,54,47,48,55,56,57,
- 58,61,62,63,64,65,68,69,43,60,
- 70,71,72,73,74,76,75,77,78,79,
+ 80,0,20,2,52,67,13,14,60,70,
+ 71,72,73,74,76,75,77,78,79,4,
+ 53,54,9,10,48,47,55,56,57,58,
+ 61,62,11,63,64,65,43,66,68,69,
59,30,80,29,50,5,0,5,43,20,
52,13,14,11,4,9,10,21,22,15,
- 2,16,17,18,19,1,3,12,0,66,
- 5,4,1,2,59,0,6,7,8,23,
- 50,5,16,17,18,19,3,13,14,11,
- 9,10,21,22,15,4,2,1,0,6,
- 7,8,2,16,17,18,19,1,3,13,
- 14,11,4,9,10,21,22,15,0,24,
- 31,6,32,44,25,33,26,34,35,27,
- 7,36,37,23,45,28,46,38,39,8,
- 40,41,42,1,3,51,5,43,0,5,
- 30,15,16,17,18,19,1,3,2,13,
- 14,11,4,9,10,21,22,0,1,3,
- 5,43,29,0,7,23,28,8,27,26,
+ 2,16,17,18,19,1,3,12,0,6,
+ 7,8,23,50,5,16,17,18,19,3,
+ 13,14,11,9,10,21,22,15,4,2,
+ 1,0,6,7,8,2,16,17,18,19,
+ 1,3,13,14,11,4,9,10,21,22,
+ 15,0,60,20,52,0,39,31,36,34,
+ 35,33,32,37,38,40,41,42,59,66,
+ 28,25,23,24,27,26,6,7,8,29,
+ 1,5,30,2,20,4,0,66,5,4,
+ 1,2,59,0,24,31,6,32,44,25,
+ 33,26,34,35,27,7,36,37,23,45,
+ 28,46,38,39,8,40,41,42,1,3,
+ 51,5,43,0,7,23,28,8,27,26,
25,6,24,52,67,13,14,11,9,10,
53,54,47,48,55,56,57,58,61,62,
63,64,65,68,69,60,70,71,72,73,
74,75,76,77,78,79,4,2,20,29,
- 30,5,0,4,2,20,30,5,24,31,
- 6,32,44,25,33,26,34,35,27,7,
- 36,37,23,45,28,46,38,39,8,40,
- 41,42,49,3,1,0,39,31,36,34,
- 35,33,32,37,38,40,41,42,59,66,
- 28,25,23,24,27,26,6,7,8,29,
- 1,5,30,2,20,4,0,2,5,29,
- 30,66,20,59,0,60,20,52,0,4,
- 24,31,6,32,44,25,33,26,34,35,
- 27,7,36,37,23,45,28,46,38,39,
- 8,40,41,42,1,3,49,0,15,16,
- 17,18,19,2,13,14,11,4,9,10,
- 21,22,1,3,44,45,46,39,31,36,
- 34,35,33,32,37,38,40,41,42,28,
- 25,23,24,27,26,6,7,8,0,15,
+ 30,5,0,1,3,5,43,29,0,4,
+ 2,20,30,5,24,31,6,32,44,25,
+ 33,26,34,35,27,7,36,37,23,45,
+ 28,46,38,39,8,40,41,42,49,3,
+ 1,0,2,5,29,30,66,20,59,0,
+ 11,4,9,10,53,54,47,48,55,56,
+ 57,58,61,62,63,64,65,68,69,60,
+ 70,71,72,73,74,75,76,77,78,79,
+ 50,30,43,80,12,59,66,5,29,0,
+ 4,24,31,6,32,44,25,33,26,34,
+ 35,27,7,36,37,23,45,28,46,38,
+ 39,8,40,41,42,1,3,49,0,15,
+ 16,17,18,19,2,13,14,11,4,9,
+ 10,21,22,1,3,44,45,46,39,31,
+ 36,34,35,33,32,37,38,40,41,42,
+ 28,25,23,24,27,26,6,7,8,0,
+ 5,30,15,16,17,18,19,1,3,2,
+ 13,14,11,4,9,10,21,22,0,15,
16,17,18,19,1,3,2,13,14,11,
- 4,9,10,21,22,51,0,60,70,71,
- 72,73,74,75,76,77,78,79,12,4,
- 53,54,9,10,48,47,55,56,57,58,
- 61,62,11,63,64,65,50,30,43,80,
- 68,69,59,66,5,29,0,5,29,43,
+ 4,9,10,21,22,51,0,5,29,43,
60,0
};
};
@@ -672,28 +674,28 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface Nasb {
public final static byte nasb[] = {0,
- 99,37,18,37,18,18,18,18,18,18,
- 18,18,18,37,95,37,37,37,37,37,
- 37,37,37,37,37,37,18,95,95,40,
- 40,53,96,71,71,79,1,18,18,18,
- 18,18,18,18,18,18,18,18,18,18,
- 18,18,18,96,18,18,18,18,18,18,
- 18,18,18,18,18,18,18,71,71,71,
- 25,18,75,23,78,11,11,61,62,38,
- 62,86,86,62,85,62,56,37,37,37,
- 37,37,37,37,37,37,37,37,37,37,
- 37,37,37,37,37,37,49,108,37,27,
- 25,42,24,71,90,70,7,7,7,7,
- 7,18,16,37,49,42,25,24,73,71,
- 45,30,37,92,51,49,37,49,88,13,
- 49,37,49,42,18,18,25,24,44,11,
- 11,75,92,71,37,104,49,7,9,15,
- 37,7,18,83,9,49,42,73,25,25,
- 71,90,70,64,49,9,20,116,7,88,
- 37,37,17,25,7,18,16,73,112,104,
- 47,88,9,18,7,25,88,71,71,9,
- 21,18,37,47,75,9,9,37,47,18,
- 66,102
+ 111,39,20,39,20,20,20,20,20,20,
+ 20,20,20,39,90,39,39,39,39,39,
+ 39,39,39,39,39,39,20,90,90,15,
+ 15,94,91,78,78,81,1,20,20,20,
+ 20,20,20,20,20,20,20,20,20,20,
+ 20,20,20,91,20,20,20,20,20,20,
+ 20,20,20,20,20,20,20,78,78,78,
+ 24,20,50,22,80,11,11,74,75,42,
+ 75,27,27,75,26,75,69,39,39,39,
+ 39,39,39,39,39,39,39,39,39,39,
+ 39,39,39,39,39,39,64,99,39,29,
+ 24,118,23,78,85,77,7,7,7,7,
+ 7,20,18,39,57,118,24,23,40,78,
+ 60,32,39,87,46,64,39,64,44,13,
+ 64,39,57,64,20,20,24,23,59,11,
+ 11,50,87,78,39,103,64,7,9,17,
+ 39,7,20,48,9,64,64,118,24,24,
+ 78,85,77,53,64,9,66,114,7,44,
+ 39,39,19,24,7,20,18,118,40,107,
+ 103,62,44,9,20,7,24,44,40,78,
+ 78,9,67,20,39,62,50,9,9,39,
+ 62,20,55,97
};
};
public final static byte nasb[] = Nasb.nasb;
@@ -702,17 +704,17 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface Nasr {
public final static char nasr[] = {0,
79,77,76,65,75,74,1,0,32,0,
- 26,0,97,0,69,11,59,5,0,11,
- 70,0,11,5,24,0,5,11,0,79,
- 78,77,76,65,75,74,0,89,0,71,
- 0,56,0,21,45,44,37,35,11,0,
- 90,0,11,88,0,65,61,62,63,64,
- 52,27,0,45,44,37,35,31,0,11,
- 21,0,22,0,31,49,0,21,44,45,
- 11,0,99,0,92,66,0,51,0,31,
- 49,11,25,0,42,11,41,0,11,87,
- 0,95,0,81,11,42,0,45,44,31,
- 0,93,11,25,0,11,42,67,0
+ 26,0,97,0,71,0,69,11,59,5,
+ 0,11,5,24,0,92,66,0,5,11,
+ 0,79,78,77,76,65,75,74,0,22,
+ 0,89,0,51,0,90,0,99,0,27,
+ 49,0,45,44,37,35,27,0,21,45,
+ 44,37,35,11,0,11,70,0,65,61,
+ 62,63,64,52,28,0,11,21,0,21,
+ 44,45,11,0,27,49,11,25,0,42,
+ 11,41,0,11,88,0,95,0,45,44,
+ 27,0,81,11,42,0,93,11,25,0,
+ 11,87,0,11,42,67,0,56,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -738,18 +740,18 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
100,0,0,0,102,106,107,108,109,110,
- 0,111,112,113,114,115,116,117,118,119,
- 97,129,0,96,122,150,128,0,0,0,
- 0,98,0,146,148,0,149,0,0,0,
- 101,141,159,160,161,0,121,137,147,156,
- 0,131,136,0,151,154,155,158,0,104,
- 132,133,134,135,138,0,140,145,162,99,
- 103,105,120,123,124,125,126,127,130,0,
- 139,143,0,0,144,153,95,0,0,0,
- 142,0,152,157,0,163,164,0,165,0,
+ 0,111,112,113,114,115,116,117,0,118,
+ 97,128,0,96,121,149,0,127,0,0,
+ 0,98,0,145,147,0,148,0,0,0,
+ 101,140,158,159,160,0,120,136,146,155,
+ 0,130,135,0,150,153,154,157,0,104,
+ 131,132,133,134,137,0,139,144,161,99,
+ 103,105,119,122,123,124,125,126,129,0,
+ 138,142,0,0,143,152,95,0,0,0,
+ 141,0,151,156,0,162,163,0,164,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0
+ 0,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -779,9 +781,9 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 63,61,5,63,26,26,61,53,106,46,
+ 63,61,5,63,26,26,61,53,107,46,
26,40,46,26,67,6,5,5,19,99,
- 98,44,26,37,3,69,67,7,107,5,
+ 98,44,26,37,3,69,67,7,108,5,
67,40,38,40
};
};
@@ -812,20 +814,20 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 140,20,0,96,0,189,104,0,31,136,
+ 140,20,0,96,0,189,104,0,31,135,
0,144,165,104,12,152,0,98,0,0,
148,104,2,137,0,97,0,148,104,2,
0,151,2,0,113,23,179,104,20,0,
113,179,104,23,20,0,113,23,20,0,
113,179,104,20,0,113,20,0,130,0,
- 2,0,152,97,0,2,97,0,148,104,
- 2,130,0,2,0,151,97,0,141,2,
+ 2,0,151,97,0,2,97,0,148,104,
+ 2,130,0,2,0,150,97,0,141,2,
0,144,177,104,12,94,185,44,0,98,
0,144,177,104,12,185,44,0,135,0,
- 99,0,184,104,135,0,104,135,0,142,
+ 99,0,184,104,135,0,104,135,0,141,
99,0,173,104,12,183,94,182,158,0,
- 173,104,12,182,158,0,195,85,0,77,
- 2,101,97,99,0,195,114,134,2,89,
+ 173,104,12,182,158,0,196,85,0,77,
+ 2,101,97,99,0,196,114,134,2,89,
0,53,0,0,134,69,111,0,29,118,
0,153,2,0,97,107,0,153,2,15,
0,144,165,104,12,114,153,2,0,97,
@@ -838,15 +840,15 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public interface ScopeState {
public final static char scopeState[] = {0,
- 1490,0,1685,1686,1652,0,397,0,1488,1343,
- 1447,1270,1240,1164,1134,0,638,1196,314,0,
- 1470,1359,1163,370,1240,1164,1134,1656,1448,1489,
- 0,1087,1031,380,1507,1152,1564,460,642,1229,
- 576,1332,1319,1287,1437,1427,1414,1403,1392,1362,
- 1556,1548,1536,478,405,1460,1450,1095,1039,704,
- 499,1103,1067,1047,1011,991,970,949,617,1123,
- 594,509,928,907,886,865,844,823,802,781,
- 760,739,718,314,669,555,534,418,439,345,
+ 1163,0,1655,1667,1648,0,374,0,1470,1345,
+ 1426,1261,1168,1220,1190,0,663,1251,315,0,
+ 1469,1441,342,340,1168,1220,1190,1642,1432,1535,
+ 0,1098,535,381,1479,1444,1570,437,347,667,
+ 601,1330,1317,695,1416,1285,1405,1394,1368,1357,
+ 1562,1547,1536,476,455,1527,1519,1511,1106,729,
+ 549,1170,1134,1114,1078,1058,1037,1016,642,995,
+ 619,510,974,953,932,911,890,869,848,827,
+ 806,785,764,315,743,580,559,416,489,395,
0
};
};
@@ -865,18 +867,18 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
134,114,104,20,2,138,137,167,168,158,
169,46,45,170,44,171,172,94,101,101,
103,103,103,103,102,102,106,105,105,108,
- 107,134,110,109,114,114,12,142,124,23,
+ 107,134,110,109,114,114,12,142,120,23,
113,104,4,151,104,2,182,159,159,185,
- 159,59,104,124,4,104,113,179,149,148,
+ 159,59,104,120,4,104,113,179,149,148,
118,104,150,104,94,12,94,12,165,104,
- 12,152,4,104,179,23,113,4,2,128,
+ 12,152,4,120,179,23,113,4,2,128,
130,104,29,148,183,104,12,104,144,29,
- 189,52,20,190,104,12,104,149,113,113,
+ 189,52,20,190,104,12,120,104,113,113,
141,104,2,142,12,173,135,174,104,177,
- 94,178,60,140,52,20,104,149,104,104,
- 104,177,144,60,29,140,165,148,186,173,
- 184,59,141,2,104,144,144,29,29,59,
- 142,125
+ 94,178,60,140,52,20,104,104,149,104,
+ 104,104,177,144,60,29,140,165,149,148,
+ 186,173,184,59,141,2,104,144,144,29,
+ 29,59,142,125
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -997,12 +999,11 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
"shift_expression",
"relational_expression",
"equality_expression",
- "AND_expression",
- "exclusive_OR_expression",
- "inclusive_OR_expression",
- "logical_AND_expression",
- "logical_OR_expression",
- "conditional_expression",
+ "and_expression",
+ "exclusive_or_expression",
+ "inclusive_or_expression",
+ "logical_and_expression",
+ "logical_or_expression",
"assignment_expression",
"expression_list_actual",
"constant_expression",
@@ -1072,20 +1073,20 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 212,
+ NUM_STATES = 214,
NT_OFFSET = 93,
- LA_STATE_OFFSET = 2102,
+ LA_STATE_OFFSET = 2112,
MAX_LA = 2,
- NUM_RULES = 313,
- NUM_NONTERMINALS = 123,
- NUM_SYMBOLS = 216,
+ NUM_RULES = 314,
+ NUM_NONTERMINALS = 124,
+ NUM_SYMBOLS = 217,
SEGMENT_SIZE = 8192,
- START_STATE = 1579,
+ START_STATE = 1660,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 80,
EOLT_SYMBOL = 80,
- ACCEPT_ACTION = 1779,
- ERROR_ACTION = 1789;
+ ACCEPT_ACTION = 1788,
+ ERROR_ACTION = 1798;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
index 41b85c4762..b480dbab10 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
@@ -17,19 +17,28 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-public class C99NoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression >
+public class C99NoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTExpression >
+ , ISecondaryParser< IASTExpression >
{
private static ParseTable prs = new C99NoCastExpressionParserprs();
private FixedBacktrackingParser btParser;
@@ -167,7 +176,11 @@ public class C99NoCastExpressionParser extends PrsStream implements RuleAction ,
private C99BuildASTParserAction action;
private IASTCompletionNode compNode;
-public C99NoCastExpressionParser() { // constructor
+
+public C99NoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set<IParser.Options> options) {
+ initActions(options);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
private void initActions(Set<IParser.Options> options) {
@@ -186,10 +199,9 @@ public void addToken(IToken token) {
}
-public IASTExpression parse(Set<IParser.Options> options) {
+public IASTExpression parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(options);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
@@ -232,12 +244,12 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99NoCastExpressionParsersym.TK_EOF_TOKEN));
}
-public C99NoCastExpressionParser(IParserActionTokenProvider parser) { // constructor
+public C99NoCastExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
+ initActions(options);
tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -250,1005 +262,1011 @@ public C99NoCastExpressionParser(IParserActionTokenProvider parser) { // constr
}
//
- // Rule 12: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 13: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 14: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 15: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 17: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 17: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 18: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 18: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 21: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 22: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 23: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 24: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 26: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 27: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 27: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 41: unary_expression ::= sizeof ( type_id )
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 42: unary_expression ::= sizeof ( type_id )
//
- case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 48: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 49: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 51: shift_expression ::= shift_expression << additive_expression
+ // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
//
- case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression >> additive_expression
+ // Rule 52: shift_expression ::= shift_expression << additive_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 54: relational_expression ::= relational_expression < shift_expression
+ // Rule 53: shift_expression ::= shift_expression >> additive_expression
//
- case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 55: relational_expression ::= relational_expression > shift_expression
+ // Rule 55: relational_expression ::= relational_expression < shift_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 56: relational_expression ::= relational_expression <= shift_expression
+ // Rule 56: relational_expression ::= relational_expression > shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression >= shift_expression
+ // Rule 57: relational_expression ::= relational_expression <= shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 59: equality_expression ::= equality_expression == relational_expression
+ // Rule 58: relational_expression ::= relational_expression >= shift_expression
//
- case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression != relational_expression
+ // Rule 60: equality_expression ::= equality_expression == relational_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 62: AND_expression ::= AND_expression & equality_expression
+ // Rule 61: equality_expression ::= equality_expression != relational_expression
//
- case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 63: and_expression ::= and_expression & equality_expression
//
- case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 72: { action. consumeExpressionConditional(); break;
+ case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 74: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 73: { action. consumeExpressionConditional(); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 75: assignment_expression ::= unary_expression = assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression += assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 87: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
//
- case 87: { action. consumeExpressionList(); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 89: expression_list_opt ::= $Empty
+ // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
//
- case 89: { action. consumeEmpty(); break;
+ case 88: { action. consumeExpressionList(); break;
}
//
- // Rule 99: statement ::= ERROR_TOKEN
+ // Rule 90: expression_list_opt ::= $Empty
//
- case 99: { action. consumeStatementProblem(); break;
+ case 90: { action. consumeEmpty(); break;
}
//
- // Rule 100: labeled_statement ::= identifier_token : statement
+ // Rule 100: statement ::= ERROR_TOKEN
//
- case 100: { action. consumeStatementLabeled(); break;
+ case 100: { action. consumeStatementProblem(); break;
}
//
- // Rule 101: labeled_statement ::= case constant_expression : statement
+ // Rule 101: labeled_statement ::= identifier_token : statement
//
- case 101: { action. consumeStatementCase(); break;
+ case 101: { action. consumeStatementLabeled(); break;
}
//
- // Rule 102: labeled_statement ::= default : statement
+ // Rule 102: labeled_statement ::= case constant_expression : statement
//
- case 102: { action. consumeStatementDefault(); break;
+ case 102: { action. consumeStatementCase(); break;
}
//
- // Rule 103: compound_statement ::= { }
+ // Rule 103: labeled_statement ::= default : statement
//
- case 103: { action. consumeStatementCompoundStatement(false); break;
+ case 103: { action. consumeStatementDefault(); break;
}
//
- // Rule 104: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 104: compound_statement ::= { }
//
- case 104: { action. consumeStatementCompoundStatement(true); break;
+ case 104: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 108: block_item ::= declaration
+ // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 105: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 109: expression_statement ::= ;
+ // Rule 109: block_item ::= declaration
//
- case 109: { action. consumeStatementNull(); break;
+ case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 110: expression_statement ::= expression_in_statement ;
+ // Rule 110: expression_statement ::= ;
//
- case 110: { action. consumeStatementExpression(); break;
+ case 110: { action. consumeStatementNull(); break;
}
//
- // Rule 111: selection_statement ::= if ( expression ) statement
+ // Rule 111: expression_statement ::= expression_in_statement ;
//
- case 111: { action. consumeStatementIf(false); break;
+ case 111: { action. consumeStatementExpression(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement else statement
+ // Rule 112: selection_statement ::= if ( expression ) statement
//
- case 112: { action. consumeStatementIf(true); break;
+ case 112: { action. consumeStatementIf(false); break;
}
//
- // Rule 113: selection_statement ::= switch ( expression ) statement
+ // Rule 113: selection_statement ::= if ( expression ) statement else statement
//
- case 113: { action. consumeStatementSwitch(); break;
+ case 113: { action. consumeStatementIf(true); break;
}
//
- // Rule 115: expression_opt ::= $Empty
+ // Rule 114: selection_statement ::= switch ( expression ) statement
//
- case 115: { action. consumeEmpty(); break;
+ case 114: { action. consumeStatementSwitch(); break;
}
//
- // Rule 116: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 116: expression_opt ::= $Empty
//
- case 116: { action. consumeStatementDoLoop(); break;
+ case 116: { action. consumeEmpty(); break;
}
//
- // Rule 117: iteration_statement ::= while ( expression ) statement
+ // Rule 117: iteration_statement ::= do statement while ( expression ) ;
//
- case 117: { action. consumeStatementWhileLoop(); break;
+ case 117: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 118: iteration_statement ::= while ( expression ) statement
//
- case 118: { action. consumeStatementForLoop(); break;
+ case 118: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 119: { action. consumeStatementForLoop(); break;
}
//
- // Rule 120: jump_statement ::= goto identifier_token ;
+ // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 120: { action. consumeStatementGoto(); break;
+ case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= continue ;
+ // Rule 121: jump_statement ::= goto identifier_token ;
//
- case 121: { action. consumeStatementContinue(); break;
+ case 121: { action. consumeStatementGoto(); break;
}
//
- // Rule 122: jump_statement ::= break ;
+ // Rule 122: jump_statement ::= continue ;
//
- case 122: { action. consumeStatementBreak(); break;
+ case 122: { action. consumeStatementContinue(); break;
}
//
- // Rule 123: jump_statement ::= return ;
+ // Rule 123: jump_statement ::= break ;
//
- case 123: { action. consumeStatementReturn(false); break;
+ case 123: { action. consumeStatementBreak(); break;
}
//
- // Rule 124: jump_statement ::= return expression ;
+ // Rule 124: jump_statement ::= return ;
//
- case 124: { action. consumeStatementReturn(true); break;
+ case 124: { action. consumeStatementReturn(false); break;
}
//
- // Rule 125: declaration ::= declaration_specifiers ;
+ // Rule 125: jump_statement ::= return expression ;
//
- case 125: { action. consumeDeclarationSimple(false); break;
+ case 125: { action. consumeStatementReturn(true); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 126: declaration ::= declaration_specifiers ;
//
- case 126: { action. consumeDeclarationSimple(true); break;
+ case 126: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 127: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 127: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 128: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 131: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 156: init_declarator ::= complete_declarator = initializer
+ // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 156: { action. consumeDeclaratorWithInitializer(true); break;
+ case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 158: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 157: init_declarator ::= complete_declarator = initializer
//
- case 158: { action. consumeToken(); break;
+ case 157: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 164: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 164: { action. consumeToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
- // Rule 177: type_name_specifier ::= identifier_token
+ // Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 177: { action. consumeToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
- // Rule 178: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 178: type_name_specifier ::= identifier_token
//
- case 178: { action. consumeTypeSpecifierComposite(false); break;
+ case 178: { action. consumeToken(); break;
}
//
- // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 179: { action. consumeTypeSpecifierComposite(true); break;
+ case 179: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 184: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 184: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 180: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 185: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 186: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 192: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 192: { action. consumeStructDeclaration(true); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 193: { action. consumeStructDeclaration(false); break;
+ case 193: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 194: struct_declaration ::= ERROR_TOKEN
+ // Rule 194: struct_declaration ::= specifier_qualifier_list ;
//
- case 194: { action. consumeDeclarationProblem(); break;
+ case 194: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 200: struct_declarator ::= : constant_expression
+ // Rule 195: struct_declaration ::= ERROR_TOKEN
//
- case 200: { action. consumeBitField(false); break;
+ case 195: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 201: struct_declarator ::= declarator : constant_expression
+ // Rule 201: struct_declarator ::= : constant_expression
//
- case 201: { action. consumeBitField(true); break;
+ case 201: { action. consumeBitField(false); break;
}
//
- // Rule 202: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 202: struct_declarator ::= declarator : constant_expression
//
- case 202: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 202: { action. consumeBitField(true); break;
}
//
- // Rule 203: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 203: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 203: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 209: enumerator ::= identifier_token
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 209: { action. consumeEnumerator(false); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 210: enumerator ::= identifier_token = constant_expression
+ // Rule 210: enumerator ::= identifier_token
//
- case 210: { action. consumeEnumerator(true); break;
+ case 210: { action. consumeEnumerator(false); break;
}
//
- // Rule 211: type_qualifier ::= type_qualifier_token
+ // Rule 211: enumerator ::= identifier_token = constant_expression
//
- case 211: { action. consumeToken(); break;
+ case 211: { action. consumeEnumerator(true); break;
}
//
- // Rule 215: function_specifier ::= inline
+ // Rule 212: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeToken(); break;
+ case 212: { action. consumeToken(); break;
}
//
- // Rule 217: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 216: function_specifier ::= inline
//
- case 217: { action. consumeDeclaratorWithPointer(true); break;
+ case 216: { action. consumeToken(); break;
}
//
- // Rule 222: basic_direct_declarator ::= declarator_id_name
+ // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 222: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 218: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 223: basic_direct_declarator ::= ( declarator )
+ // Rule 223: basic_direct_declarator ::= declarator_id_name
//
- case 223: { action. consumeDirectDeclaratorBracketed(); break;
+ case 223: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 224: declarator_id_name ::= identifier
+ // Rule 224: basic_direct_declarator ::= ( declarator )
//
- case 224: { action. consumeIdentifierName(); break;
+ case 224: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 225: declarator_id_name ::= identifier
//
- case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 225: { action. consumeIdentifierName(); break;
}
//
- // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 228: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 229: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 231: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 231: { action. consumeDeclaratorWithPointer(true); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 232: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 234: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 234: { action. consumeDeclaratorWithPointer(true); break;
+ case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 235: identifier_list ::= identifier
+ // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 235: { action. consumeIdentifierKnR(); break;
+ case 235: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 236: identifier_list ::= identifier_list , identifier
+ // Rule 236: identifier_list ::= identifier
//
case 236: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 237: array_modifier ::= [ ]
+ // Rule 237: identifier_list ::= identifier_list , identifier
//
- case 237: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 238: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 238: array_modifier ::= [ ]
//
- case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 238: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 239: array_modifier ::= [ assignment_expression ]
+ // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 239: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 240: array_modifier ::= [ assignment_expression ]
//
- case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 240: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 241: array_modifier ::= [ static assignment_expression ]
+ // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 242: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 242: array_modifier ::= [ static assignment_expression ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 244: array_modifier ::= [ * ]
+ // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 245: array_modifier ::= [ * ]
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 247: pointer_seq ::= pointer_hook *
+ // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 247: { action. consumePointer(); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 248: pointer_seq ::= pointer_seq pointer_hook *
+ // Rule 248: pointer_seq ::= pointer_hook * pointer_hook
//
case 248: { action. consumePointer(); break;
}
//
- // Rule 249: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 249: { action. consumePointerTypeQualifierList(); break;
+ case 249: { action. consumePointer(); break;
}
//
- // Rule 250: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 250: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
case 250: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 254: parameter_type_list ::= parameter_list
+ // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 254: { action. consumeEmpty(); break;
+ case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 255: parameter_type_list ::= parameter_list , ...
+ // Rule 255: parameter_type_list ::= parameter_list
//
- case 255: { action. consumePlaceHolder(); break;
+ case 255: { action. consumeEmpty(); break;
}
//
- // Rule 256: parameter_type_list ::= ...
+ // Rule 256: parameter_type_list ::= parameter_list , ...
//
case 256: { action. consumePlaceHolder(); break;
}
//
- // Rule 259: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 257: parameter_type_list ::= ...
//
- case 259: { action. consumeParameterDeclaration(); break;
+ case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 260: parameter_declaration ::= declaration_specifiers
+ // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 260: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 260: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 263: type_id ::= specifier_qualifier_list
+ // Rule 261: parameter_declaration ::= declaration_specifiers
//
- case 263: { action. consumeTypeId(false); break;
+ case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 264: type_id ::= specifier_qualifier_list abstract_declarator
+ // Rule 264: type_id ::= specifier_qualifier_list
//
- case 264: { action. consumeTypeId(true); break;
+ case 264: { action. consumeTypeId(false); break;
}
//
- // Rule 266: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 266: { action. consumeDeclaratorWithPointer(false); break;
+ case 265: { action. consumeTypeId(true); break;
}
//
- // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq
//
case 267: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 271: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 271: { action. consumeDirectDeclaratorBracketed(); break;
+ case 268: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 272: array_direct_abstract_declarator ::= array_modifier
+ // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 272: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 272: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 273: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 273: array_direct_abstract_declarator ::= array_modifier
//
- case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 274: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 275: function_direct_abstract_declarator ::= ( )
+ // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 276: function_direct_abstract_declarator ::= ( )
+ //
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 277: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 279: initializer ::= assignment_expression
+ // Rule 280: initializer ::= assignment_expression
//
- case 279: { action. consumeInitializer(); break;
+ case 280: { action. consumeInitializer(); break;
}
//
- // Rule 280: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
+ // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
//
- case 280: { action. consumeInitializerList(); break;
+ case 281: { action. consumeInitializerList(); break;
}
//
- // Rule 281: initializer ::= { <openscope-ast> }
+ // Rule 282: initializer ::= { <openscope-ast> }
//
- case 281: { action. consumeInitializerList(); break;
+ case 282: { action. consumeInitializerList(); break;
}
//
- // Rule 282: start_initializer_list ::= $Empty
+ // Rule 283: start_initializer_list ::= $Empty
//
- case 282: { action. initializerListStart(); break;
+ case 283: { action. initializerListStart(); break;
}
//
- // Rule 283: end_initializer_list ::= $Empty
+ // Rule 284: end_initializer_list ::= $Empty
//
- case 283: { action. initializerListEnd(); break;
+ case 284: { action. initializerListEnd(); break;
}
//
- // Rule 288: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 288: { action. consumeInitializerDesignated(); break;
+ case 289: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 292: designator_base ::= [ constant_expression ]
+ // Rule 293: designator_base ::= [ constant_expression ]
//
- case 292: { action. consumeDesignatorArray(); break;
+ case 293: { action. consumeDesignatorArray(); break;
}
//
- // Rule 293: designator_base ::= . identifier_token
+ // Rule 294: designator_base ::= . identifier_token
//
- case 293: { action. consumeDesignatorField(); break;
+ case 294: { action. consumeDesignatorField(); break;
}
//
- // Rule 294: designator ::= [ constant_expression ]
+ // Rule 295: designator ::= [ constant_expression ]
//
- case 294: { action. consumeDesignatorArray(); break;
+ case 295: { action. consumeDesignatorArray(); break;
}
//
- // Rule 295: designator ::= . identifier_token
+ // Rule 296: designator ::= . identifier_token
//
- case 295: { action. consumeDesignatorField(); break;
+ case 296: { action. consumeDesignatorField(); break;
}
//
- // Rule 296: translation_unit ::= external_declaration_list
+ // Rule 297: translation_unit ::= external_declaration_list
//
- case 296: { action. consumeTranslationUnit(); break;
+ case 297: { action. consumeTranslationUnit(); break;
}
//
- // Rule 297: translation_unit ::= $Empty
+ // Rule 298: translation_unit ::= $Empty
//
- case 297: { action. consumeTranslationUnit(); break;
+ case 298: { action. consumeTranslationUnit(); break;
}
//
- // Rule 302: external_declaration ::= ;
+ // Rule 303: external_declaration ::= ;
//
- case 302: { action. consumeDeclarationEmpty(); break;
+ case 303: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 303: external_declaration ::= ERROR_TOKEN
+ // Rule 304: external_declaration ::= ERROR_TOKEN
//
- case 303: { action. consumeDeclarationProblem(); break;
+ case 304: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 306: { action. consumeFunctionDefinition(true); break;
+ case 307: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 307: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 307: { action. consumeFunctionDefinition(false); break;
+ case 308: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 308: { action. consumeFunctionDefinitionKnR(); break;
+ case 309: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 309: function_body ::= { }
+ // Rule 310: function_body ::= { }
//
- case 309: { action. consumeStatementCompoundStatement(false); break;
+ case 310: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 310: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 311: function_body ::= { <openscope-ast> block_item_list }
//
- case 310: { action. consumeStatementCompoundStatement(true); break;
+ case 311: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 312: no_cast_start ::= ERROR_TOKEN
+ // Rule 313: no_cast_start ::= ERROR_TOKEN
//
- case 312: { action. consumeEmpty(); break;
+ case 313: { action. consumeEmpty(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
index 8f5cacf102..e5eaae6b6a 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
@@ -34,185 +34,182 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseCheck {
public final static short baseCheck[] = {0,
- 0,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,3,1,1,
- 4,4,3,3,2,2,8,1,0,1,
- 1,2,2,2,2,2,2,2,2,2,
- 4,1,1,3,3,3,1,3,3,1,
- 3,3,1,3,3,3,3,1,3,3,
- 1,3,1,3,1,3,1,3,1,3,
- 1,5,1,3,3,3,3,3,3,3,
- 3,3,3,3,1,1,2,1,0,1,
- 3,1,1,1,1,1,1,1,1,3,
- 4,3,2,4,1,2,1,1,1,2,
- 5,7,5,1,0,7,5,9,8,3,
- 2,2,2,3,2,4,2,2,2,2,
- 2,1,1,1,1,2,1,2,2,2,
- 1,2,2,1,2,2,1,2,2,1,
- 2,2,1,3,1,3,1,1,1,1,
+ 0,0,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,3,1,
+ 1,4,4,3,3,2,2,8,1,0,
+ 1,1,2,2,2,2,2,2,2,2,
+ 2,4,1,1,3,3,3,1,3,3,
+ 1,3,3,1,3,3,3,3,1,3,
+ 3,1,3,1,3,1,3,1,3,1,
+ 3,1,5,1,3,3,3,3,3,3,
+ 3,3,3,3,3,1,1,2,1,0,
+ 1,3,1,1,1,1,1,1,1,1,
+ 3,4,3,2,4,1,2,1,1,1,
+ 2,5,7,5,1,0,7,5,9,8,
+ 3,2,2,2,3,2,4,2,2,2,
+ 2,2,1,1,1,1,2,1,2,2,
+ 2,1,2,2,1,2,2,1,2,2,
+ 1,2,2,1,3,1,3,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,6,8,0,
- 0,1,1,3,3,3,0,1,0,1,
- 2,4,2,1,1,1,3,1,1,2,
- 3,7,8,0,1,0,1,3,1,3,
- 1,1,1,1,1,1,3,1,1,1,
- 1,1,3,1,2,2,1,5,3,1,
- 3,5,1,3,1,3,2,4,3,5,
- 4,6,6,3,5,1,2,3,4,5,
- 0,1,2,1,3,1,1,3,2,1,
- 1,1,1,2,1,2,3,1,1,1,
- 3,1,2,2,2,3,4,5,1,7,
- 3,0,0,1,1,3,3,4,1,1,
- 2,3,2,3,2,1,0,1,2,1,
- 1,1,1,1,2,4,3,6,2,4,
- 1,1,-32,0,0,0,0,0,0,0,
- 0,0,0,-76,0,0,0,0,0,0,
- 0,0,0,0,0,-78,-114,0,-2,0,
- 0,0,0,-120,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-4,0,-15,-72,-115,
- 0,-126,0,0,0,0,0,-110,0,0,
+ 1,1,1,1,1,1,1,1,6,8,
+ 0,0,1,1,3,3,3,0,1,0,
+ 1,2,4,2,1,1,1,3,1,1,
+ 2,3,7,8,0,1,0,1,3,1,
+ 3,1,1,1,1,1,1,3,1,1,
+ 1,1,1,3,1,2,2,1,5,3,
+ 1,3,5,1,3,1,3,2,4,3,
+ 5,4,6,6,3,5,1,3,4,5,
+ 6,0,1,2,1,3,1,1,3,2,
+ 1,1,1,1,2,1,2,3,1,1,
+ 1,3,1,2,2,2,3,4,5,1,
+ 7,3,0,0,1,1,3,3,4,1,
+ 1,2,3,2,3,2,1,0,1,2,
+ 1,1,1,1,1,2,4,3,6,2,
+ 4,1,1,-32,0,0,0,0,0,0,
+ 0,0,0,0,-156,0,0,0,0,0,
+ 0,0,0,0,0,0,-114,0,-72,-2,
+ -29,0,0,0,0,-54,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-137,0,-116,0,-132,
- 0,0,0,-6,0,0,0,0,0,0,
- 0,0,0,-117,0,0,-184,0,0,0,
+ 0,0,0,0,0,0,-137,0,-115,0,
+ -116,0,-4,0,0,0,0,0,-6,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-157,0,0,
+ 0,0,0,-120,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-55,0,
+ 0,0,0,0,-184,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-145,0,0,0,
- 0,0,0,0,0,-16,-104,-17,0,0,
- 0,0,0,0,-118,0,0,0,-79,-18,
- 0,-19,-73,-147,-29,0,-70,0,0,0,
+ 0,0,0,0,0,-55,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-110,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-78,0,-15,-104,
+ -133,-33,0,0,-34,0,-16,0,-193,0,
+ 0,0,0,-117,0,-17,0,-157,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-180,0,0,0,0,0,0,0,0,
- 0,0,-20,0,0,0,0,0,0,0,
- 0,0,-3,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-70,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-51,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-30,
- 0,-107,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-118,
+ 0,0,0,-5,0,0,0,0,0,0,
+ 0,0,-18,-86,0,0,0,-7,0,0,
+ 0,0,0,0,0,0,-180,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-21,-125,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-3,0,0,
+ 0,0,0,0,0,0,0,0,-132,0,
+ 0,0,0,0,0,0,0,0,-51,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-129,0,-141,0,-52,
+ 0,0,0,0,-30,0,-107,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -122,0,0,0,-67,-22,0,0,0,0,
- -156,0,0,0,0,0,-27,0,0,0,
+ 0,0,0,0,0,0,0,0,-73,-125,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-23,0,
- -159,0,0,0,-162,0,0,0,0,0,
- -37,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-56,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-57,0,0,0,
- 0,0,0,0,0,0,0,-24,0,0,
- 0,0,0,0,0,0,0,-58,0,0,
- 0,0,0,0,0,0,0,0,-25,0,
- 0,0,0,0,0,0,0,0,-59,0,
- 0,0,0,0,0,0,0,0,0,-26,
- 0,0,0,0,0,0,0,0,0,-60,
+ -129,0,-165,0,0,-83,0,-48,0,0,
0,0,0,0,0,0,0,0,0,0,
- -68,0,0,0,0,0,0,0,0,0,
- -61,0,0,0,0,0,0,0,0,0,
- 0,-84,0,0,0,0,0,0,0,0,
- 0,-62,0,0,0,0,0,0,0,0,
- 0,0,-87,0,0,0,0,0,0,0,
- 0,0,-63,0,0,0,0,0,0,0,
- 0,0,0,-88,0,0,0,0,0,0,
- 0,0,0,-64,0,0,0,0,0,0,
- 0,0,0,0,-89,0,0,0,0,0,
- 0,0,0,0,-65,0,0,0,0,0,
- 0,0,0,0,0,-90,0,0,0,0,
- 0,0,0,0,0,-66,0,0,0,0,
- 0,0,0,0,0,0,-91,0,0,0,
- 0,0,0,0,0,0,-142,0,0,0,
- 0,0,0,0,0,0,0,-92,0,0,
- 0,0,0,0,0,0,0,-143,0,0,
- 0,0,0,0,0,0,0,0,-136,0,
- 0,0,0,0,0,0,0,0,-160,0,
- 0,0,0,0,0,0,0,0,0,-173,
- 0,0,0,0,0,0,0,0,-183,0,
- 0,0,0,0,0,0,0,0,0,-174,
- 0,0,0,0,0,0,0,0,-93,0,
- 0,0,-177,-94,0,-7,0,0,0,0,
- 0,0,0,-191,0,0,0,0,0,0,
+ 0,0,0,0,0,-67,0,0,0,0,
+ 0,0,-85,0,0,0,0,-52,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-199,0,0,0,0,0,0,
- 0,0,0,0,-133,0,0,0,0,0,
- 0,0,0,0,-161,0,-182,0,0,0,
- -8,0,0,0,0,0,0,0,-207,0,
+ 0,0,0,-19,0,0,-20,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-119,0,
- 0,0,0,0,0,0,0,0,0,-95,
- 0,0,0,0,0,0,0,0,-96,-192,
- 0,-97,-81,-98,0,-54,0,0,0,0,
- 0,0,0,0,0,0,-128,0,0,0,
- 0,0,0,-33,0,-34,0,0,-48,0,
- 0,0,0,0,0,0,0,0,0,-99,
- 0,0,0,0,-100,-146,-101,-102,-103,0,
+ -159,0,-182,0,0,0,0,0,0,0,
+ -27,0,0,0,0,0,0,0,0,0,
+ 0,-21,0,0,0,0,0,0,0,0,
+ 0,-56,0,0,0,0,0,0,0,0,
+ 0,0,-22,0,0,0,0,0,0,0,
+ 0,0,-57,0,0,0,0,0,0,0,
+ 0,0,0,-23,0,0,0,0,0,0,
+ 0,0,0,-58,0,0,0,0,0,0,
+ 0,0,0,0,-24,0,0,0,0,0,
+ 0,0,0,0,-59,0,0,0,0,0,
+ 0,0,0,0,0,-25,0,0,0,0,
+ 0,0,0,0,0,-60,0,0,0,0,
+ 0,0,0,0,0,0,-26,0,0,0,
+ 0,0,0,0,0,0,-61,0,0,0,
+ 0,0,0,0,0,0,0,-68,0,0,
+ 0,0,0,0,0,0,0,-62,0,0,
+ 0,0,0,0,0,0,0,0,-84,0,
+ 0,0,0,0,0,0,0,0,-63,0,
+ 0,0,0,0,0,0,0,0,0,-87,
+ 0,0,0,0,0,0,0,0,0,-64,
0,0,0,0,0,0,0,0,0,0,
- 0,-1,-36,0,-53,-35,0,0,0,-83,
- 0,0,0,0,0,0,0,-85,0,0,
- 0,0,0,0,0,-106,0,0,0,0,
+ -88,0,0,0,0,0,0,0,0,0,
+ -65,0,0,0,0,0,0,0,0,0,
+ 0,-89,0,0,0,0,0,0,0,0,
+ 0,-66,0,0,0,0,0,0,0,0,
+ 0,0,-90,0,0,0,0,0,0,0,
+ 0,0,-119,0,0,0,0,0,0,0,
+ 0,0,0,-91,0,0,0,0,0,0,
+ 0,0,0,-142,0,0,0,0,0,0,
+ 0,0,0,0,-92,0,0,0,0,0,
+ 0,0,0,0,-143,0,0,0,0,0,
+ 0,0,0,0,0,-93,0,0,0,0,
+ 0,0,0,0,0,-160,0,0,0,0,
+ 0,0,0,0,0,0,-162,0,0,0,
+ 0,0,0,0,0,-183,0,0,0,0,
+ 0,0,0,0,0,0,-174,0,0,0,
+ 0,0,0,0,0,-94,-76,0,0,-136,
+ -95,0,-8,0,0,0,0,0,0,0,
+ -192,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-171,0,
- 0,-46,0,0,0,0,0,0,0,0,
- 0,0,-121,0,-188,-135,-138,-140,-148,0,
+ -201,0,0,0,0,0,0,0,0,0,
+ 0,-96,0,0,0,0,0,0,0,0,
+ 0,-155,0,-97,-98,0,0,-9,0,0,
+ 0,0,0,0,0,-209,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -130,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-134,-139,0,0,0,
- 0,0,0,0,-5,0,0,0,0,0,
- 0,0,-49,0,0,0,0,0,0,0,
- 0,0,0,-152,0,-50,0,0,0,0,
- 0,0,0,0,0,0,-190,0,-206,-12,
- 0,0,0,0,0,0,0,0,-165,0,
- -209,-158,-178,-179,-200,0,-42,0,0,0,
- 0,0,0,0,0,0,0,-205,0,0,
- 0,0,0,0,0,0,0,0,-13,0,
- 0,0,0,0,0,0,-43,0,0,0,
- 0,0,0,0,0,0,0,-44,0,0,
- 0,0,0,0,0,0,0,0,-45,0,
+ 0,0,0,0,0,0,-128,-46,0,0,
+ 0,0,0,0,0,0,0,0,-49,0,
0,0,0,0,0,0,0,0,0,-111,
- 0,0,-47,0,0,0,0,0,0,0,
- 0,0,-201,-38,0,0,0,0,0,0,
- 0,0,0,0,-154,0,-163,0,0,-71,
- -113,-170,-86,-189,-194,0,-74,0,-108,-185,
- 0,0,0,-208,-127,0,0,0,0,0,
+ 0,0,0,-108,-173,-146,-122,-127,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-155,0,
- 0,0,0,0,0,-172,0,0,0,0,
+ 0,-189,0,0,-1,0,0,0,0,-99,
+ 0,0,0,0,0,0,0,-100,0,0,
+ 0,0,0,0,0,-171,0,0,0,0,
+ -113,-131,0,-185,0,0,0,0,0,0,
+ 0,0,0,0,0,-101,-135,-102,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-9,0,0,0,0,0,0,0,-10,
- 0,0,0,0,0,0,0,-11,0,0,
- 0,0,0,0,0,-31,-39,0,0,0,
- 0,0,0,0,-198,0,0,-40,0,0,
- 0,0,0,0,0,0,-124,-69,-149,-112,
- -151,0,-41,0,0,0,0,0,0,0,
- 0,-169,0,0,-131,-175,0,0,0,0,
- 0,-168,0,0,0,0,0,-14,0,0,
- 0,-144,0,0,-28,-195,0,0,0,0,
- 0,-166,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-196,0,0,
- 0,0,-75,0,0,0,0,0,0,0,
- 0,0,0,-77,0,0,-176,0,-105,0,
- 0,0,0,0,0,-80,-153,0,0,0,
- 0,0,0,0,0,0,-82,0,0,-202,
- 0,0,0,0,0,0,0,0,-167,0,
- 0,0,0,0,0,0,-187,0,0,0,
- 0,0,0,0,0,0,0,0,-186,0,
- 0,-150,0,-109,0,-181,-123,0,-193,0,
- -197,0,0,0,-203,-204,0,-164,0,0,
+ 0,0,0,0,0,-103,0,0,0,0,
+ -50,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-208,0,-106,0,0,
+ -121,0,0,-130,-134,-139,0,-42,0,0,
+ 0,0,0,0,0,0,0,0,-47,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-12,0,0,0,0,
+ 0,0,0,-43,0,0,0,0,0,0,
+ 0,0,0,0,-44,0,0,0,0,0,
+ 0,0,0,0,0,-45,0,0,0,0,
+ 0,0,0,0,0,0,-203,0,0,-10,
+ 0,0,0,0,0,0,0,0,-37,0,
+ 0,0,0,0,0,0,0,-38,0,0,
+ 0,0,0,0,0,0,-71,-170,-138,0,
+ 0,0,0,0,0,0,-152,0,0,0,
+ -126,-79,-186,0,-74,-158,-178,-124,-177,0,
+ 0,-140,0,-145,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-210,0,0,-109,
+ -211,-147,-31,-123,0,-11,0,0,0,0,
+ 0,0,0,0,-161,-179,0,-81,0,0,
+ 0,0,-202,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-13,0,0,0,
+ 0,0,0,0,0,0,0,-39,0,0,
+ 0,0,0,0,0,0,-207,-196,-148,0,
+ 0,-40,0,0,0,0,0,0,0,-41,
+ 0,0,0,0,0,0,0,-112,0,0,
+ -169,-141,0,-14,0,0,-154,0,0,0,
+ -75,0,0,0,0,0,0,0,-144,-28,
+ 0,-166,0,-163,0,0,-35,0,0,0,
+ 0,0,0,0,0,-176,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-151,0,0,-77,0,-187,0,
+ -164,-172,0,0,0,-167,0,0,-105,0,
+ -80,0,0,-190,0,-82,0,0,0,0,
+ 0,-200,-153,0,0,0,0,0,-195,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-188,-175,-69,0,
+ 0,-36,-150,-168,0,-181,-149,0,0,-53,
+ 0,-204,0,0,-197,-194,-191,-198,-199,0,
+ 0,0,0,0,-205,0,0,0,0,0,
+ 0,0,-206,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -222,186 +219,183 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseAction {
public final static char baseAction[] = {
- 87,11,24,24,23,23,32,32,69,69,
- 1,1,2,2,2,2,3,3,3,4,
- 5,5,5,5,5,5,5,5,51,51,
- 70,6,6,6,6,6,6,6,6,6,
- 6,6,7,8,8,8,8,9,9,9,
- 10,10,10,12,12,12,12,12,13,13,
- 13,14,14,15,15,16,16,17,17,18,
- 18,19,19,20,20,20,20,20,20,20,
- 20,20,20,20,20,101,45,40,88,88,
- 73,73,46,102,102,102,102,102,102,102,
- 103,103,103,104,104,109,109,110,110,105,
- 105,106,106,106,112,112,107,107,107,107,
- 108,108,108,108,108,111,111,25,25,25,
- 25,25,27,27,27,79,79,74,74,74,
- 74,75,75,75,76,76,76,77,77,77,
- 78,78,78,113,113,114,114,115,28,30,
- 30,30,30,30,52,54,54,54,54,54,
- 54,54,54,54,54,54,54,63,60,60,
- 89,90,64,64,61,61,61,65,80,80,
- 81,81,66,66,66,48,91,91,82,83,
- 83,83,62,62,92,84,84,85,85,67,
- 67,21,22,22,22,29,47,47,33,33,
- 33,33,36,36,38,34,34,35,39,39,
- 116,116,37,117,117,93,93,26,26,26,
- 26,26,26,26,26,26,86,49,49,49,
- 49,31,56,56,55,55,55,57,57,50,
- 50,94,94,71,71,58,58,58,41,41,
- 41,42,43,43,43,44,44,44,44,53,
- 53,53,59,95,72,72,72,72,68,96,
- 97,97,98,98,99,99,118,118,119,119,
- 120,120,120,120,122,122,121,121,121,123,
- 123,87,87,1,832,16,20,17,368,790,
- 43,488,486,502,236,500,614,543,689,656,
- 769,748,73,90,133,211,445,250,400,502,
- 135,132,134,158,415,19,16,20,17,368,
- 790,43,488,486,502,396,500,614,543,689,
- 656,769,748,73,279,137,541,164,671,199,
- 157,185,569,141,144,147,150,324,364,19,
- 16,20,17,368,42,35,366,1457,1623,1634,
- 1646,1657,1210,253,211,273,679,284,157,184,
- 254,370,244,1297,488,19,16,20,17,368,
- 42,39,285,337,329,1296,979,464,19,16,
- 20,17,368,790,43,488,486,502,396,500,
- 614,543,689,656,769,748,73,279,335,19,
- 16,20,17,368,790,43,488,486,502,396,
- 500,614,543,689,656,769,748,73,279,488,
- 19,16,20,17,368,42,43,488,486,502,
- 284,500,614,543,689,1188,1297,364,19,16,
- 20,17,368,42,35,285,324,13,194,1455,
- 1324,286,1352,1085,290,157,186,1297,344,493,
- 12,245,30,678,715,281,287,275,19,16,
- 20,17,368,790,43,488,486,502,1694,500,
- 614,543,689,656,769,748,73,1459,811,274,
- 226,237,440,19,16,20,17,368,790,43,
- 488,486,502,31,500,614,543,689,656,769,
- 748,73,279,488,19,16,20,17,368,790,
- 43,488,486,502,398,500,614,543,689,656,
- 769,748,73,90,488,19,16,20,17,368,
- 42,43,488,486,502,288,500,614,543,1144,
- 281,1297,536,19,16,20,17,368,790,43,
- 488,486,502,1697,500,614,543,689,656,769,
- 748,73,1557,18,63,299,19,16,20,17,
- 368,790,43,488,486,502,366,500,614,543,
- 689,656,769,748,73,1592,189,177,52,238,
- 488,19,16,20,17,368,42,43,488,486,
- 502,110,500,614,1180,281,191,133,211,252,
- 211,244,638,135,132,134,158,488,19,16,
- 20,17,368,790,43,488,486,502,1189,500,
- 614,543,689,656,769,748,73,91,137,242,
- 164,157,293,27,1349,244,141,144,147,150,
- 324,488,19,16,20,17,368,42,43,853,
- 1457,1623,1634,1646,1657,1210,488,19,16,20,
- 17,368,790,43,488,486,502,281,500,614,
- 543,689,656,769,748,73,84,488,19,16,
- 20,17,368,790,43,488,486,502,402,500,
- 614,543,689,656,769,748,73,83,488,19,
- 16,20,17,368,790,43,488,486,502,6,
- 500,614,543,689,656,769,748,73,82,488,
- 19,16,20,17,368,790,43,488,486,502,
- 523,500,614,543,689,656,769,748,73,81,
- 488,19,16,20,17,368,790,43,488,486,
- 502,159,500,614,543,689,656,769,748,73,
- 80,488,19,16,20,17,368,790,43,488,
- 486,502,560,500,614,543,689,656,769,748,
- 73,79,488,19,16,20,17,368,790,43,
- 488,486,502,306,500,614,543,689,656,769,
- 748,73,78,488,19,16,20,17,368,790,
- 43,488,486,502,342,500,614,543,689,656,
- 769,748,73,77,488,19,16,20,17,368,
- 790,43,488,486,502,544,500,614,543,689,
- 656,769,748,73,76,488,19,16,20,17,
- 368,790,43,488,486,502,647,500,614,543,
- 689,656,769,748,73,75,488,19,16,20,
- 17,368,790,43,488,486,502,657,500,614,
- 543,689,656,769,748,73,74,488,19,16,
- 20,17,368,790,43,488,486,502,659,500,
- 614,543,689,656,769,748,73,1602,488,19,
- 16,20,17,368,790,43,488,486,502,698,
- 500,614,543,689,656,769,748,73,1669,488,
- 19,16,20,17,368,42,43,488,486,502,
- 244,500,614,543,689,656,769,748,92,488,
- 19,16,20,17,368,42,43,488,486,502,
- 655,500,614,543,689,656,769,748,92,413,
- 661,1265,178,718,675,1696,488,19,16,20,
- 17,368,42,38,488,19,16,20,17,368,
- 42,43,488,486,502,1699,500,614,543,689,
- 656,769,748,92,488,19,16,20,17,368,
- 42,43,488,486,502,13,500,614,543,689,
- 656,769,748,92,1337,681,1647,157,295,193,
- 210,488,19,16,20,17,368,42,37,488,
- 19,16,20,17,368,42,43,488,486,502,
- 200,500,614,543,689,656,769,748,92,488,
- 19,16,20,17,368,42,43,488,486,502,
- 144,500,614,543,689,656,769,748,72,50,
- 157,1353,57,517,412,201,488,19,16,20,
- 17,368,42,43,488,486,502,151,500,614,
- 543,689,656,1187,157,30,157,30,1559,488,
- 19,16,20,17,368,42,43,488,486,502,
- 550,500,1130,272,291,547,207,154,307,676,
- 216,504,219,1269,221,222,227,1572,265,503,
- 369,270,388,13,261,13,421,208,495,275,
- 189,177,272,553,553,262,553,553,281,216,
- 504,219,1269,221,222,227,709,265,503,369,
- 270,133,211,1582,24,414,23,136,132,134,
- 158,22,86,86,1420,86,88,311,1453,200,
- 1185,259,488,19,16,20,17,368,42,43,
- 488,1029,138,710,164,361,13,13,572,697,
- 142,145,148,151,324,272,1660,1489,695,1708,
- 1263,693,217,504,219,1269,221,222,227,339,
- 267,503,369,270,1218,225,712,716,216,504,
- 219,1269,221,222,227,512,19,16,20,17,
- 368,40,1355,488,19,16,20,17,368,42,
- 43,488,486,502,717,1139,488,19,16,20,
- 17,368,42,43,488,486,502,244,1142,361,
- 488,19,16,20,17,368,33,196,198,612,
- 1660,261,104,394,719,720,1545,488,19,16,
- 20,17,368,42,43,488,486,895,64,202,
- 253,211,216,504,219,1269,221,222,227,488,
- 19,16,20,17,368,32,1355,488,19,16,
- 20,17,368,42,43,488,486,916,488,19,
- 16,20,17,368,42,43,488,486,937,488,
- 19,16,20,17,368,42,43,488,486,958,
- 281,197,198,488,19,16,20,17,368,42,
- 43,488,1034,623,488,19,16,20,17,368,
- 42,43,874,271,1660,13,280,13,1795,1795,
- 672,543,543,61,718,698,1637,232,417,61,
- 646,1560,1575,1689,638,281,216,504,219,1269,
- 221,222,227,275,276,229,272,21,133,211,
- 1582,253,211,239,140,132,134,158,277,604,
- 1353,265,503,369,270,1263,13,217,504,219,
- 1269,221,222,227,1795,1705,1706,1677,1420,139,
- 1795,164,488,19,16,20,17,368,42,36,
- 488,19,16,20,17,368,42,35,488,19,
- 16,20,17,368,42,34,161,488,19,16,
- 20,17,368,42,46,495,1795,1558,488,19,
- 16,20,17,368,42,45,207,61,97,97,
- 323,281,272,488,19,16,20,17,368,42,
- 44,636,323,1033,1354,429,95,265,503,369,
- 270,241,281,636,278,1157,636,636,13,1226,
- 1226,1226,61,1795,264,13,281,1157,1795,313,
- 1157,195,61,1226,1795,223,313,1639,1249,1639,
- 257,1795,1795,195,192,1465,240,1281,370,228,
- 195,1249,257,603,1020,257,242,1465,86,1281,
- 1561,1795,1281,590,608,86,1536,604,1353,241,
- 590,232,191,1536,133,211,637,48,1795,1795,
- 143,132,134,158,1795,133,211,642,636,505,
- 97,146,132,134,158,272,655,133,211,61,
- 1263,1795,195,149,132,134,158,142,133,211,
- 267,503,369,270,152,132,134,158,636,282,
- 1795,1226,711,243,52,1020,61,52,1795,61,
- 636,244,195,636,207,244,244,1795,52,1464,
- 1795,1795,1795,190,1157,252,211,1157,252,211,
- 292,1454,1354,294,1795,1020,1795,1000,1576,252,
- 211,1795,1795,179,1795,1795,1795,203,1351,257,
- 1795,1795,258,190,1596,1795,1281,1795,1795,1795,
- 372,1795,1795,372,1795,1795,1795,1701,1576,1795,
- 1795,1795,1795,1795,1460,1795,1795,1795,1795,1795,
- 1795,1795,1795,1795,1795,1795,1795,1795,1795,1795,
- 615,1795,1618,947,1795,0,19,177,0,1,
- 2019,0,1,2030,0
+ 87,11,101,24,24,23,23,32,32,69,
+ 69,1,1,2,2,2,2,3,3,3,
+ 4,5,5,5,5,5,5,5,5,51,
+ 51,70,6,6,6,6,6,6,6,6,
+ 6,6,6,7,8,8,8,8,9,9,
+ 9,10,10,10,12,12,12,12,12,13,
+ 13,13,14,14,15,15,16,16,17,17,
+ 18,18,19,19,20,20,20,20,20,20,
+ 20,20,20,20,20,20,102,45,40,88,
+ 88,73,73,46,103,103,103,103,103,103,
+ 103,104,104,104,105,105,110,110,111,111,
+ 106,106,107,107,107,113,113,108,108,108,
+ 108,109,109,109,109,109,112,112,25,25,
+ 25,25,25,28,28,28,79,79,74,74,
+ 74,74,75,75,75,76,76,76,77,77,
+ 77,78,78,78,114,114,115,115,116,29,
+ 31,31,31,31,31,52,54,54,54,54,
+ 54,54,54,54,54,54,54,54,63,60,
+ 60,89,90,64,64,61,61,61,65,80,
+ 80,81,81,66,66,66,48,91,91,82,
+ 83,83,83,62,62,92,84,84,85,85,
+ 67,67,21,22,22,22,30,47,47,33,
+ 33,33,33,36,36,38,34,34,35,39,
+ 39,117,117,37,118,118,93,93,26,26,
+ 26,26,26,26,26,26,26,86,49,49,
+ 49,49,27,56,56,55,55,55,57,57,
+ 50,50,94,94,71,71,58,58,58,41,
+ 41,41,42,43,43,43,44,44,44,44,
+ 53,53,53,59,95,72,72,72,72,68,
+ 96,97,97,98,98,99,99,119,119,120,
+ 120,121,121,121,121,123,123,122,122,122,
+ 124,124,87,87,1,899,17,21,18,469,
+ 857,44,486,477,714,244,543,752,717,794,
+ 773,836,815,74,91,134,212,250,589,199,
+ 502,281,136,133,135,159,488,20,17,21,
+ 18,469,43,44,486,477,714,28,543,752,
+ 717,794,773,1276,878,274,138,679,165,157,
+ 186,157,185,541,142,145,148,151,1097,488,
+ 20,17,21,18,469,43,40,373,1445,1571,
+ 1617,1631,1636,666,415,20,17,21,18,469,
+ 857,44,486,477,714,367,543,752,717,794,
+ 773,836,815,74,280,464,20,17,21,18,
+ 469,857,44,486,477,714,367,543,752,717,
+ 794,773,836,815,74,280,488,20,17,21,
+ 18,469,43,44,486,477,714,285,543,752,
+ 717,794,1278,1326,364,20,17,21,18,469,
+ 43,36,286,1446,1495,291,1100,445,285,671,
+ 13,13,157,31,1326,157,31,324,245,157,
+ 1447,394,1643,286,329,1325,194,1649,335,20,
+ 17,21,18,469,857,44,486,477,714,367,
+ 543,752,717,794,773,836,815,74,280,275,
+ 20,17,21,18,469,857,44,486,477,714,
+ 1480,543,752,717,794,773,836,815,74,1214,
+ 157,187,369,238,512,20,17,21,18,469,
+ 41,287,25,12,61,24,209,1326,488,20,
+ 17,21,18,469,43,39,288,440,20,17,
+ 21,18,469,857,44,486,477,714,22,543,
+ 752,717,794,773,836,815,74,280,488,20,
+ 17,21,18,469,857,44,486,477,714,254,
+ 543,752,717,794,773,836,815,74,91,488,
+ 20,17,21,18,469,43,44,486,477,714,
+ 289,543,752,717,1155,281,1326,536,20,17,
+ 21,18,469,857,44,486,477,714,1484,543,
+ 752,717,794,773,836,815,74,1448,19,678,
+ 299,20,17,21,18,469,857,44,486,477,
+ 714,373,543,752,717,794,773,836,815,74,
+ 1579,189,178,52,239,275,189,178,488,20,
+ 17,21,18,469,43,44,486,477,714,1437,
+ 543,1101,134,212,253,212,281,134,212,136,
+ 133,135,159,281,137,133,135,159,488,20,
+ 17,21,18,469,43,44,486,477,714,1296,
+ 543,752,1240,138,30,165,23,31,139,1443,
+ 165,142,145,148,151,1097,143,146,149,152,
+ 1097,157,294,157,296,1445,1571,1617,1631,1636,
+ 666,488,20,17,21,18,469,857,44,486,
+ 477,714,63,543,752,717,794,773,836,815,
+ 74,92,488,20,17,21,18,469,857,44,
+ 486,477,714,191,543,752,717,794,773,836,
+ 815,74,85,488,20,17,21,18,469,857,
+ 44,486,477,714,242,543,752,717,794,773,
+ 836,815,74,84,488,20,17,21,18,469,
+ 857,44,486,477,714,402,543,752,717,794,
+ 773,836,815,74,83,488,20,17,21,18,
+ 469,857,44,486,477,714,6,543,752,717,
+ 794,773,836,815,74,82,488,20,17,21,
+ 18,469,857,44,486,477,714,523,543,752,
+ 717,794,773,836,815,74,81,488,20,17,
+ 21,18,469,857,44,486,477,714,159,543,
+ 752,717,794,773,836,815,74,80,488,20,
+ 17,21,18,469,857,44,486,477,714,560,
+ 543,752,717,794,773,836,815,74,79,488,
+ 20,17,21,18,469,857,44,486,477,714,
+ 306,543,752,717,794,773,836,815,74,78,
+ 488,20,17,21,18,469,857,44,486,477,
+ 714,342,543,752,717,794,773,836,815,74,
+ 77,488,20,17,21,18,469,857,44,486,
+ 477,714,544,543,752,717,794,773,836,815,
+ 74,76,488,20,17,21,18,469,857,44,
+ 486,477,714,647,543,752,717,794,773,836,
+ 815,74,75,488,20,17,21,18,469,857,
+ 44,486,477,714,657,543,752,717,794,773,
+ 836,815,74,73,488,20,17,21,18,469,
+ 857,44,486,477,714,659,543,752,717,794,
+ 773,836,815,74,1582,488,20,17,21,18,
+ 469,857,44,486,477,714,413,543,752,717,
+ 794,773,836,815,74,1626,488,20,17,21,
+ 18,469,43,44,486,477,714,244,543,752,
+ 717,794,773,836,815,93,488,20,17,21,
+ 18,469,43,44,486,477,714,655,543,752,
+ 717,794,773,836,815,93,675,236,1232,282,
+ 698,144,1686,488,20,17,21,18,469,43,
+ 38,488,20,17,21,18,469,43,44,486,
+ 477,714,1696,543,752,717,794,773,836,815,
+ 93,488,20,17,21,18,469,43,44,486,
+ 477,714,50,543,752,717,794,773,836,815,
+ 93,325,604,1447,57,412,194,211,488,20,
+ 17,21,18,469,43,37,488,20,17,21,
+ 18,469,43,44,486,477,714,201,543,752,
+ 717,794,773,836,815,93,337,151,488,20,
+ 17,21,18,469,43,44,486,1046,1687,488,
+ 20,17,21,18,469,43,44,486,477,714,
+ 281,1142,202,273,61,244,207,97,281,208,
+ 217,1482,220,1539,222,223,228,1561,266,639,
+ 339,271,361,272,262,388,1449,1496,240,276,
+ 550,278,273,1692,1562,263,578,179,547,217,
+ 1482,220,1539,222,223,228,200,266,639,339,
+ 271,543,429,1684,52,217,1482,220,1539,222,
+ 223,228,1262,661,1210,87,154,13,307,1503,
+ 312,260,273,1321,277,253,212,1187,1152,218,
+ 1482,220,1539,222,223,228,676,268,639,339,
+ 271,488,20,17,21,18,469,43,44,486,
+ 477,714,258,1154,197,199,361,1614,709,1324,
+ 1538,710,340,1642,693,712,716,1692,488,20,
+ 17,21,18,469,43,44,486,477,962,488,
+ 20,17,21,18,469,43,44,486,1096,217,
+ 1482,220,1539,222,223,228,488,20,17,21,
+ 18,469,34,1503,488,20,17,21,18,469,
+ 43,44,486,477,983,488,20,17,21,18,
+ 469,43,44,486,477,1004,488,20,17,21,
+ 18,469,43,44,486,477,1025,623,198,199,
+ 488,20,17,21,18,469,43,36,1692,488,
+ 20,17,21,18,469,43,44,920,488,20,
+ 17,21,18,469,43,44,941,672,543,13,
+ 217,1482,220,1539,222,223,228,717,1558,1619,
+ 1067,110,493,612,1684,232,104,394,61,718,
+ 276,230,97,273,364,20,17,21,18,469,
+ 43,36,254,212,254,212,134,212,266,639,
+ 339,271,242,141,133,135,159,638,246,1621,
+ 52,261,715,161,52,1210,488,20,17,21,
+ 18,469,43,35,1679,681,719,140,517,165,
+ 1697,253,212,720,1321,253,212,371,227,273,
+ 218,1482,220,1539,222,223,228,488,20,17,
+ 21,18,469,33,266,639,339,271,488,20,
+ 17,21,18,469,43,47,1441,64,646,697,
+ 1441,265,488,20,17,21,18,469,43,46,
+ 488,20,17,21,18,469,43,45,323,254,
+ 212,323,569,530,13,226,640,13,1770,661,
+ 1014,603,661,663,1770,314,281,1770,1596,61,
+ 13,1770,61,1187,13,1318,1187,421,1318,196,
+ 484,314,134,212,292,415,604,1447,578,144,
+ 133,135,159,241,87,196,243,1629,258,615,
+ 1256,258,1483,1218,281,1324,1218,608,1324,282,
+ 87,572,13,1770,1770,615,61,89,1483,241,
+ 661,637,1264,1677,718,341,642,279,134,212,
+ 1770,1770,495,48,1187,147,133,135,159,698,
+ 244,686,134,212,661,273,1321,134,212,150,
+ 133,135,159,208,153,133,135,159,196,258,
+ 268,639,339,271,1695,693,1324,142,95,97,
+ 1634,1496,13,711,281,1705,61,97,661,661,
+ 13,1087,97,578,661,281,61,244,370,244,
+ 1713,578,196,196,1770,244,1318,224,1187,191,
+ 293,193,1698,244,1318,1770,1770,1770,229,1318,
+ 295,233,87,1215,1678,1087,1087,544,1629,203,
+ 87,180,1770,259,1770,1248,1256,204,1770,1770,
+ 1770,1477,1770,191,192,1481,1770,1770,1770,1770,
+ 1770,1770,1770,1770,1770,1770,1770,1699,1678,1770,
+ 0,20,178,0,1,1995,0,1,2006,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -501,84 +495,84 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TermAction {
public final static char termAction[] = {0,
- 1795,1805,1588,1806,1520,69,2007,2008,2009,1512,
- 1091,58,1,1528,1956,1379,1340,1305,1807,1808,
- 1809,1810,1036,404,1957,1955,2010,1958,1954,53,
- 63,1961,1966,1965,1963,1964,1962,1967,1968,1960,
- 1969,1970,1971,1169,1143,499,336,1795,1,60,
- 1,1795,189,1,1,1,59,2007,2008,2009,
- 1795,1,61,1795,2031,1798,1409,1398,1387,1357,
- 459,1,1,1,1,1,1252,1423,1,1,
+ 1770,1781,1564,1782,1400,70,1983,1984,1985,1158,
+ 1103,59,1,1486,1932,1517,1356,534,1783,1784,
+ 1785,1786,548,379,1933,1931,1986,1934,1930,54,
+ 64,1937,1942,1941,1939,1940,1938,1943,1944,1936,
+ 1945,1946,1947,668,1498,1442,467,1770,1,61,
+ 1,1770,190,1,1,1,60,1983,1984,1985,
+ 1770,1,62,1770,2007,1774,1386,1375,1364,1328,
+ 436,1,1,1,1,1,1188,1339,1,1,
1,1,1,1,1,1,1,1,1,1,
- 189,1,1,1,1795,1,251,1,1989,188,
- 1,1,1,1795,1409,1398,1387,1357,1,247,
- 1797,1409,1398,1387,1357,1,1,1,1,1,
- 1,1,1,1326,1313,1,1,1,1,1,
- 1,1,1,1,1,1,1,188,1,1,
- 1,1795,1,62,1,1989,189,1,1,1,
- 260,2019,1186,70,1,1,1795,1805,1795,1806,
- 263,507,1450,532,1,1,1,1,1,1,
- 487,507,1,1,1,1,1,1,1,1,
- 1,1,1,1,189,1,1,1,1795,1805,
- 67,1806,1989,47,2007,2008,2009,1563,269,266,
- 2019,1186,1956,251,1326,1313,1,1789,1186,507,
- 507,1800,1957,1955,2010,1958,1954,507,459,1961,
- 1966,1965,1963,1964,1962,1967,1968,1960,1969,1970,
- 1971,127,1143,499,336,180,1799,2007,2008,2009,
- 266,65,1450,1795,251,1956,1548,1537,1802,1795,
- 1805,507,1806,181,574,1957,1955,2010,1958,1954,
- 283,1075,1961,1966,1965,1963,1964,1962,1967,1968,
- 1960,1969,1970,1971,1,1805,1588,1806,378,1798,
- 1795,1,1792,1512,1091,1800,1801,1528,592,1379,
- 1340,1305,1807,1808,1809,1810,1036,404,1795,1805,
- 1588,1806,477,1798,640,49,68,1512,1091,1563,
- 1799,1528,968,1379,1340,1305,1807,1808,1809,1810,
- 1036,404,1,50,1797,1795,251,1795,1795,1805,
- 2051,1806,1434,701,1,1805,1588,1806,1520,28,
- 1266,48,1795,1512,1091,1563,2798,1528,1797,1379,
- 1340,1305,1807,1808,1809,1810,1036,404,1548,1537,
- 1,2019,1433,1795,1805,1588,1806,1520,1798,1795,
- 574,2051,1512,1091,1800,1795,1528,28,1379,1340,
- 1305,1807,1808,1809,1810,1036,404,1795,1,1,
- 1,1,1795,209,1548,1537,1,1,1368,1799,
- 1,71,1,1,1,1,1,1,1,1,
- 1,66,52,1797,1,1805,1588,1806,1520,1064,
- 1,1434,701,1512,1091,89,2798,1528,1,1379,
- 1340,1305,1807,1808,1809,1810,1036,404,2107,1795,
- 1805,1588,1806,1520,183,2832,1795,2832,1512,1091,
- 89,2798,1528,1044,1379,1340,1305,1807,1808,1809,
- 1810,1036,404,1,1805,1588,1806,1520,1795,1146,
- 1205,1795,1512,1091,640,2798,1528,2051,1379,1340,
- 1305,1807,1808,1809,1810,1036,404,1795,1805,1588,
- 1806,1520,182,2837,1795,2837,1512,1091,1795,1804,
- 1528,1795,1379,1340,1305,1807,1808,1809,1810,1036,
- 404,1795,1805,1595,1806,1520,204,2839,1795,2839,
- 1512,1091,42,1339,1528,1795,1379,1340,1305,1807,
- 1808,1809,1810,1036,404,1,1805,1588,1806,1520,
- 87,1795,1,57,1512,1091,1795,1800,1528,64,
- 1379,1340,1305,1807,1808,1809,1810,1036,404,19,
- 1803,1786,1169,1786,1786,177,177,177,246,667,
- 1786,248,1799,177,2007,2008,2009,1,1,1,
- 1795,1785,926,177,177,177,177,177,1795,1786,
- 1252,1423,905,884,863,842,821,779,800,758,
- 737,716,128,206,1805,1119,1806,129,2007,2008,
- 2009,249,1795,2007,2008,2009,1956,2007,2008,2009,
- 1795,1956,1,2019,1433,1795,1957,1955,2010,1958,
- 1954,1957,1955,2010,1958,1954,130,251,2019,1433,
- 1795,131,2007,2008,2009,250,56,2007,2008,2009,
- 1956,2007,2008,2009,1,1956,55,1795,54,1804,
- 1957,1955,2010,1958,1954,1957,1955,2010,1958,1954,
- 31,1,1206,1450,51,41,1800,268,1795,1451,
- 289,1203,507,1434,701,1820,1821,487,507,989,
- 282,1009,254,1252,1423,1267,220,29,1452,205,
- 1140,1799,1140,1252,1423,1252,1423,507,1795,1795,
- 1,1795,651,1268,218,1795,1795,29,205,199,
- 1803,1692,1166,1445,187,507,438,1447,1496,187,
- 691,187,1087,1267,1795,1795,183,1164,1795,1795,
- 1795,182,1795,204,1795,1795,1823,2807,1795,1795,
- 1795,1795,1795,1795,1795,1795,1795,1795,1795,2050,
- 1795,1795,1795,1795,1795,1795,1795,1795,1795,1795,
- 1795,1795,1795,1795,1795,1795,1795,1795,1099
+ 190,1,1,1,1770,1,252,1,1965,189,
+ 1,1,1,1770,1386,1375,1364,1328,1,247,
+ 1773,1386,1375,1364,1328,1983,1984,1985,1,1,
+ 1,1,1,1301,1199,1,1,1,1,1,
+ 1,1,1,1,1,1,1,189,1,1,
+ 1,1770,1,63,1,1965,190,1,1,1,
+ 261,1995,1216,71,1,1,1770,1781,1770,1782,
+ 264,509,1427,557,1,1,1,1,1,1,
+ 470,509,1,1,1,1,1,1,1,1,
+ 1,1,1,1,190,1,1,1,1770,1781,
+ 68,1782,1965,48,1983,1984,1985,1550,270,267,
+ 1995,1216,1932,252,1301,1199,1,1764,1216,509,
+ 509,1776,1933,1931,1986,1934,1930,509,436,1937,
+ 1942,1941,1939,1940,1938,1943,1944,1936,1945,1946,
+ 1947,128,1498,1442,467,181,1775,1983,1984,1985,
+ 267,66,1427,1770,252,1932,1542,1528,1778,1770,
+ 1781,509,1782,182,599,1933,1931,1986,1934,1930,
+ 284,471,1937,1942,1941,1939,1940,1938,1943,1944,
+ 1936,1945,1946,1947,1,1781,1564,1782,454,1774,
+ 1770,1,1767,1158,1103,1776,1777,1486,617,1517,
+ 1356,534,1783,1784,1785,1786,548,379,1770,1781,
+ 1564,1782,1454,1774,698,50,69,1158,1103,1550,
+ 1775,1486,1035,1517,1356,534,1783,1784,1785,1786,
+ 548,379,1,51,1773,1770,252,1770,1770,1781,
+ 2027,1782,1418,1409,1,1781,1564,1782,1400,29,
+ 1277,49,1770,1158,1103,1550,2774,1486,1773,1517,
+ 1356,534,1783,1784,1785,1786,548,379,1542,1528,
+ 1,1995,1397,1770,1781,1564,1782,1400,1774,1770,
+ 599,2027,1158,1103,1776,1770,1486,29,1517,1356,
+ 534,1783,1784,1785,1786,548,379,1770,1,1,
+ 1,1,1770,210,1542,1528,1,1,1537,1775,
+ 1,72,1,1,1,1,1,1,1,1,
+ 1,67,53,1773,1,1781,1564,1782,1400,1131,
+ 1,1418,1409,1158,1103,90,2774,1486,1,1517,
+ 1356,534,1783,1784,1785,1786,548,379,2083,1770,
+ 1781,1564,1782,1400,184,2808,1770,2808,1158,1103,
+ 90,2774,1486,1111,1517,1356,534,1783,1784,1785,
+ 1786,548,379,1,1781,1564,1782,1400,1770,346,
+ 1690,1770,1158,1103,698,2774,1486,2027,1517,1356,
+ 534,1783,1784,1785,1786,548,379,1770,1781,1564,
+ 1782,1400,183,2813,1770,2813,1158,1103,1770,1780,
+ 1486,1770,1517,1356,534,1783,1784,1785,1786,548,
+ 379,1770,1781,1580,1782,1400,205,2815,1770,2815,
+ 1158,1103,43,1316,1486,1770,1517,1356,534,1783,
+ 1784,1785,1786,548,379,1,1781,1564,1782,1400,
+ 88,1770,1,58,1158,1103,1770,1776,1486,65,
+ 1517,1356,534,1783,1784,1785,1786,548,379,20,
+ 1779,1761,668,1761,1761,178,178,178,248,741,
+ 1761,249,1775,178,1,1,1,1,1,1,
+ 1770,1760,972,178,178,178,178,178,1770,1761,
+ 1188,1339,951,930,909,888,867,825,846,804,
+ 783,762,129,207,1781,993,1782,130,1983,1984,
+ 1985,250,1770,1983,1984,1985,1932,1983,1984,1985,
+ 1770,1932,1,1995,1397,1770,1933,1931,1986,1934,
+ 1930,1933,1931,1986,1934,1930,131,252,1995,1397,
+ 1770,132,1983,1984,1985,251,57,1983,1984,1985,
+ 1932,1983,1984,1985,1,1932,56,1770,55,1780,
+ 1933,1931,1986,1934,1930,1933,1931,1986,1934,1930,
+ 32,1,1587,1427,52,42,1776,269,1770,1261,
+ 290,1682,509,1418,1409,1796,1797,470,509,1056,
+ 283,1076,255,1188,1339,1429,221,30,1428,206,
+ 479,1775,479,1188,1339,1188,1339,509,1770,1770,
+ 1,1770,1217,1452,219,1770,1770,30,206,200,
+ 1779,1683,475,1567,188,509,488,1584,1622,188,
+ 731,188,733,1429,1770,1770,184,472,1770,1770,
+ 1770,183,1770,205,1770,1770,1799,2783,1770,1770,
+ 1770,1770,1770,1770,1770,1770,1770,1770,1770,2026,
+ 1770,1770,1770,1770,1770,1770,1770,1770,1770,1770,
+ 1770,1770,1770,1770,1770,1770,1770,1770,1166
};
};
public final static char termAction[] = TermAction.termAction;
@@ -586,27 +580,28 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asb {
public final static char asb[] = {0,
- 243,1,76,41,76,76,76,76,76,76,
- 76,76,76,392,3,218,215,222,220,228,
- 226,230,229,232,231,10,76,392,159,159,
- 357,392,329,329,261,76,76,76,76,76,
- 76,76,76,76,76,76,76,76,76,76,
- 76,76,76,76,76,76,76,76,76,76,
- 76,76,76,76,76,76,159,68,361,70,
- 299,157,156,332,344,66,344,66,66,344,
- 66,344,406,113,159,45,215,215,220,220,
- 220,220,218,218,226,222,222,229,228,292,
- 231,230,203,50,357,361,93,45,429,74,
- 159,363,302,66,329,329,66,329,76,50,
- 361,352,429,45,73,70,159,355,406,158,
- 304,68,169,68,280,282,200,196,68,352,
- 429,76,76,45,74,299,287,286,361,304,
- 159,68,169,280,280,196,48,297,329,76,
- 199,196,50,429,352,45,45,159,363,302,
- 355,169,196,162,169,280,282,294,282,52,
- 45,329,76,50,352,304,169,164,282,196,
- 76,329,45,282,159,158,196,239,76,238,
- 89,361,196,196,330,164,76,89,282
+ 199,1,106,41,106,106,106,106,106,106,
+ 106,106,106,373,3,23,20,27,25,33,
+ 31,35,34,37,36,9,106,373,189,189,
+ 321,373,293,293,414,106,106,106,106,106,
+ 106,106,106,106,106,106,106,106,106,106,
+ 106,106,106,106,106,106,106,106,106,106,
+ 106,106,106,106,106,106,189,98,325,100,
+ 263,187,186,296,308,96,308,96,96,308,
+ 96,308,387,143,189,45,20,20,25,25,
+ 25,25,23,23,31,27,27,34,33,342,
+ 36,35,223,80,321,325,123,45,410,104,
+ 189,344,266,96,293,293,96,293,106,80,
+ 325,316,410,45,103,100,189,319,387,188,
+ 268,98,48,98,217,219,333,75,98,316,
+ 316,106,106,45,104,263,337,336,325,268,
+ 189,98,48,217,217,75,78,330,293,106,
+ 332,75,80,316,410,45,45,189,344,266,
+ 319,48,75,192,48,217,219,327,219,82,
+ 45,293,106,80,410,316,268,48,194,219,
+ 75,106,293,45,219,316,189,188,75,259,
+ 106,258,119,325,75,75,294,194,106,119,
+ 219
};
};
public final static char asb[] = Asb.asb;
@@ -614,11 +609,14 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asr {
public final static byte asr[] = {0,
- 80,0,66,11,2,52,67,15,16,13,
- 4,9,10,53,54,47,48,55,56,57,
- 58,61,62,63,64,65,68,69,43,60,
- 70,71,72,73,74,76,75,77,78,79,
- 59,30,80,29,50,5,0,5,43,11,
+ 80,0,11,2,52,67,15,16,60,70,
+ 71,72,73,74,76,75,77,78,79,4,
+ 53,54,9,10,48,47,55,56,57,58,
+ 61,62,13,63,64,65,43,66,68,69,
+ 59,30,80,29,50,5,0,24,31,6,
+ 32,44,25,33,26,34,35,27,7,36,
+ 37,14,45,28,46,38,39,8,40,41,
+ 42,1,3,51,5,43,0,5,43,11,
52,15,16,13,4,9,10,22,23,17,
2,18,19,20,21,1,3,12,0,6,
7,8,14,50,5,18,19,20,21,3,
@@ -630,34 +628,31 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
47,48,55,56,57,58,61,62,63,64,
65,68,69,60,70,71,72,73,74,75,
76,77,78,79,4,2,11,29,30,5,
- 0,66,5,4,1,2,59,0,24,31,
- 6,32,44,25,33,26,34,35,27,7,
- 36,37,14,45,28,46,38,39,8,40,
- 41,42,1,3,51,5,43,0,60,11,
- 52,0,60,70,71,72,73,74,75,76,
- 77,78,79,12,4,53,54,9,10,48,
- 47,55,56,57,58,61,62,13,63,64,
- 65,50,30,43,80,68,69,59,66,5,
- 29,0,17,18,19,20,21,1,3,2,
- 15,16,13,4,9,10,22,23,51,0,
- 5,30,17,18,19,20,21,1,3,2,
- 15,16,13,4,9,10,22,23,0,1,
- 3,5,43,29,0,2,5,29,30,66,
- 11,59,0,5,29,43,60,0,4,2,
- 11,30,5,24,31,6,32,44,25,33,
- 26,34,35,27,7,36,37,14,45,28,
- 46,38,39,8,40,41,42,49,3,1,
- 0,39,31,36,34,35,33,32,37,38,
- 40,41,42,59,66,28,25,14,24,27,
- 26,6,7,8,29,1,5,30,2,11,
- 4,0,4,24,31,6,32,44,25,33,
- 26,34,35,27,7,36,37,14,45,28,
- 46,38,39,8,40,41,42,1,3,49,
- 0,17,18,19,20,21,2,15,16,13,
- 4,9,10,22,23,1,3,44,45,46,
- 39,31,36,34,35,33,32,37,38,40,
- 41,42,28,25,14,24,27,26,6,7,
- 8,0
+ 0,66,5,4,1,2,59,0,17,18,
+ 19,20,21,1,3,2,15,16,13,4,
+ 9,10,22,23,51,0,1,3,5,43,
+ 29,0,13,4,9,10,53,54,47,48,
+ 55,56,57,58,61,62,63,64,65,68,
+ 69,60,70,71,72,73,74,75,76,77,
+ 78,79,50,30,43,80,12,59,66,5,
+ 29,0,4,2,11,30,5,24,31,6,
+ 32,44,25,33,26,34,35,27,7,36,
+ 37,14,45,28,46,38,39,8,40,41,
+ 42,49,3,1,0,39,31,36,34,35,
+ 33,32,37,38,40,41,42,59,66,28,
+ 25,14,24,27,26,6,7,8,29,1,
+ 5,30,2,11,4,0,5,29,43,60,
+ 0,60,11,52,0,2,5,29,30,66,
+ 11,59,0,4,24,31,6,32,44,25,
+ 33,26,34,35,27,7,36,37,14,45,
+ 28,46,38,39,8,40,41,42,1,3,
+ 49,0,17,18,19,20,21,2,15,16,
+ 13,4,9,10,22,23,1,3,44,45,
+ 46,39,31,36,34,35,33,32,37,38,
+ 40,41,42,28,25,14,24,27,26,6,
+ 7,8,0,5,30,17,18,19,20,21,
+ 1,3,2,15,16,13,4,9,10,22,
+ 23,0
};
};
public final static byte asr[] = Asr.asr;
@@ -665,27 +660,28 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasb {
public final static byte nasb[] = {0,
- 60,38,22,38,22,22,22,22,22,22,
- 22,22,22,102,38,38,38,38,38,38,
- 38,38,38,38,38,38,22,102,88,88,
- 83,1,51,51,63,103,22,22,22,22,
- 22,22,22,22,22,22,22,22,22,22,
- 22,22,103,22,22,22,22,22,22,22,
- 22,22,22,22,22,22,88,38,90,24,
- 82,11,11,71,72,9,72,49,49,72,
- 48,72,66,38,88,26,38,38,38,38,
+ 61,38,20,38,20,20,20,20,20,20,
+ 20,20,20,94,38,38,38,38,38,38,
+ 38,38,38,38,38,38,20,94,71,71,
+ 74,1,15,15,98,95,20,20,20,20,
+ 20,20,20,20,20,20,20,20,20,20,
+ 20,20,95,20,20,20,20,20,20,20,
+ 20,20,20,20,20,20,71,38,117,22,
+ 73,11,11,44,45,50,45,87,87,45,
+ 86,45,39,38,71,24,38,38,38,38,
38,38,38,38,38,38,38,38,38,38,
- 38,38,38,58,106,38,28,26,118,25,
- 88,93,87,7,7,7,7,7,22,20,
- 38,58,118,26,25,13,88,54,31,38,
- 95,17,58,38,58,41,15,58,38,58,
- 118,22,22,26,25,53,11,11,90,95,
- 88,38,110,58,7,39,19,38,7,22,
- 46,39,58,118,13,26,26,88,93,87,
- 74,58,39,43,98,7,41,38,38,21,
- 26,7,22,20,13,114,110,56,41,39,
- 22,7,26,41,88,88,39,44,22,38,
- 56,90,39,39,38,56,22,76,80
+ 38,38,38,59,105,38,28,24,80,23,
+ 71,89,70,7,7,7,7,7,20,18,
+ 38,68,80,24,23,78,71,55,31,38,
+ 91,26,59,38,59,52,13,59,38,68,
+ 59,20,20,24,23,54,11,11,117,91,
+ 71,38,109,59,7,9,17,38,7,20,
+ 84,9,59,59,80,24,24,71,89,70,
+ 64,59,9,47,113,7,52,38,38,19,
+ 24,7,20,18,80,78,101,109,57,52,
+ 9,20,7,24,52,78,71,71,9,48,
+ 20,38,57,117,9,9,38,57,20,66,
+ 82
};
};
public final static byte nasb[] = Nasb.nasb;
@@ -693,18 +689,18 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasr {
public final static char nasr[] = {0,
- 79,77,76,64,75,74,1,0,89,0,
- 26,0,21,0,97,0,90,0,68,11,
- 59,5,0,11,5,24,0,5,11,0,
- 79,78,77,76,64,75,74,0,32,0,
- 51,0,11,69,0,99,0,92,65,0,
- 70,0,23,43,42,36,34,11,0,11,
- 87,0,11,88,0,64,60,61,62,63,
- 52,27,0,43,42,36,34,31,0,95,
- 0,23,42,43,11,0,11,23,0,31,
- 49,0,31,49,11,25,0,11,48,66,
- 0,48,11,45,0,43,42,31,0,81,
- 11,48,0,93,11,25,0,56,0
+ 79,77,76,64,75,74,1,0,32,0,
+ 26,0,97,0,70,0,68,11,59,5,
+ 0,11,5,24,0,90,0,5,11,0,
+ 79,78,77,76,64,75,74,0,64,60,
+ 61,62,63,52,28,0,11,69,0,89,
+ 0,51,0,23,43,42,36,34,11,0,
+ 11,87,0,43,42,36,34,27,0,11,
+ 23,0,23,42,43,11,0,21,0,56,
+ 0,95,0,99,0,92,65,0,27,49,
+ 11,25,0,48,11,45,0,11,88,0,
+ 93,11,25,0,43,42,27,0,81,11,
+ 48,0,11,48,66,0,27,49,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -730,18 +726,18 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
100,0,0,0,102,106,107,108,109,110,
- 0,111,112,113,114,115,116,117,118,119,
- 129,0,97,96,122,150,128,0,0,0,
- 0,98,146,148,0,149,0,0,0,0,
- 159,160,161,0,101,121,137,141,147,156,
- 0,131,136,0,151,154,155,158,0,132,
- 133,134,135,138,0,140,145,162,99,103,
- 104,105,120,123,124,125,126,127,130,0,
- 139,143,0,0,144,153,95,0,0,0,
- 142,0,152,157,0,163,164,0,165,0,
+ 0,111,112,113,114,115,116,117,0,118,
+ 128,0,97,96,121,149,0,127,0,0,
+ 0,98,145,147,0,148,0,0,0,0,
+ 158,159,160,0,101,120,136,140,146,155,
+ 0,130,135,0,150,153,154,157,0,131,
+ 132,133,134,137,0,139,144,161,99,103,
+ 104,105,119,122,123,124,125,126,129,0,
+ 138,142,0,0,143,152,95,0,0,0,
+ 141,0,151,156,0,162,163,0,164,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0
+ 0,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -771,9 +767,9 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 62,60,5,62,26,26,60,53,106,44,
+ 62,60,5,62,26,26,60,53,107,44,
26,39,44,26,66,6,5,5,19,99,
- 98,42,26,36,3,68,66,107,5,66,
+ 98,42,26,36,3,68,66,108,5,66,
39,37,39
};
};
@@ -804,20 +800,20 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 139,11,0,96,0,189,104,0,31,136,
+ 139,11,0,96,0,189,104,0,31,135,
0,144,165,104,12,152,0,98,0,0,
148,104,2,135,0,97,0,148,104,2,
0,151,2,0,113,14,179,104,11,0,
113,179,104,14,11,0,113,14,11,0,
113,179,104,11,0,113,11,0,129,0,
- 2,0,152,97,0,2,97,0,148,104,
- 2,129,0,2,0,151,97,0,140,2,
+ 2,0,151,97,0,2,97,0,148,104,
+ 2,129,0,2,0,150,97,0,140,2,
0,144,177,104,12,94,185,44,0,98,
0,144,177,104,12,185,44,0,141,0,
- 99,0,184,104,141,0,104,141,0,142,
+ 99,0,184,104,141,0,104,141,0,141,
99,0,173,104,12,183,94,182,157,0,
- 173,104,12,182,157,0,195,85,0,77,
- 2,101,97,99,0,195,116,138,2,89,
+ 173,104,12,182,157,0,196,85,0,77,
+ 2,101,97,99,0,196,116,138,2,89,
0,53,0,0,138,69,111,0,29,118,
0,164,2,17,0,144,165,104,12,116,
164,2,0,164,2,0,97,3,0,105,
@@ -830,15 +826,15 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeState {
public final static char scopeState[] = {0,
- 1085,0,1677,1576,1647,0,396,0,1464,1339,
- 1433,1265,1249,1186,1157,0,636,1210,313,0,
- 1269,504,503,369,1249,1186,1157,1639,1450,1536,
- 0,477,378,459,1146,640,574,1326,1313,1169,
- 1423,1252,1409,1398,1387,1357,1563,1548,1537,1434,
- 701,1379,1340,1528,1520,1512,1091,1036,404,1305,
- 1099,1064,1044,1009,989,968,947,615,1119,592,
- 507,926,905,884,863,842,821,800,779,758,
- 737,716,313,667,553,532,417,438,344,0
+ 1495,0,1677,1678,1643,0,367,0,1477,1316,
+ 1397,1232,1256,1216,1187,0,661,666,314,0,
+ 1539,1482,639,339,1256,1216,1187,1629,1427,1483,
+ 0,1454,454,436,346,698,599,1301,1199,668,
+ 1339,1188,1386,1375,1364,1328,1550,1542,1528,1418,
+ 1409,1517,1356,1486,1400,1158,1103,548,379,534,
+ 1166,1131,1111,1076,1056,1035,1014,640,993,617,
+ 509,972,951,930,909,888,867,846,825,804,
+ 783,762,314,741,578,557,415,488,394,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -856,17 +852,18 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
2,136,135,167,168,157,169,46,45,170,
44,171,172,94,181,138,101,101,103,103,
103,103,102,102,106,105,105,108,107,138,
- 110,109,116,12,142,124,14,113,104,4,
+ 110,109,116,12,142,120,14,113,104,4,
151,104,2,182,158,158,185,158,59,104,
- 124,4,104,113,179,149,148,118,104,150,
+ 120,4,104,113,179,149,148,118,104,150,
104,94,12,94,12,165,104,12,152,4,
- 104,179,14,113,4,2,127,129,104,29,
+ 120,179,14,113,4,2,127,129,104,29,
148,183,104,12,104,144,29,189,52,11,
- 190,104,12,104,149,113,113,140,104,2,
+ 190,104,12,120,104,113,113,140,104,2,
142,12,173,141,174,104,177,94,178,60,
- 139,52,11,104,149,104,104,104,177,144,
- 60,29,139,165,148,186,173,184,59,140,
- 2,104,144,144,29,29,59,142,125
+ 139,52,11,104,104,149,104,104,104,177,
+ 144,60,29,139,165,149,148,186,173,184,
+ 59,140,2,104,144,144,29,29,59,142,
+ 125
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -987,12 +984,11 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"shift_expression",
"relational_expression",
"equality_expression",
- "AND_expression",
- "exclusive_OR_expression",
- "inclusive_OR_expression",
- "logical_AND_expression",
- "logical_OR_expression",
- "conditional_expression",
+ "and_expression",
+ "exclusive_or_expression",
+ "inclusive_or_expression",
+ "logical_and_expression",
+ "logical_or_expression",
"assignment_expression",
"expression_list_actual",
"constant_expression",
@@ -1062,20 +1058,20 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 209,
+ NUM_STATES = 211,
NT_OFFSET = 93,
- LA_STATE_OFFSET = 2107,
+ LA_STATE_OFFSET = 2083,
MAX_LA = 2,
- NUM_RULES = 312,
- NUM_NONTERMINALS = 123,
- NUM_SYMBOLS = 216,
+ NUM_RULES = 313,
+ NUM_NONTERMINALS = 124,
+ NUM_SYMBOLS = 217,
SEGMENT_SIZE = 8192,
- START_STATE = 1202,
+ START_STATE = 1235,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 80,
EOLT_SYMBOL = 80,
- ACCEPT_ACTION = 1785,
- ERROR_ACTION = 1795;
+ ACCEPT_ACTION = 1760,
+ ERROR_ACTION = 1770;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
index 2828af95ef..becfe1cfa7 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
@@ -17,19 +17,24 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-public class C99Parser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit >
+public class C99Parser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTTranslationUnit >
+
{
private static ParseTable prs = new C99Parserprs();
private FixedBacktrackingParser btParser;
@@ -167,7 +172,11 @@ public class C99Parser extends PrsStream implements RuleAction , IParserActionTo
private C99BuildASTParserAction action;
private IASTCompletionNode compNode;
-public C99Parser() { // constructor
+
+public C99Parser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set<IParser.Options> options) {
+ initActions(options);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
private void initActions(Set<IParser.Options> options) {
@@ -186,17 +195,16 @@ public void addToken(IToken token) {
}
-public IASTTranslationUnit parse(Set<IParser.Options> options) {
+public IASTTranslationUnit parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(options);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
super.resetTokenStream(); // allow tokens to be garbage collected
compNode = action.getASTCompletionNode(); // the completion node may be null
- return ( IASTTranslationUnit ) action.getParseResult();
+ return ( IASTTranslationUnit ) action.getParseResult();
}
@@ -219,25 +227,6 @@ public String getName() {
}
-
-private ITokenMap tokenMap = null;
-
-public void setTokens(List<IToken> tokens) {
- resetTokenStream();
- addToken(new Token(null, 0, 0, 0)); // dummy token
- for(IToken token : tokens) {
- token.setKind(tokenMap.mapKind(token.getKind()));
- addToken(token);
- }
- addToken(new Token(null, 0, 0, C99Parsersym.TK_EOF_TOKEN));
-}
-
-public C99Parser(IParserActionTokenProvider parser) { // constructor
- tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
-}
-
-
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -250,1005 +239,1011 @@ public C99Parser(IParserActionTokenProvider parser) { // constructor
}
//
- // Rule 12: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 13: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 14: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 15: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 17: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 17: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 18: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 18: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 21: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 22: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 23: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 24: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 26: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 27: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 27: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 41: unary_expression ::= sizeof ( type_id )
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 43: cast_expression ::= ( type_id ) cast_expression
+ // Rule 42: unary_expression ::= sizeof ( type_id )
//
- case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 44: cast_expression ::= ( type_id ) cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
//
- case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression << additive_expression
+ // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 53: shift_expression ::= shift_expression >> additive_expression
+ // Rule 53: shift_expression ::= shift_expression << additive_expression
//
- case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 55: relational_expression ::= relational_expression < shift_expression
+ // Rule 54: shift_expression ::= shift_expression >> additive_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 56: relational_expression ::= relational_expression > shift_expression
+ // Rule 56: relational_expression ::= relational_expression < shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression <= shift_expression
+ // Rule 57: relational_expression ::= relational_expression > shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 58: relational_expression ::= relational_expression >= shift_expression
+ // Rule 58: relational_expression ::= relational_expression <= shift_expression
//
- case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression == relational_expression
+ // Rule 59: relational_expression ::= relational_expression >= shift_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 61: equality_expression ::= equality_expression != relational_expression
+ // Rule 61: equality_expression ::= equality_expression == relational_expression
//
- case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 63: AND_expression ::= AND_expression & equality_expression
+ // Rule 62: equality_expression ::= equality_expression != relational_expression
//
- case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 64: and_expression ::= and_expression & equality_expression
//
- case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 73: { action. consumeExpressionConditional(); break;
+ case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 74: { action. consumeExpressionConditional(); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression = assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression += assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
//
- case 88: { action. consumeExpressionList(); break;
+ case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 90: expression_list_opt ::= $Empty
+ // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
//
- case 90: { action. consumeEmpty(); break;
+ case 89: { action. consumeExpressionList(); break;
}
//
- // Rule 100: statement ::= ERROR_TOKEN
+ // Rule 91: expression_list_opt ::= $Empty
//
- case 100: { action. consumeStatementProblem(); break;
+ case 91: { action. consumeEmpty(); break;
}
//
- // Rule 101: labeled_statement ::= identifier_token : statement
+ // Rule 101: statement ::= ERROR_TOKEN
//
- case 101: { action. consumeStatementLabeled(); break;
+ case 101: { action. consumeStatementProblem(); break;
}
//
- // Rule 102: labeled_statement ::= case constant_expression : statement
+ // Rule 102: labeled_statement ::= identifier_token : statement
//
- case 102: { action. consumeStatementCase(); break;
+ case 102: { action. consumeStatementLabeled(); break;
}
//
- // Rule 103: labeled_statement ::= default : statement
+ // Rule 103: labeled_statement ::= case constant_expression : statement
//
- case 103: { action. consumeStatementDefault(); break;
+ case 103: { action. consumeStatementCase(); break;
}
//
- // Rule 104: compound_statement ::= { }
+ // Rule 104: labeled_statement ::= default : statement
//
- case 104: { action. consumeStatementCompoundStatement(false); break;
+ case 104: { action. consumeStatementDefault(); break;
}
//
- // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 105: compound_statement ::= { }
//
- case 105: { action. consumeStatementCompoundStatement(true); break;
+ case 105: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 109: block_item ::= declaration
+ // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 106: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 110: expression_statement ::= ;
+ // Rule 110: block_item ::= declaration
//
- case 110: { action. consumeStatementNull(); break;
+ case 110: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 111: expression_statement ::= expression_in_statement ;
+ // Rule 111: expression_statement ::= ;
//
- case 111: { action. consumeStatementExpression(); break;
+ case 111: { action. consumeStatementNull(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement
+ // Rule 112: expression_statement ::= expression_in_statement ;
//
- case 112: { action. consumeStatementIf(false); break;
+ case 112: { action. consumeStatementExpression(); break;
}
//
- // Rule 113: selection_statement ::= if ( expression ) statement else statement
+ // Rule 113: selection_statement ::= if ( expression ) statement
//
- case 113: { action. consumeStatementIf(true); break;
+ case 113: { action. consumeStatementIf(false); break;
}
//
- // Rule 114: selection_statement ::= switch ( expression ) statement
+ // Rule 114: selection_statement ::= if ( expression ) statement else statement
//
- case 114: { action. consumeStatementSwitch(); break;
+ case 114: { action. consumeStatementIf(true); break;
}
//
- // Rule 116: expression_opt ::= $Empty
+ // Rule 115: selection_statement ::= switch ( expression ) statement
//
- case 116: { action. consumeEmpty(); break;
+ case 115: { action. consumeStatementSwitch(); break;
}
//
- // Rule 117: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 117: expression_opt ::= $Empty
//
- case 117: { action. consumeStatementDoLoop(); break;
+ case 117: { action. consumeEmpty(); break;
}
//
- // Rule 118: iteration_statement ::= while ( expression ) statement
+ // Rule 118: iteration_statement ::= do statement while ( expression ) ;
//
- case 118: { action. consumeStatementWhileLoop(); break;
+ case 118: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= while ( expression ) statement
//
- case 119: { action. consumeStatementForLoop(); break;
+ case 119: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= goto identifier_token ;
+ // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 121: { action. consumeStatementGoto(); break;
+ case 121: { action. consumeStatementForLoop(); break;
}
//
- // Rule 122: jump_statement ::= continue ;
+ // Rule 122: jump_statement ::= goto identifier_token ;
//
- case 122: { action. consumeStatementContinue(); break;
+ case 122: { action. consumeStatementGoto(); break;
}
//
- // Rule 123: jump_statement ::= break ;
+ // Rule 123: jump_statement ::= continue ;
//
- case 123: { action. consumeStatementBreak(); break;
+ case 123: { action. consumeStatementContinue(); break;
}
//
- // Rule 124: jump_statement ::= return ;
+ // Rule 124: jump_statement ::= break ;
//
- case 124: { action. consumeStatementReturn(false); break;
+ case 124: { action. consumeStatementBreak(); break;
}
//
- // Rule 125: jump_statement ::= return expression ;
+ // Rule 125: jump_statement ::= return ;
//
- case 125: { action. consumeStatementReturn(true); break;
+ case 125: { action. consumeStatementReturn(false); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers ;
+ // Rule 126: jump_statement ::= return expression ;
//
- case 126: { action. consumeDeclarationSimple(false); break;
+ case 126: { action. consumeStatementReturn(true); break;
}
//
- // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 127: declaration ::= declaration_specifiers ;
//
- case 127: { action. consumeDeclarationSimple(true); break;
+ case 127: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 128: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 128: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 129: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 157: init_declarator ::= complete_declarator = initializer
+ // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 157: { action. consumeDeclaratorWithInitializer(true); break;
+ case 133: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 159: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 158: init_declarator ::= complete_declarator = initializer
//
- case 159: { action. consumeToken(); break;
+ case 158: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 165: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 160: storage_class_specifier ::= storage_class_specifier_token
//
- case 165: { action. consumeToken(); break;
+ case 160: { action. consumeToken(); break;
}
//
- // Rule 178: type_name_specifier ::= identifier_token
+ // Rule 166: simple_type_specifier ::= simple_type_specifier_token
//
- case 178: { action. consumeToken(); break;
+ case 166: { action. consumeToken(); break;
}
//
- // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 179: type_name_specifier ::= identifier_token
//
- case 179: { action. consumeTypeSpecifierComposite(false); break;
+ case 179: { action. consumeToken(); break;
}
//
- // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 180: { action. consumeTypeSpecifierComposite(true); break;
+ case 180: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 181: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 193: { action. consumeStructDeclaration(true); break;
+ case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 194: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 194: { action. consumeStructDeclaration(false); break;
+ case 194: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 195: struct_declaration ::= ERROR_TOKEN
+ // Rule 195: struct_declaration ::= specifier_qualifier_list ;
//
- case 195: { action. consumeDeclarationProblem(); break;
+ case 195: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 201: struct_declarator ::= : constant_expression
+ // Rule 196: struct_declaration ::= ERROR_TOKEN
//
- case 201: { action. consumeBitField(false); break;
+ case 196: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 202: struct_declarator ::= declarator : constant_expression
+ // Rule 202: struct_declarator ::= : constant_expression
//
- case 202: { action. consumeBitField(true); break;
+ case 202: { action. consumeBitField(false); break;
}
//
- // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 203: struct_declarator ::= declarator : constant_expression
//
- case 203: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 203: { action. consumeBitField(true); break;
}
//
- // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 204: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 210: enumerator ::= identifier_token
+ // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 210: { action. consumeEnumerator(false); break;
+ case 205: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 211: enumerator ::= identifier_token = constant_expression
+ // Rule 211: enumerator ::= identifier_token
//
- case 211: { action. consumeEnumerator(true); break;
+ case 211: { action. consumeEnumerator(false); break;
}
//
- // Rule 212: type_qualifier ::= type_qualifier_token
+ // Rule 212: enumerator ::= identifier_token = constant_expression
//
- case 212: { action. consumeToken(); break;
+ case 212: { action. consumeEnumerator(true); break;
}
//
- // Rule 216: function_specifier ::= inline
+ // Rule 213: type_qualifier ::= type_qualifier_token
//
- case 216: { action. consumeToken(); break;
+ case 213: { action. consumeToken(); break;
}
//
- // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 217: function_specifier ::= inline
//
- case 218: { action. consumeDeclaratorWithPointer(true); break;
+ case 217: { action. consumeToken(); break;
}
//
- // Rule 223: basic_direct_declarator ::= declarator_id_name
+ // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 223: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 219: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 224: basic_direct_declarator ::= ( declarator )
+ // Rule 224: basic_direct_declarator ::= declarator_id_name
//
- case 224: { action. consumeDirectDeclaratorBracketed(); break;
+ case 224: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 225: declarator_id_name ::= identifier
+ // Rule 225: basic_direct_declarator ::= ( declarator )
//
- case 225: { action. consumeIdentifierName(); break;
+ case 225: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 226: declarator_id_name ::= identifier
//
- case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 226: { action. consumeIdentifierName(); break;
}
//
- // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 230: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 231: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 232: { action. consumeDeclaratorWithPointer(true); break;
+ case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 233: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 235: { action. consumeDeclaratorWithPointer(true); break;
+ case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 236: identifier_list ::= identifier
+ // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 236: { action. consumeIdentifierKnR(); break;
+ case 236: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 237: identifier_list ::= identifier_list , identifier
+ // Rule 237: identifier_list ::= identifier
//
case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 238: array_modifier ::= [ ]
+ // Rule 238: identifier_list ::= identifier_list , identifier
//
- case 238: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 238: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 239: array_modifier ::= [ ]
//
- case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 239: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 240: array_modifier ::= [ assignment_expression ]
+ // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 240: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 241: array_modifier ::= [ assignment_expression ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 241: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 242: array_modifier ::= [ static assignment_expression ]
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 243: array_modifier ::= [ static assignment_expression ]
//
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 245: array_modifier ::= [ * ]
+ // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 246: array_modifier ::= [ * ]
//
- case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 248: pointer_seq ::= pointer_hook *
+ // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 248: { action. consumePointer(); break;
+ case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 249: pointer_seq ::= pointer_seq pointer_hook *
+ // Rule 249: pointer_seq ::= pointer_hook * pointer_hook
//
case 249: { action. consumePointer(); break;
}
//
- // Rule 250: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 250: { action. consumePointerTypeQualifierList(); break;
+ case 250: { action. consumePointer(); break;
}
//
- // Rule 251: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 255: parameter_type_list ::= parameter_list
+ // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 255: { action. consumeEmpty(); break;
+ case 252: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 256: parameter_type_list ::= parameter_list , ...
+ // Rule 256: parameter_type_list ::= parameter_list
//
- case 256: { action. consumePlaceHolder(); break;
+ case 256: { action. consumeEmpty(); break;
}
//
- // Rule 257: parameter_type_list ::= ...
+ // Rule 257: parameter_type_list ::= parameter_list , ...
//
case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 258: parameter_type_list ::= ...
//
- case 260: { action. consumeParameterDeclaration(); break;
+ case 258: { action. consumePlaceHolder(); break;
}
//
- // Rule 261: parameter_declaration ::= declaration_specifiers
+ // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 261: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 264: type_id ::= specifier_qualifier_list
+ // Rule 262: parameter_declaration ::= declaration_specifiers
//
- case 264: { action. consumeTypeId(false); break;
+ case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator
+ // Rule 265: type_id ::= specifier_qualifier_list
//
- case 265: { action. consumeTypeId(true); break;
+ case 265: { action. consumeTypeId(false); break;
}
//
- // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 267: { action. consumeDeclaratorWithPointer(false); break;
+ case 266: { action. consumeTypeId(true); break;
}
//
- // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq
//
case 268: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 272: { action. consumeDirectDeclaratorBracketed(); break;
+ case 269: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 273: array_direct_abstract_declarator ::= array_modifier
+ // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 273: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 274: array_direct_abstract_declarator ::= array_modifier
//
- case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= ( )
+ // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 277: function_direct_abstract_declarator ::= ( )
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
}
//
- // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
//
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 280: initializer ::= assignment_expression
+ // Rule 281: initializer ::= assignment_expression
//
- case 280: { action. consumeInitializer(); break;
+ case 281: { action. consumeInitializer(); break;
}
//
- // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
+ // Rule 282: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
//
- case 281: { action. consumeInitializerList(); break;
+ case 282: { action. consumeInitializerList(); break;
}
//
- // Rule 282: initializer ::= { <openscope-ast> }
+ // Rule 283: initializer ::= { <openscope-ast> }
//
- case 282: { action. consumeInitializerList(); break;
+ case 283: { action. consumeInitializerList(); break;
}
//
- // Rule 283: start_initializer_list ::= $Empty
+ // Rule 284: start_initializer_list ::= $Empty
//
- case 283: { action. initializerListStart(); break;
+ case 284: { action. initializerListStart(); break;
}
//
- // Rule 284: end_initializer_list ::= $Empty
+ // Rule 285: end_initializer_list ::= $Empty
//
- case 284: { action. initializerListEnd(); break;
+ case 285: { action. initializerListEnd(); break;
}
//
- // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 290: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 289: { action. consumeInitializerDesignated(); break;
+ case 290: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 293: designator_base ::= [ constant_expression ]
+ // Rule 294: designator_base ::= [ constant_expression ]
//
- case 293: { action. consumeDesignatorArray(); break;
+ case 294: { action. consumeDesignatorArray(); break;
}
//
- // Rule 294: designator_base ::= . identifier_token
+ // Rule 295: designator_base ::= . identifier_token
//
- case 294: { action. consumeDesignatorField(); break;
+ case 295: { action. consumeDesignatorField(); break;
}
//
- // Rule 295: designator ::= [ constant_expression ]
+ // Rule 296: designator ::= [ constant_expression ]
//
- case 295: { action. consumeDesignatorArray(); break;
+ case 296: { action. consumeDesignatorArray(); break;
}
//
- // Rule 296: designator ::= . identifier_token
+ // Rule 297: designator ::= . identifier_token
//
- case 296: { action. consumeDesignatorField(); break;
+ case 297: { action. consumeDesignatorField(); break;
}
//
- // Rule 297: translation_unit ::= external_declaration_list
+ // Rule 298: translation_unit ::= external_declaration_list
//
- case 297: { action. consumeTranslationUnit(); break;
+ case 298: { action. consumeTranslationUnit(); break;
}
//
- // Rule 298: translation_unit ::= $Empty
+ // Rule 299: translation_unit ::= $Empty
//
- case 298: { action. consumeTranslationUnit(); break;
+ case 299: { action. consumeTranslationUnit(); break;
}
//
- // Rule 303: external_declaration ::= ;
+ // Rule 304: external_declaration ::= ;
//
- case 303: { action. consumeDeclarationEmpty(); break;
+ case 304: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 304: external_declaration ::= ERROR_TOKEN
+ // Rule 305: external_declaration ::= ERROR_TOKEN
//
- case 304: { action. consumeDeclarationProblem(); break;
+ case 305: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 307: { action. consumeFunctionDefinition(true); break;
+ case 308: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 308: { action. consumeFunctionDefinition(false); break;
+ case 309: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 309: { action. consumeFunctionDefinitionKnR(); break;
+ case 310: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 310: function_body ::= { }
+ // Rule 311: function_body ::= { }
//
- case 310: { action. consumeStatementCompoundStatement(false); break;
+ case 311: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 311: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 312: function_body ::= { <openscope-ast> block_item_list }
//
- case 311: { action. consumeStatementCompoundStatement(true); break;
+ case 312: { action. consumeStatementCompoundStatement(true); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
index 74a6e8b789..fcf44170dc 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
@@ -34,234 +34,240 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface BaseCheck {
public final static short baseCheck[] = {0,
- 0,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,3,1,1,
- 4,4,3,3,2,2,8,1,0,1,
- 1,2,2,2,2,2,2,2,2,2,
- 4,1,4,1,3,3,3,1,3,3,
- 1,3,3,1,3,3,3,3,1,3,
- 3,1,3,1,3,1,3,1,3,1,
- 3,1,5,1,3,3,3,3,3,3,
- 3,3,3,3,3,1,1,2,1,0,
- 1,3,1,1,1,1,1,1,1,1,
- 3,4,3,2,4,1,2,1,1,1,
- 2,5,7,5,1,0,7,5,9,8,
- 3,2,2,2,3,2,4,2,2,2,
- 2,2,1,1,1,1,2,1,2,2,
- 2,1,2,2,1,2,2,1,2,2,
- 1,2,2,1,3,1,3,1,1,1,
+ 0,0,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,3,1,
+ 1,4,4,3,3,2,2,8,1,0,
+ 1,1,2,2,2,2,2,2,2,2,
+ 2,4,1,4,1,3,3,3,1,3,
+ 3,1,3,3,1,3,3,3,3,1,
+ 3,3,1,3,1,3,1,3,1,3,
+ 1,3,1,5,1,3,3,3,3,3,
+ 3,3,3,3,3,3,1,1,2,1,
+ 0,1,3,1,1,1,1,1,1,1,
+ 1,3,4,3,2,4,1,2,1,1,
+ 1,2,5,7,5,1,0,7,5,9,
+ 8,3,2,2,2,3,2,4,2,2,
+ 2,2,2,1,1,1,1,2,1,2,
+ 2,2,1,2,2,1,2,2,1,2,
+ 2,1,2,2,1,3,1,3,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,6,8,
- 0,0,1,1,3,3,3,0,1,0,
- 1,2,4,2,1,1,1,3,1,1,
- 2,3,7,8,0,1,0,1,3,1,
- 3,1,1,1,1,1,1,3,1,1,
- 1,1,1,3,1,2,2,1,5,3,
- 1,3,5,1,3,1,3,2,4,3,
- 5,4,6,6,3,5,1,2,3,4,
- 5,0,1,2,1,3,1,1,3,2,
- 1,1,1,1,2,1,2,3,1,1,
- 1,3,1,2,2,2,3,4,5,1,
- 7,3,0,0,1,1,3,3,4,1,
- 1,2,3,2,3,2,1,0,1,2,
- 1,1,1,1,1,2,4,3,6,2,
- 4,-73,0,-2,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-28,
- 0,0,-137,0,-17,-133,0,0,-260,0,
- -6,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-191,0,0,0,
- 0,0,0,-23,0,0,0,0,-19,0,
- -3,0,0,0,0,0,0,-121,-120,0,
- 0,0,0,0,0,0,-18,0,0,0,
+ 1,1,1,1,1,1,1,1,1,6,
+ 8,0,0,1,1,3,3,3,0,1,
+ 0,1,2,4,2,1,1,1,3,1,
+ 1,2,3,7,8,0,1,0,1,3,
+ 1,3,1,1,1,1,1,1,3,1,
+ 1,1,1,1,3,1,2,2,1,5,
+ 3,1,3,5,1,3,1,3,2,4,
+ 3,5,4,6,6,3,5,1,3,4,
+ 5,6,0,1,2,1,3,1,1,3,
+ 2,1,1,1,1,2,1,2,3,1,
+ 1,1,3,1,2,2,2,3,4,5,
+ 1,7,3,0,0,1,1,3,3,4,
+ 1,1,2,3,2,3,2,1,0,1,
+ 2,1,1,1,1,1,2,4,3,6,
+ 2,4,-73,0,-2,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-141,0,0,0,0,0,0,0,-87,
- 0,-146,0,0,0,0,0,0,0,0,
+ -28,0,0,-6,0,-23,0,0,0,-185,
+ 0,-48,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-4,-82,0,
+ 0,0,0,0,-24,0,0,0,0,0,
+ -37,-3,0,0,0,0,0,0,-190,-193,
+ 0,0,0,0,0,0,0,-18,0,0,
+ 0,0,0,0,0,0,0,0,0,-110,
+ 0,0,0,-19,0,-34,0,0,0,0,
+ 0,-86,0,-9,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-34,0,0,0,0,0,0,
- 0,0,0,0,0,0,-163,0,0,0,
- 0,0,0,0,-182,0,0,0,0,0,
+ 0,0,0,0,0,0,-25,0,0,0,
+ 0,0,0,0,0,0,0,-163,0,0,
+ 0,0,0,0,0,-182,0,-20,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-241,0,0,0,0,0,0,0,
+ 0,0,0,-242,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -30,0,0,-284,0,-271,0,0,0,0,
+ 0,-30,0,0,-11,0,-273,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-37,0,-183,0,
- -256,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-145,0,0,
+ 0,0,0,0,0,0,0,-59,0,-183,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-20,0,0,0,0,
- 0,0,0,0,-176,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-118,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-53,-29,0,0,-32,0,-274,0,0,
+ 0,0,0,0,0,0,-146,0,0,0,
+ 0,-29,0,0,0,-180,0,-38,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-207,0,0,-39,0,-276,0,
0,0,0,0,0,0,0,0,0,0,
- -51,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-41,0,0,-22,
+ 0,0,-51,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-180,0,-9,0,0,0,0,
- 0,0,0,0,0,0,0,0,-38,0,
- 0,-39,-55,0,0,0,0,0,0,0,
+ 0,0,0,-45,0,-181,0,-47,0,0,
+ 0,0,0,0,0,0,0,0,0,-62,
+ 0,0,0,-55,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -204,0,0,-35,0,0,0,-285,0,-41,
+ 0,0,0,0,-35,0,0,0,-287,0,
+ -266,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-60,0,0,-63,
+ 0,-174,0,-14,0,0,0,0,0,0,
+ 0,0,0,0,0,-121,0,0,-147,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-264,0,0,-263,0,
- -181,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-123,0,0,-118,0,0,
+ 0,0,0,0,0,0,0,0,0,-12,
+ 0,0,0,-26,0,0,-81,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-241,0,0,-43,0,-108,
+ 0,-145,0,-65,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-33,0,0,-81,0,0,0,0,
+ 0,0,-17,0,0,0,0,0,0,-66,
+ 0,0,0,0,-27,0,0,0,0,0,
+ 0,0,-209,-50,0,0,-69,0,0,0,
+ 0,0,0,0,0,0,-71,-44,0,0,
+ -68,0,0,0,-61,0,0,0,0,0,
+ 0,0,0,0,-36,0,-32,0,0,0,
+ 0,0,0,-70,0,-144,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-45,0,0,0,0,-108,0,
- -70,0,-47,0,0,0,0,0,0,0,
+ 0,0,0,0,-148,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-49,-62,0,0,-174,0,-59,0,0,
- 0,0,0,0,0,0,0,0,-4,0,
- 0,0,0,0,-11,0,0,0,0,0,
- -50,-190,0,0,0,-63,0,0,0,0,
- 0,0,0,0,0,0,0,-12,0,0,
- 0,0,0,0,-65,0,0,0,0,0,
- 0,0,-147,0,-82,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-93,0,-74,
+ 0,0,0,0,0,-149,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -66,0,0,-106,0,-148,0,0,0,0,
+ 0,0,0,-33,0,0,-280,0,-150,0,
+ -106,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-84,0,0,0,
+ 0,-151,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-149,0,
+ 0,0,-142,0,-152,0,-158,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-142,0,0,-158,
- 0,-150,0,0,0,0,0,0,0,0,
+ 0,0,-159,0,0,0,0,-153,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-151,0,-144,0,0,0,
+ 0,0,0,0,0,0,0,0,-186,0,
+ -154,0,-187,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-195,0,
+ 0,-95,0,-155,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-186,0,0,-159,0,-152,0,-187,
+ 0,0,0,0,0,0,-156,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-197,0,0,-198,0,-157,
+ 0,-218,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -153,0,-69,0,0,0,0,0,0,0,
+ 0,0,-201,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-195,0,-154,0,0,0,0,0,0,
+ -219,0,0,-133,0,-206,0,-137,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-197,0,0,0,0,-155,0,-212,0,
+ 0,0,0,0,0,0,-211,0,-220,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-198,0,-156,
- 0,-43,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-96,0,-94,
+ 0,0,0,0,0,0,0,-212,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-157,0,-217,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-97,0,
+ -251,0,-98,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-99,0,
+ 0,-262,0,-204,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-78,
+ 0,0,-46,0,0,-100,-77,0,-76,-165,
+ 0,0,-272,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-279,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-278,0,-136,0,-21,-239,
+ 0,-53,-101,0,-290,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-58,0,0,-164,
+ 0,-42,0,0,0,0,0,0,-102,-67,
0,0,0,0,0,0,0,0,0,0,
- -36,0,0,-71,0,-201,0,0,0,0,
+ 0,-254,0,0,-83,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-72,-134,0,
+ 0,-117,-103,-57,0,0,0,0,0,0,
+ 0,-104,0,0,0,0,0,-141,-107,0,
+ 0,0,0,-105,0,0,0,0,-109,0,
+ 0,0,0,0,0,0,0,0,0,-213,
+ -143,0,0,0,0,-79,-111,0,0,0,
+ 0,-238,0,0,0,0,0,0,-112,0,
+ 0,0,0,0,0,0,0,-125,0,0,
+ 0,-160,0,0,0,0,0,0,0,0,
+ -132,-188,0,0,-114,0,0,-115,0,-119,
+ -265,0,0,-191,0,0,0,0,0,0,
+ 0,0,0,-194,0,-87,0,0,0,0,
+ 0,0,0,0,0,0,-31,0,0,0,
+ 0,0,-116,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-123,0,0,0,0,
+ 0,0,0,-199,0,0,-135,0,0,-140,
+ -122,0,0,-127,-16,0,0,0,0,-264,
+ 0,0,0,-217,0,0,-192,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-218,0,0,-205,0,-206,0,
- -74,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-210,
- 0,-219,0,0,0,0,0,0,0,0,
+ 0,-257,0,0,0,-130,0,-131,-175,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-86,0,0,0,0,0,0,0,
- -211,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-238,0,
- 0,-248,0,-250,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-289,0,-205,0,
+ -221,-243,0,-64,0,0,0,-269,0,-40,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-270,0,-283,0,0,0,
+ -249,0,-253,0,0,-126,0,0,-285,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-172,0,-84,0,0,
- 0,0,0,0,0,-277,0,0,0,0,
+ 0,-274,-138,0,-139,0,0,-128,0,0,
+ -129,-255,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-91,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-95,0,0,-288,0,0,0,
+ 0,0,0,-200,0,0,-196,0,0,0,
+ -250,0,0,0,0,0,0,-256,-210,-222,
+ -189,0,0,-203,0,0,0,-223,0,-275,
+ -293,0,0,0,0,0,0,0,0,-176,
+ 0,-268,0,0,0,0,0,0,0,0,
+ 0,-245,0,0,0,0,0,0,-286,0,
+ 0,0,0,-208,0,0,0,0,0,0,
+ 0,0,0,0,-283,0,-247,0,0,0,
+ 0,0,0,0,0,0,0,-224,0,0,
+ -225,-244,0,0,0,-88,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-207,0,-96,
- -77,0,-278,-42,0,0,-97,-175,0,0,
+ 0,0,0,-248,0,0,-281,-292,0,-216,
+ 0,0,-214,0,-226,0,0,0,0,0,
+ 0,0,-227,0,0,-284,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-228,
+ -229,-230,0,0,-288,0,0,-291,0,0,
+ -231,-232,0,0,0,0,0,0,0,0,
+ 0,-233,0,0,-234,0,-294,-235,0,-295,
+ 0,0,-54,-236,0,0,0,0,0,0,
+ 0,0,0,-271,0,0,-237,0,-89,0,
0,0,0,0,0,0,0,0,0,0,
- -22,0,0,-165,0,0,-98,0,-24,0,
- 0,0,0,0,0,0,0,0,0,-99,
- -135,-68,0,0,0,-57,0,0,-177,0,
+ 0,0,0,0,0,-252,0,-260,-261,0,
+ 0,0,-270,-277,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-177,0,0,0,0,0,0,
+ 0,0,0,0,0,-170,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-178,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-49,0,0,0,0,
+ 0,0,-179,0,-7,0,0,0,0,0,
+ 0,0,0,0,-171,0,0,0,0,0,
+ 0,0,0,0,0,-1,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-56,0,0,0,0,-124,0,0,0,
+ 0,0,0,0,0,0,-172,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-173,0,0,
+ 0,0,0,0,0,0,0,-90,0,0,
+ 0,0,0,0,0,0,-92,0,0,0,
+ 0,0,0,0,0,-113,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-167,0,0,0,0,0,0,0,
+ 0,0,0,-168,0,0,0,0,0,0,
+ 0,0,-169,0,-8,0,0,0,0,0,
+ 0,-215,0,0,0,0,0,0,0,0,
+ -240,-5,0,0,-259,0,0,0,0,0,
+ 0,0,0,-10,0,0,-166,0,0,0,
+ 0,0,0,0,0,0,-13,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-15,0,0,0,0,-75,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-80,
+ 0,0,0,0,0,-85,-120,0,0,0,
+ 0,0,0,0,-161,-162,0,0,0,-202,
+ -258,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-52,0,0,-263,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-267,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-282,-184,0,0,-246,
0,0,0,0,0,0,0,0,0,0,
- -85,0,0,0,0,-107,0,0,-208,0,
- -164,0,0,0,0,0,0,0,0,0,
- 0,0,0,-100,0,0,0,0,0,-237,
- -262,0,0,0,0,0,0,-25,0,0,
- 0,0,0,0,-26,0,-7,0,0,0,
- 0,0,0,0,0,0,-60,0,-125,0,
- 0,0,0,0,0,0,-101,0,-27,0,
- 0,0,0,-14,0,-102,0,0,-44,0,
- 0,0,0,-64,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-8,-103,
- 0,0,-61,0,0,0,-220,-46,0,0,
0,0,0,0,0,0,0,0,0,0,
- -188,-31,0,0,0,-185,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-267,0,0,0,0,0,
- -67,0,-239,-48,0,0,0,0,0,0,
- -104,0,0,0,0,0,0,0,0,-199,
- 0,0,0,-72,0,0,0,0,0,0,
- 0,-16,0,-21,0,0,-76,0,0,-105,
- 0,0,0,0,-40,-117,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-78,
- 0,0,-124,0,0,-83,0,0,0,0,
- 0,0,-111,-109,0,0,0,0,0,0,
- 0,0,0,0,0,0,-56,-112,0,0,
- 0,0,-132,0,0,0,-52,0,0,-240,
- -114,0,0,0,0,0,-170,0,-115,0,
- 0,0,0,0,0,0,0,0,0,-192,
- 0,0,0,0,0,-116,0,0,0,0,
- 0,0,-136,0,0,0,0,0,-79,0,
- 0,0,0,0,0,0,0,-126,0,0,
- -122,-255,0,0,-127,-119,0,0,0,0,
- -130,0,0,0,0,0,-194,0,0,-128,
- 0,0,-129,0,0,0,0,0,0,0,
- 0,0,0,-253,0,-276,0,0,-88,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-200,0,0,0,0,
- 0,-242,-249,0,0,0,0,0,-131,-189,
- 0,-138,0,0,0,-203,0,0,-139,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-178,0,-196,0,0,0,0,0,0,
- 0,0,0,-244,0,0,0,0,-134,0,
- 0,0,0,0,-209,-140,0,0,0,0,
- 0,0,0,-221,0,-222,0,0,-246,0,
- 0,0,0,0,0,0,0,0,0,-223,
- 0,0,-224,-193,-225,0,0,-89,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-247,0,0,-254,-272,
- 0,-252,0,0,-91,0,-226,0,0,0,
- 0,0,0,0,-266,0,0,-282,0,0,
- 0,-279,0,0,0,0,0,0,0,0,
- 0,-110,0,0,0,0,-281,0,0,-289,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-290,0,0,-273,0,-227,0,
- 0,-293,0,0,-54,-286,0,0,0,0,
- 0,0,0,0,0,-269,0,0,0,0,
- -90,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-287,0,
- 0,0,0,-228,0,-229,0,0,0,0,
- -291,0,0,0,-230,-231,0,0,0,0,
- 0,-232,-233,-234,-215,-179,0,0,0,0,
- 0,0,0,0,0,0,0,-171,0,-235,
- 0,0,0,0,0,0,0,0,0,0,
- -1,0,0,-173,0,-292,0,0,0,0,
- 0,0,0,-216,0,0,-236,-160,0,0,
- -251,-258,0,0,0,-213,0,0,0,0,
- 0,0,0,0,-92,0,0,0,0,0,
- 0,0,0,-259,0,-113,0,0,0,0,
- 0,0,0,0,-268,-275,0,0,0,0,
- 0,0,-143,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-167,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-168,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-169,0,-10,
- 0,0,0,0,0,0,0,0,-214,0,
- 0,0,0,0,0,0,0,-257,-5,0,
- 0,0,0,0,0,0,-13,0,0,-75,
- -15,0,0,0,0,-80,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-202,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-93,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-94,0,0,0,0,0,0,0,
- -161,-162,0,0,0,0,0,0,-261,0,
- 0,0,0,0,0,0,0,-58,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-243,0,0,0,0,0,0,0,0,
- -265,-280,0,0,0,0,0,0,0,-166,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-184,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-245,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0
@@ -274,239 +280,245 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface BaseAction {
public final static char baseAction[] = {
- 106,2,39,39,23,23,41,41,18,18,
- 1,1,3,3,3,3,4,4,4,5,
- 6,6,6,6,6,6,6,6,68,68,
- 90,7,7,7,7,7,7,7,7,7,
- 7,7,8,8,9,9,9,9,10,10,
- 10,11,11,11,12,12,12,12,12,13,
- 13,13,14,14,15,15,16,16,17,17,
- 19,19,20,20,22,22,22,22,22,22,
- 22,22,22,22,22,22,29,27,21,107,
- 107,92,92,54,30,30,30,30,30,30,
- 30,31,31,31,28,28,93,93,69,69,
- 32,32,33,33,33,61,61,34,34,34,
- 34,35,35,35,35,35,47,47,24,24,
- 24,24,24,48,48,48,83,83,78,78,
- 78,78,79,79,79,80,80,80,81,81,
- 81,82,82,82,94,94,84,84,85,49,
- 51,51,51,51,51,62,64,64,64,64,
- 64,64,64,64,64,64,64,64,73,70,
- 70,108,109,74,74,71,71,71,86,95,
- 95,96,96,87,87,87,55,110,110,97,
- 98,98,98,72,72,111,99,99,100,100,
- 88,88,25,26,26,26,50,52,52,42,
- 42,42,42,36,36,37,43,43,44,38,
- 38,101,101,45,113,113,112,112,46,46,
- 46,46,46,46,46,46,46,102,53,53,
- 53,53,40,75,75,65,65,65,66,66,
- 56,56,114,114,77,77,76,76,76,57,
- 57,57,58,59,59,59,60,60,60,60,
- 63,63,63,67,115,91,91,91,91,89,
- 116,117,117,118,118,119,119,106,106,120,
- 120,103,103,103,103,121,121,104,104,104,
- 105,105,292,1729,754,16,20,17,1274,1248,
- 44,1300,1327,1307,1384,1340,1436,1427,1521,1460,
- 622,1550,74,1261,91,331,1509,134,212,1407,
- 19,324,16,20,17,1274,42,44,1300,1327,
- 1307,1384,1340,1436,1427,1521,1460,1509,1550,73,
- 136,133,135,159,322,1062,556,223,232,296,
- 773,1051,178,335,138,583,165,179,421,1110,
- 718,312,142,145,148,151,636,581,330,1482,
- 1407,1459,2090,2117,2121,1542,134,212,282,87,
- 87,1127,1161,1534,1671,1012,115,556,223,231,
- 1407,19,1295,16,20,17,1274,42,39,136,
- 133,135,159,586,223,228,1804,254,212,217,
- 743,220,222,138,908,165,1607,254,212,491,
- 1677,142,145,148,151,636,308,587,30,1407,
- 1459,2090,2117,2121,1542,1407,19,230,16,20,
- 17,1274,42,44,1300,1327,1307,1384,1340,1436,
- 1427,1953,341,1350,19,696,16,20,17,1274,
- 1248,44,1300,1327,1307,1384,1340,1436,1427,1521,
- 1460,440,1550,74,459,280,1369,19,696,16,
- 20,17,1274,1248,44,1300,1327,1307,1384,1340,
- 1436,1427,1521,1460,224,1550,74,892,280,1407,
- 19,1506,16,20,17,1274,42,44,1300,1327,
- 1307,1384,1340,1436,1954,127,285,24,1223,19,
- 1598,16,20,17,1274,1248,44,1300,1327,1307,
- 1384,1340,1436,1427,1521,1460,314,1550,74,285,
- 1039,773,286,1598,699,1407,19,273,16,20,
- 17,1274,42,44,1300,1327,1889,239,268,963,
- 970,271,421,746,769,286,1006,1227,1265,19,
- 696,16,20,17,1274,1248,44,1300,1327,1307,
- 1384,1340,1436,1427,1521,1460,1534,1550,74,281,
- 280,1199,19,1576,16,20,17,1274,1248,44,
- 1300,1327,1307,1384,1340,1436,1427,1521,1460,305,
- 1550,74,226,855,1407,19,176,16,20,17,
- 1274,42,44,1300,1327,1307,1384,1340,1946,357,
- 238,287,501,1242,19,1598,16,20,17,1274,
- 1248,44,1300,1327,1307,1384,1340,1436,1427,1521,
- 1460,1261,1550,74,421,280,582,288,1388,19,
- 442,16,20,17,1274,1248,44,1300,1327,1307,
- 1384,1340,1436,1427,1521,1460,412,1550,74,1523,
- 280,1407,19,1862,16,20,17,1274,42,44,
- 1300,1327,1307,1384,1952,421,157,718,1407,19,
- 1598,16,20,17,1274,1248,44,1300,1327,1307,
- 1384,1340,1436,1427,1521,1460,87,1550,74,1832,
- 91,289,1032,913,364,1598,1426,19,2043,16,
- 20,17,1274,1248,44,1300,1327,1307,1384,1340,
- 1436,1427,1521,1460,626,1550,74,1887,947,1108,
- 178,1407,19,788,16,20,17,1274,42,44,
- 1300,1327,1307,1384,1340,1436,1427,1521,1460,227,
- 1550,93,622,708,134,212,1407,19,1045,16,
- 20,17,1274,42,44,1300,1327,1307,1805,419,
- 1671,1544,2036,1303,291,355,123,136,133,135,
- 159,908,1113,2126,769,1665,747,126,586,223,
- 228,138,773,165,218,743,220,222,505,142,
- 145,148,151,636,230,790,1366,1407,1459,2090,
- 2117,2121,1542,1407,19,359,16,20,17,1274,
- 1248,44,1300,1327,1307,1384,1340,1436,1427,1521,
- 1460,794,1550,74,440,85,1407,19,259,16,
- 20,17,1274,1248,44,1300,1327,1307,1384,1340,
- 1436,1427,1521,1460,240,1550,74,229,84,1407,
- 19,1329,16,20,17,1274,1248,44,1300,1327,
- 1307,1384,1340,1436,1427,1521,1460,1000,1550,74,
- 440,83,1407,19,1398,16,20,17,1274,1248,
- 44,1300,1327,1307,1384,1340,1436,1427,1521,1460,
- 233,1550,74,2099,82,1407,19,359,16,20,
- 17,1274,1248,44,1300,1327,1307,1384,1340,1436,
- 1427,1521,1460,1176,1550,74,440,81,1407,19,
- 1287,16,20,17,1274,1248,44,1300,1327,1307,
- 1384,1340,1436,1427,1521,1460,242,1550,74,18,
- 80,1407,19,54,16,20,17,1274,1248,44,
- 1300,1327,1307,1384,1340,1436,1427,1521,1460,275,
- 1550,74,440,79,1407,19,274,16,20,17,
- 1274,1248,44,1300,1327,1307,1384,1340,1436,1427,
- 1521,1460,440,1550,74,1764,78,1407,19,359,
- 16,20,17,1274,1248,44,1300,1327,1307,1384,
- 1340,1436,1427,1521,1460,1789,1550,74,440,77,
- 1407,19,443,16,20,17,1274,1248,44,1300,
- 1327,1307,1384,1340,1436,1427,1521,1460,241,1550,
- 74,1826,76,1407,19,440,16,20,17,1274,
- 1248,44,1300,1327,1307,1384,1340,1436,1427,1521,
- 1460,324,1550,74,58,75,1407,19,2002,16,
- 20,17,1274,1248,44,1300,1327,1307,1384,1340,
- 1436,1427,1521,1460,440,1550,74,1509,92,1407,
- 19,828,16,20,17,1274,42,44,1300,1327,
- 1307,1384,1340,1436,1427,1521,1460,2024,1550,93,
- 1407,19,440,16,20,17,1274,1248,44,1300,
- 1327,1307,1384,1340,1436,1427,1521,1460,203,1550,
- 74,1131,1694,1445,19,22,16,20,17,1274,
- 40,1407,19,211,16,20,17,1274,1248,44,
- 1300,1327,1307,1384,1340,1436,1427,1521,1460,440,
- 1550,74,1509,1829,1407,19,307,16,20,17,
- 1274,42,44,1300,1327,1307,1384,1340,1436,1427,
- 1521,1460,272,1550,93,1407,19,1523,16,20,
- 17,1274,42,44,1300,1327,1307,1384,1340,1436,
- 1427,1521,1460,180,1550,93,1407,19,384,16,
- 20,17,1274,42,44,1800,1407,19,201,16,
- 20,17,1274,42,44,1300,1327,1307,1384,1340,
- 1436,1427,1521,1460,1490,1550,93,1407,19,202,
- 16,20,17,1274,42,44,1300,1327,1307,1384,
- 1340,1436,1427,1521,1460,1941,1550,93,587,1732,
- 1056,628,1732,1432,178,1104,312,935,1407,19,
- 1896,16,20,17,1274,42,44,1300,1327,1307,
- 1837,833,110,1304,1313,86,718,663,1534,587,
- 186,1986,95,1511,108,94,96,97,98,99,
- 630,933,833,769,1419,89,1,1104,312,1407,
- 19,109,16,20,17,1274,42,44,1300,1327,
- 1934,421,310,312,110,196,946,86,1730,1483,
- 1534,587,30,106,95,1511,108,94,96,97,
- 98,99,87,104,345,196,209,311,966,208,
- 908,440,2209,109,254,212,1769,1346,587,185,
- 333,1739,586,223,228,326,764,1146,217,743,
- 220,222,273,277,278,107,1998,1045,262,235,
- 1104,312,292,266,963,970,271,509,192,587,
- 187,1152,134,212,541,122,931,110,920,421,
- 86,2120,263,1534,480,1104,718,95,1511,108,
- 94,96,97,98,99,141,133,135,159,944,
- 288,23,110,587,1666,86,109,359,421,140,
- 1301,165,95,1511,1661,94,96,97,98,99,
- 260,941,331,1513,134,212,1407,19,106,16,
- 20,17,1274,42,44,1300,1327,1307,1384,1340,
- 1436,1427,1521,1997,276,440,21,144,133,135,
- 159,1045,1530,950,890,769,1649,586,223,228,
- 1429,463,583,217,743,220,222,273,1867,111,
- 119,1104,312,491,419,792,1683,1366,266,963,
- 970,271,1108,178,581,1405,1555,421,110,1643,
- 591,86,126,583,1534,331,1045,1199,95,1511,
- 108,94,96,97,98,99,1610,134,212,258,
- 1119,105,1776,421,125,718,1122,109,1391,1584,
- 586,223,652,421,1027,357,217,743,220,680,
- 137,133,135,159,87,583,158,622,1063,107,
- 1058,253,212,421,139,2153,165,402,1597,769,
- 1115,1064,143,146,149,152,636,1407,19,1112,
- 16,20,17,1274,42,44,1300,1784,154,649,
- 421,1366,473,586,223,1619,60,773,517,218,
- 743,220,1611,628,1732,1101,586,223,228,1122,
- 773,412,218,743,220,222,273,674,521,1104,
- 718,876,421,258,496,172,1045,268,963,970,
- 271,1205,874,1584,253,212,110,1045,538,86,
- 562,1104,718,581,121,1482,95,1511,103,94,
- 96,97,98,99,359,2232,587,294,110,1407,
- 19,86,16,20,17,1274,42,38,95,1511,
- 101,94,96,97,98,99,603,1104,718,586,
- 223,228,1045,1126,402,217,743,220,222,360,
- 331,208,1499,243,110,158,868,86,1482,1285,
- 2241,193,671,1739,95,1511,102,94,96,97,
- 98,99,1407,19,905,16,20,17,1274,42,
- 44,1300,1327,1936,644,1104,718,154,649,419,
- 583,1736,586,223,228,1144,1122,517,217,743,
- 220,222,110,1610,706,86,745,194,2001,685,
- 1104,718,95,1511,118,94,96,97,98,99,
- 1505,253,212,1507,1110,367,718,110,1407,19,
- 86,16,20,17,1274,42,37,95,1511,114,
- 94,96,97,98,99,87,726,1104,718,359,
- 440,115,1509,197,199,1289,19,477,16,20,
- 17,1274,42,35,110,1045,1723,86,767,1104,
- 718,1369,440,279,95,1511,2035,94,96,97,
- 98,99,829,2242,769,1722,110,1045,244,86,
- 808,1104,718,204,245,1870,95,1511,113,94,
- 96,97,98,99,440,117,1534,1509,110,1284,
- 309,86,849,1104,718,581,359,1482,95,1511,
- 120,94,96,97,98,99,868,1892,1482,306,
- 110,1407,19,86,16,20,17,1274,42,36,
- 95,1511,119,94,96,97,98,99,494,587,
- 296,586,223,228,1286,293,1470,217,743,220,
- 222,1509,586,223,228,1484,1066,158,217,743,
- 220,222,712,795,755,331,1407,19,2001,16,
- 20,17,1274,42,44,1300,1327,1945,1407,19,
- 1486,16,20,17,1274,42,44,1300,1786,155,
- 649,349,27,371,1407,19,359,16,20,17,
- 1274,42,44,1803,1005,583,2108,1185,1339,303,
- 1955,1519,1514,198,199,809,1289,19,521,16,
- 20,17,1274,42,35,1407,19,276,16,20,
- 17,1274,42,34,1515,295,1407,19,302,16,
- 20,17,1274,42,35,1025,1516,2331,2331,2331,
- 273,2331,2331,1122,273,246,2331,2331,2331,2331,
- 2331,266,963,970,271,266,963,970,271,1407,
- 19,2331,16,20,17,1274,42,47,253,212,
- 1199,2331,1407,19,265,16,20,17,1274,42,
- 46,2331,2331,2331,299,301,2331,314,1407,19,
- 1003,16,20,17,1274,42,45,2331,2331,1319,
- 19,2109,16,20,17,1274,42,43,950,406,
- 769,371,2331,2331,2331,134,212,1062,412,2331,
- 874,1468,769,2331,2331,2331,938,303,769,2331,
- 2331,2331,1366,809,2331,2331,2331,2331,147,133,
- 135,159,134,212,196,1150,134,212,583,2331,
- 1366,2331,2331,992,2331,769,302,2331,2331,2331,
- 2331,521,2331,2331,258,150,133,135,159,153,
- 133,135,159,1391,1584,1769,2331,196,2331,2331,
- 1464,19,258,16,20,17,1274,33,2331,2331,
- 2331,874,1584,1464,19,2331,16,20,17,1274,
- 32,421,421,312,312,2331,2331,191,1769,402,
- 2331,769,300,301,2331,336,1341,2331,419,2331,
- 718,2331,87,87,2331,196,196,2331,966,966,
- 2331,2331,1110,1366,718,2331,124,2331,917,87,
- 191,1110,1110,718,718,1556,2331,2331,1202,1341,
- 421,2331,718,87,2331,2331,1998,1998,2331,115,
- 2331,2331,87,87,421,258,718,2331,115,115,
- 2331,87,2331,2331,1830,1584,2331,1467,1085,1124,
- 421,2331,718,2331,2331,87,2331,2331,2331,2331,
- 2331,1970,2331,1845,2331,2331,2331,2331,2331,2331,
- 2331,87,1852,1884,2331,2331,2331,1505,2331,0,
- 10,225,0,2338,1,0,1,2567,0,7,
- 9,0,178,19,0,1,2556,0,112,1848,
+ 106,2,123,40,40,23,23,41,41,18,
+ 18,1,1,3,3,3,3,4,4,4,
+ 5,6,6,6,6,6,6,6,6,68,
+ 68,90,7,7,7,7,7,7,7,7,
+ 7,7,7,8,8,9,9,9,9,10,
+ 10,10,11,11,11,12,12,12,12,12,
+ 13,13,13,14,14,15,15,16,16,17,
+ 17,19,19,20,20,22,22,22,22,22,
+ 22,22,22,22,22,22,22,29,27,21,
+ 107,107,92,92,54,30,30,30,30,30,
+ 30,30,31,31,31,28,28,93,93,69,
+ 69,32,32,33,33,33,61,61,34,34,
+ 34,34,35,35,35,35,35,47,47,24,
+ 24,24,24,24,48,48,48,83,83,78,
+ 78,78,78,79,79,79,80,80,80,81,
+ 81,81,82,82,82,94,94,84,84,85,
+ 49,51,51,51,51,51,62,64,64,64,
+ 64,64,64,64,64,64,64,64,64,73,
+ 70,70,108,109,74,74,71,71,71,86,
+ 95,95,96,96,87,87,87,55,110,110,
+ 97,98,98,98,72,72,111,99,99,100,
+ 100,88,88,25,26,26,26,50,52,52,
+ 42,42,42,42,37,37,38,43,43,44,
+ 39,39,101,101,45,113,113,112,112,46,
+ 46,46,46,46,46,46,46,46,102,53,
+ 53,53,53,36,75,75,65,65,65,66,
+ 66,56,56,114,114,77,77,76,76,76,
+ 57,57,57,58,59,59,59,60,60,60,
+ 60,63,63,63,67,115,91,91,91,91,
+ 89,116,117,117,118,118,119,119,106,106,
+ 120,120,103,103,103,103,121,121,104,104,
+ 104,105,105,292,1568,754,17,21,18,1042,
+ 947,45,1178,1213,1209,1256,1229,1349,1313,1392,
+ 1383,622,1404,75,324,92,322,768,135,213,
+ 1407,20,331,17,21,18,1042,43,45,1178,
+ 1213,1209,1256,1229,1349,1313,1392,1867,419,359,
+ 1309,137,134,136,160,587,187,638,458,224,
+ 233,892,1051,179,793,139,127,166,1426,1485,
+ 1110,770,539,143,146,149,152,414,581,128,
+ 1497,1965,2115,2144,2157,2173,1535,135,213,241,
+ 829,88,770,1399,296,1566,908,116,2255,458,
+ 224,232,1445,20,176,17,21,18,1042,41,
+ 137,134,136,160,1378,847,224,229,310,231,
+ 218,924,221,223,139,260,166,587,186,309,
+ 492,1592,143,146,149,152,414,307,587,31,
+ 1965,2115,2144,2157,2173,1535,1407,20,314,17,
+ 21,18,1042,43,45,1178,1213,1209,1256,1229,
+ 1349,1313,1845,334,1350,20,681,17,21,18,
+ 1042,947,45,1178,1213,1209,1256,1229,1349,1313,
+ 1392,1383,440,1404,75,355,281,1369,20,681,
+ 17,21,18,1042,947,45,1178,1213,1209,1256,
+ 1229,1349,1313,1392,1383,225,1404,75,986,281,
+ 1407,20,336,17,21,18,1042,43,45,1178,
+ 1213,1209,1256,1229,1349,1848,124,286,25,1407,
+ 20,1439,17,21,18,1042,947,45,1178,1213,
+ 1209,1256,1229,1349,1313,1392,1383,1161,1404,75,
+ 286,92,746,287,1439,1471,1407,20,357,17,
+ 21,18,1042,43,45,1178,1213,1209,1256,1229,
+ 1832,365,255,213,587,1633,287,501,1619,1265,
+ 20,681,17,21,18,1042,947,45,1178,1213,
+ 1209,1256,1229,1349,1313,1392,1383,442,1404,75,
+ 833,281,1342,1199,20,1365,17,21,18,1042,
+ 947,45,1178,1213,1209,1256,1229,1349,1313,1392,
+ 1383,1566,1404,75,626,359,1407,20,788,17,
+ 21,18,1042,43,45,1178,1213,1209,1256,1842,
+ 708,311,288,239,1242,20,1439,17,21,18,
+ 1042,947,45,1178,1213,1209,1256,1229,1349,1313,
+ 1392,1383,210,1404,75,421,281,1312,289,1388,
+ 20,412,17,21,18,1042,947,45,1178,1213,
+ 1209,1256,1229,1349,1313,1392,1383,986,1404,75,
+ 747,281,1407,20,541,17,21,18,1042,43,
+ 45,1178,1213,1209,1795,123,421,158,539,1407,
+ 20,1439,17,21,18,1042,947,45,1178,1213,
+ 1209,1256,1229,1349,1313,1392,1383,88,1404,75,
+ 505,86,290,1039,326,634,1439,1426,20,1421,
+ 17,21,18,1042,947,45,1178,1213,1209,1256,
+ 1229,1349,1313,1392,1383,1115,1404,75,443,856,
+ 1108,179,1223,20,790,17,21,18,1042,947,
+ 45,1178,1213,1209,1256,1229,1349,1313,1392,1383,
+ 805,1404,75,331,1420,135,213,1894,927,292,
+ 794,638,847,224,229,587,188,219,924,221,
+ 223,274,240,1295,908,744,2210,54,137,134,
+ 136,160,269,1019,1023,272,437,58,421,562,
+ 2178,833,139,1448,166,587,1470,231,255,213,
+ 143,146,149,152,414,324,331,1059,1965,2115,
+ 2144,2157,2173,1535,1407,20,359,17,21,18,
+ 1042,43,45,1178,1213,1209,1256,1229,1349,1313,
+ 1392,1383,105,1404,94,1407,20,900,17,21,
+ 18,1042,947,45,1178,1213,1209,1256,1229,1349,
+ 1313,1392,1383,227,1404,75,243,85,1464,20,
+ 828,17,21,18,1042,34,1407,20,1534,17,
+ 21,18,1042,947,45,1178,1213,1209,1256,1229,
+ 1349,1313,1392,1383,913,1404,75,1484,84,1407,
+ 20,440,17,21,18,1042,947,45,1178,1213,
+ 1209,1256,1229,1349,1313,1392,1383,384,1404,75,
+ 308,83,1407,20,230,17,21,18,1042,947,
+ 45,1178,1213,1209,1256,1229,1349,1313,1392,1383,
+ 228,1404,75,1006,82,1407,20,440,17,21,
+ 18,1042,947,45,1178,1213,1209,1256,1229,1349,
+ 1313,1392,1383,440,1404,75,234,81,1407,20,
+ 2122,17,21,18,1042,947,45,1178,1213,1209,
+ 1256,1229,1349,1313,1392,1383,19,1404,75,1176,
+ 80,1407,20,1285,17,21,18,1042,947,45,
+ 1178,1213,1209,1256,1229,1349,1313,1392,1383,440,
+ 1404,75,1490,79,1407,20,293,17,21,18,
+ 1042,947,45,1178,1213,1209,1256,1229,1349,1313,
+ 1392,1383,1722,1404,75,276,78,1407,20,275,
+ 17,21,18,1042,947,45,1178,1213,1209,1256,
+ 1229,1349,1313,1392,1383,440,1404,75,440,77,
+ 1407,20,440,17,21,18,1042,947,45,1178,
+ 1213,1209,1256,1229,1349,1313,1392,1383,1747,1404,
+ 75,1784,76,1407,20,1888,17,21,18,1042,
+ 947,45,1178,1213,1209,1256,1229,1349,1313,1392,
+ 1383,440,1404,75,1511,93,1407,20,1056,17,
+ 21,18,1042,43,45,1178,1213,1209,1256,1229,
+ 1349,1313,1392,1383,1889,1404,94,1407,20,440,
+ 17,21,18,1042,947,45,1178,1213,1209,1256,
+ 1229,1349,1313,1392,1383,180,1404,75,1055,1642,
+ 1464,20,23,17,21,18,1042,33,1407,20,
+ 212,17,21,18,1042,947,45,1178,1213,1209,
+ 1256,1229,1349,1313,1392,1383,1589,1404,75,935,
+ 1688,1407,20,663,17,21,18,1042,43,45,
+ 1178,1213,1209,1256,1229,1349,1313,1392,1383,630,
+ 1404,94,1407,20,1056,17,21,18,1042,947,
+ 45,1178,1213,1209,1256,1229,1349,1313,1392,1383,
+ 331,1404,75,421,74,1257,345,628,1633,421,
+ 1313,1307,539,1407,20,202,17,21,18,1042,
+ 43,45,1178,1213,1209,1256,1229,1349,1313,1392,
+ 1383,90,1404,94,1407,20,1530,17,21,18,
+ 1042,43,45,1178,1213,1209,1256,1229,1349,1313,
+ 1392,1383,1613,1404,94,587,295,628,1633,581,
+ 440,1600,421,509,770,1407,20,203,17,21,
+ 18,1042,43,45,1178,1213,1209,1256,1229,1349,
+ 1313,1392,1383,273,1404,94,1378,419,1825,539,
+ 587,31,178,827,313,209,847,224,587,931,
+ 986,218,924,221,607,125,1138,1635,88,306,
+ 111,159,1486,87,1382,1119,1378,1159,112,1847,
+ 96,1350,109,95,97,98,99,100,419,419,
+ 1641,1694,986,288,1,827,313,255,213,110,
+ 254,213,463,155,568,209,127,195,1119,946,
+ 126,1691,111,371,591,87,1234,1635,1378,1000,
+ 845,107,96,1350,109,95,97,98,99,100,
+ 359,1119,675,254,213,312,890,421,1398,1474,
+ 24,110,908,400,2258,1384,847,224,229,1067,
+ 557,218,924,221,223,274,254,213,235,827,
+ 313,263,1339,108,1790,278,267,1019,1023,272,
+ 242,421,941,2230,2131,1064,111,772,1069,87,
+ 986,1502,1378,813,1511,264,96,1350,109,95,
+ 97,98,99,100,986,277,1407,20,122,17,
+ 21,18,1042,43,40,110,557,331,274,847,
+ 224,229,1762,60,218,924,221,223,274,267,
+ 1019,1023,272,261,492,283,421,107,539,267,
+ 1019,1023,272,1157,119,827,313,933,266,770,
+ 1124,876,1734,562,172,1108,179,88,1310,1700,
+ 440,1524,111,1085,1005,87,2135,421,1378,474,
+ 1956,197,96,1350,109,95,97,98,99,100,
+ 135,213,421,279,497,106,1027,277,360,1407,
+ 20,110,17,21,18,1042,43,45,1178,1213,
+ 1209,1803,1379,138,134,136,160,587,297,1511,
+ 274,359,986,108,480,827,539,140,440,166,
+ 331,267,1019,1023,272,144,147,150,153,414,
+ 2292,1511,111,1511,193,87,521,827,539,1502,
+ 1310,1745,96,1350,1531,95,97,98,99,100,
+ 204,22,440,1118,111,1205,562,87,562,827,
+ 539,581,359,1497,96,1350,104,95,97,98,
+ 99,100,181,2002,205,280,111,1289,20,87,
+ 17,21,18,1042,43,36,96,1350,102,95,
+ 97,98,99,100,603,827,539,905,847,224,
+ 229,1126,244,218,924,221,223,1701,359,1141,
+ 706,331,111,159,868,87,1497,246,745,194,
+ 1511,1511,96,1350,103,95,97,98,99,100,
+ 1407,20,986,17,21,18,1042,43,45,1178,
+ 1213,1820,644,827,539,155,568,562,245,459,
+ 2306,847,224,229,1119,371,218,924,221,223,
+ 111,1729,28,87,765,986,1886,685,827,539,
+ 96,1350,119,95,97,98,99,100,1498,254,
+ 213,1504,1110,118,539,111,1407,20,87,17,
+ 21,18,1042,43,39,96,1350,115,95,97,
+ 98,99,100,88,726,827,539,440,440,116,
+ 331,198,200,1289,20,367,17,21,18,1042,
+ 43,36,111,477,1681,87,767,827,539,1362,
+ 1828,1850,96,1350,1893,95,97,98,99,100,
+ 1284,1286,1470,1712,111,359,562,87,808,827,
+ 539,1483,1177,247,96,1350,114,95,97,98,
+ 99,100,712,2231,282,795,111,359,755,87,
+ 849,827,539,581,1045,1497,96,1350,121,95,
+ 97,98,99,100,868,294,1497,1185,111,1407,
+ 20,87,17,21,18,1042,43,38,96,1350,
+ 120,95,97,98,99,100,1499,296,1312,1512,
+ 847,224,229,1261,1514,218,924,221,223,2391,
+ 2391,847,224,229,2391,159,218,924,221,223,
+ 2391,2391,2391,2391,1407,20,1886,17,21,18,
+ 1042,43,45,1178,1213,1821,1407,20,2391,17,
+ 21,18,1042,43,45,1178,1690,156,568,1407,
+ 20,2391,17,21,18,1042,43,45,1178,1213,
+ 1822,2391,2391,2391,2391,2391,622,2391,2391,2391,
+ 2391,199,200,1407,20,1146,17,21,18,1042,
+ 43,45,1178,1213,1831,1407,20,2391,17,21,
+ 18,1042,43,45,1178,1698,349,2391,372,2391,
+ 135,213,638,847,224,229,2391,2391,219,924,
+ 221,223,622,2391,304,2391,2391,421,2391,539,
+ 358,2391,2391,142,134,136,160,1407,20,2391,
+ 17,21,18,1042,43,45,1758,141,88,166,
+ 2391,2391,2391,303,1088,2391,2391,2391,638,847,
+ 224,1468,2391,2391,219,924,221,1465,1407,20,
+ 2391,17,21,18,1042,43,45,1761,1407,20,
+ 2391,17,21,18,1042,43,37,1407,20,2391,
+ 17,21,18,1042,43,35,1407,20,2391,17,
+ 21,18,1042,43,36,2391,2391,2391,2391,300,
+ 302,2391,315,1407,20,2391,17,21,18,1042,
+ 43,48,2391,2391,1407,20,2132,17,21,18,
+ 1042,43,47,1407,20,944,17,21,18,1042,
+ 43,46,1319,20,2391,17,21,18,1042,43,
+ 44,950,406,770,372,950,2391,770,2391,2391,
+ 135,213,2391,2391,1003,2391,2391,421,2391,539,
+ 304,2391,2391,2391,2391,1399,358,1062,2391,1399,
+ 2391,2391,2391,145,134,136,160,562,88,135,
+ 213,562,2391,1468,1591,2391,2391,2391,874,303,
+ 770,2391,135,213,765,2391,2391,259,2231,2391,
+ 2391,259,148,134,136,160,1540,1409,135,213,
+ 1540,1409,197,2391,2391,151,134,136,160,2391,
+ 938,2391,770,2391,2391,2391,421,1110,313,313,
+ 2391,154,134,136,160,421,421,313,313,2391,
+ 992,1508,770,1379,1399,301,302,88,88,2391,
+ 197,1378,2391,993,116,2391,88,88,2391,197,
+ 197,2391,993,993,197,402,2391,770,402,2391,
+ 770,2391,2391,2391,380,192,259,638,2391,2391,
+ 2391,1452,2391,1134,1527,931,1409,274,1484,1399,
+ 1452,1452,1399,2391,2391,1379,2391,2391,269,1019,
+ 1023,272,1110,977,539,2391,2391,2391,2391,2391,
+ 2391,2391,1092,1131,2391,2391,1110,421,539,539,
+ 421,259,539,88,259,2391,2391,192,2391,116,
+ 931,1409,973,1632,1409,1611,1527,88,88,2391,
+ 2391,88,2391,116,1854,2391,2391,1598,2391,2391,
+ 2391,2391,2391,2391,2391,2391,2391,2391,2391,2391,
+ 2391,2391,2391,1787,2391,2391,2391,2391,2391,2391,
+ 2391,2391,2391,2391,2391,2391,2391,1788,2391,0,
+ 11,226,0,2399,1,0,1,2628,0,8,
+ 10,0,179,20,0,1,2617,0,113,1806,
0
};
};
@@ -615,27 +627,27 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
5,19,20,21,5,23,24,25,26,27,
28,29,19,20,21,53,23,60,25,26,
27,28,29,41,42,43,44,45,46,47,
- 48,49,50,51,52,0,54,55,56,0,
+ 48,49,50,51,52,0,54,55,56,4,
58,0,1,53,3,4,62,63,53,0,
- 60,64,0,4,0,0,2,2,4,0,
+ 60,64,0,0,0,0,2,22,4,4,
19,20,21,64,23,24,25,26,27,28,
29,19,20,21,0,23,0,25,26,27,
28,29,41,42,43,44,45,46,47,48,
- 49,50,51,52,0,54,55,56,4,58,
- 0,1,2,3,0,0,57,53,53,60,
- 5,0,0,0,60,0,22,4,6,19,
- 20,21,0,23,9,25,26,27,28,29,
+ 49,50,51,52,0,54,55,56,0,58,
+ 0,1,2,3,0,0,57,53,0,5,
+ 2,0,57,0,60,60,0,4,0,19,
+ 20,21,6,23,6,25,26,27,28,29,
19,20,21,57,23,22,25,26,27,28,
29,41,42,43,44,45,46,47,48,49,
- 50,51,52,79,54,55,56,0,1,0,
- 3,0,0,4,0,1,2,6,0,5,
- 57,0,67,68,61,0,19,20,21,4,
+ 50,51,52,59,54,55,56,0,1,0,
+ 3,53,57,4,0,1,2,0,0,5,
+ 57,67,68,0,61,0,19,20,21,4,
23,22,25,26,27,28,29,19,20,21,
- 19,20,21,0,1,0,0,22,41,42,
+ 0,1,19,20,21,0,0,22,41,42,
43,44,45,46,47,48,49,50,51,52,
0,54,55,56,19,20,21,53,23,60,
- 25,26,27,28,29,0,64,2,0,19,
- 20,21,57,0,0,0,41,42,43,44,
+ 25,26,27,28,29,0,0,2,61,19,
+ 20,21,57,0,0,9,41,42,43,44,
45,46,47,48,49,50,51,52,0,1,
2,3,4,5,0,7,8,9,10,11,
12,13,14,15,16,17,18,0,0,0,
@@ -648,10 +660,10 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
16,17,18,0,0,0,0,65,0,1,
2,3,4,5,0,7,8,9,10,11,
12,13,14,15,16,17,18,0,0,0,
- 0,0,0,19,20,21,4,57,0,1,
+ 0,0,0,19,20,21,4,6,0,1,
2,3,58,5,6,7,8,9,10,11,
- 12,13,14,15,16,17,18,0,0,53,
- 2,57,0,5,0,62,63,62,63,0,
+ 12,13,14,15,16,17,18,53,0,79,
+ 2,0,0,5,0,62,63,62,63,0,
1,2,3,65,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,0,1,
2,3,60,5,6,7,8,9,10,11,
@@ -665,21 +677,20 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
0,7,8,9,10,11,12,13,14,15,
16,17,18,0,1,2,3,0,5,0,
7,8,9,10,11,12,13,14,15,16,
- 17,18,0,0,53,0,19,20,21,0,
- 23,2,25,26,27,28,29,66,0,10,
- 11,19,20,21,0,0,0,2,0,5,
- 5,5,4,0,0,0,0,0,0,6,
- 6,4,0,0,0,0,0,0,0,6,
- 6,62,63,6,0,0,0,0,0,0,
- 0,0,53,0,59,62,63,0,0,0,
- 0,0,0,0,0,66,0,0,53,61,
- 0,0,0,0,0,0,58,0,0,80,
- 0,67,68,67,68,58,61,59,0,57,
- 0,0,0,0,59,59,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0
+ 17,18,0,0,0,0,19,20,21,0,
+ 23,2,25,26,27,28,29,0,0,10,
+ 11,0,5,0,19,20,21,0,5,2,
+ 0,0,5,0,4,0,0,6,0,4,
+ 0,0,6,0,6,0,6,0,0,0,
+ 0,62,63,0,0,0,53,0,0,0,
+ 0,0,53,0,62,63,0,0,64,66,
+ 0,0,0,0,0,66,0,59,57,0,
+ 53,0,0,0,67,68,0,0,58,80,
+ 67,68,0,58,61,0,0,0,0,0,
+ 59,0,59,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0
};
};
public final static byte termCheck[] = TermCheck.termCheck;
@@ -687,165 +698,165 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface TermAction {
public final static char termAction[] = {0,
- 2331,4169,1,4168,1636,1,1342,1,1,1,
+ 2391,4227,1,4225,1503,1,831,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,2339,1,2431,1,1,1,1,1,
- 826,798,771,1417,993,1444,793,1463,871,2218,
- 845,1,1,1,1,1,1,1,1,1,
- 1,1,1,2331,1,1,1,2331,2337,7,
- 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319,
- 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319,
- 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319,
- 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319,
- 2319,2319,2319,2319,2319,2319,2319,2319,2319,2319,
- 2319,2319,1658,2319,2319,2319,1680,2319,2331,4169,
- 1,4168,1636,1,1342,1,1,1,1,1,
+ 1,1,2400,1,2492,1,1,1,1,1,
+ 700,518,854,697,817,1594,650,835,800,1337,
+ 774,1,1,1,1,1,1,1,1,1,
+ 1,1,1,2391,1,1,1,2391,2398,8,
+ 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379,
+ 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379,
+ 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379,
+ 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379,
+ 2379,2379,2379,2379,2379,2379,2379,2379,2379,2379,
+ 2379,2379,1616,2379,2379,2379,1638,2379,2391,4227,
+ 1,4225,1503,1,831,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 2339,1,2431,1,1,1,1,1,826,798,
- 771,1417,993,1444,793,1463,871,2218,845,1,
+ 2400,1,2492,1,1,1,1,1,700,518,
+ 854,697,817,1594,650,835,800,1337,774,1,
1,1,1,1,1,1,1,1,1,1,
- 1,2331,1,1,1,181,2337,2331,4169,1,
- 4168,2340,1,1342,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,2339,
- 1,2431,1,1,1,1,1,826,798,771,
- 1417,993,1444,793,1463,871,2218,845,1,1,
+ 1,2391,1,1,1,182,2398,2391,4227,1,
+ 4225,2401,1,831,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,2400,
+ 1,2492,1,1,1,1,1,700,518,854,
+ 697,817,1594,650,835,800,1337,774,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1716,1,1,1,2331,4169,1,4168,2340,1,
- 1342,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,2339,1,2431,1,
- 1,1,1,1,826,798,771,1417,993,1444,
- 793,1463,871,2218,845,1,1,1,1,1,
- 1,1,1,1,1,1,1,70,1,1,
- 1,2331,2341,1361,2342,10,2026,2310,1911,1808,
- 2015,2193,2180,1173,2343,2344,2345,2346,1699,410,
- 2544,2545,2546,2331,2493,434,2494,2492,2547,2495,
- 2491,2331,2341,2331,2342,2331,2341,1439,2342,1321,
- 252,1468,2498,2503,2502,2500,2501,2499,2504,2505,
- 2497,2506,2507,2508,59,1434,838,815,2331,1,
- 1,1,2340,1,184,4166,156,4166,2331,19,
- 178,2322,2334,2322,2322,455,61,1,1,1,
- 2339,1,2635,1,1,1,1,1,178,178,
- 178,2322,178,42,178,178,178,178,178,1,
+ 1674,1,1,1,2391,4227,1,4225,2401,1,
+ 831,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,2400,1,2492,1,
+ 1,1,1,1,700,518,854,697,817,1594,
+ 650,835,800,1337,774,1,1,1,1,1,
+ 1,1,1,1,1,1,1,71,1,1,
+ 1,2391,2402,2216,2403,11,2076,2370,2058,1869,
+ 2067,1180,898,412,2404,2405,2406,2407,1766,1486,
+ 2605,2606,2607,2391,2554,406,2555,2553,2608,2556,
+ 2552,2391,2402,2391,2403,2391,2402,828,2403,610,
+ 253,1253,2559,2564,2563,2561,2562,2560,2565,2566,
+ 2558,2567,2568,2569,60,704,740,495,2391,1,
+ 1,1,2401,1,185,4220,157,4220,2391,20,
+ 179,2382,2395,2382,2382,456,62,1,1,1,
+ 2400,1,2696,1,1,1,1,1,179,179,
+ 179,2382,179,43,179,179,179,179,179,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,2331,1,1,1,2340,
- 1,2331,2322,1956,1752,1349,565,653,1,2322,
- 1,298,2340,2333,1,1,1,2339,1,2635,
- 1,1,1,1,1,1956,1752,1349,565,2331,
- 2339,234,182,2336,1083,222,1,1,1,1,
- 1,1,1,1,1,1,1,1,284,1,
- 1,1,68,222,1256,2588,1060,1037,1014,991,
- 968,922,945,899,876,853,60,1696,297,2331,
- 4169,1,4168,2340,1,1342,1,1,1,1,
- 1,1,1,1,1,1,1,1,222,2335,
- 228,2339,222,2431,183,4167,231,4167,66,826,
- 798,771,1417,993,1444,793,1463,871,2218,845,
- 2331,4169,1,4168,2340,1,1342,1,1,1,
- 1,1,1,1,1,1,1,1,1,519,
- 205,4170,2339,4170,2431,1956,1752,1349,565,2331,
- 826,798,771,1417,993,1444,793,1463,871,2218,
- 845,2331,4169,1,4168,2340,1,1342,1,1,
+ 1,1,1,1,1,2391,1,1,1,2401,
+ 1,2391,2382,1963,1939,1914,1710,654,1,2382,
+ 1,299,2401,2394,1,1,1,2400,1,2696,
+ 1,1,1,1,1,1963,1939,1914,1710,2391,
+ 2400,235,183,2397,1090,223,1,1,1,1,
+ 1,1,1,1,1,1,1,1,285,1,
+ 1,1,69,223,1284,2649,1067,1044,1021,998,
+ 975,929,952,906,875,719,61,1305,298,2391,
+ 4227,1,4225,2401,1,831,1,1,1,1,
+ 1,1,1,1,1,1,1,1,223,2396,
+ 229,2400,223,2492,184,4222,232,4222,67,700,
+ 518,854,697,817,1594,650,835,800,1337,774,
+ 2391,4227,1,4225,2401,1,831,1,1,1,
+ 1,1,1,1,1,1,1,1,1,520,
+ 206,4224,2400,4224,2492,1963,1939,1914,1710,2391,
+ 700,518,854,697,817,1594,650,835,800,1337,
+ 774,2391,4227,1,4225,2401,1,831,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,2556,387,2339,634,2431,2331,2341,2331,2342,
- 72,826,798,771,1417,993,1444,793,1463,871,
- 2218,845,2331,4169,1,4168,2340,1,1342,1,
+ 1,2617,388,2400,566,2492,2391,2402,2391,2403,
+ 73,700,518,854,697,817,1594,650,835,800,
+ 1337,774,2391,4227,1,4225,2401,1,831,1,
1,1,1,1,1,1,1,1,1,1,
- 1,252,2556,387,2339,2331,2431,207,2341,62,
- 2342,1547,826,798,771,1417,993,1444,793,1463,
- 871,2218,845,2331,4169,1,4168,2340,1,1342,
+ 1,253,2617,388,2400,2391,2492,208,2402,63,
+ 2403,1259,700,518,854,697,817,1594,650,835,
+ 800,1337,774,2391,4227,1,4225,2401,1,831,
1,1,1,1,1,1,1,1,1,1,
- 1,1,51,206,1298,2339,1298,2431,2331,1984,
- 1246,1486,2264,826,798,771,1417,993,1444,793,
- 1463,871,2218,845,2331,4169,1,4168,2340,1,
- 1342,1,1,1,1,1,1,1,1,1,
- 1,1,1,1308,796,53,2339,2331,2431,379,
- 2331,63,1984,1246,826,798,771,1417,993,1444,
- 793,1463,871,2218,845,2331,4169,1,4168,2340,
- 1,1342,1,1,1,1,1,1,1,1,
- 1,1,1,1,52,2331,2331,2339,378,2431,
- 1514,1984,1246,2331,67,826,798,771,1417,993,
- 1444,793,1463,871,2218,845,2331,4169,1,4168,
- 2340,1,1342,1,1,1,1,1,1,1,
- 1,1,1,1,1,1308,796,2331,2339,2331,
- 2431,715,1570,2331,69,1573,826,798,771,1417,
- 993,1444,793,1463,871,2218,845,2331,4169,1,
- 4168,2340,1,1342,1,1,1,1,1,1,
- 1,1,1,1,1,1,2309,2331,1,2339,
- 634,2431,1,1603,1342,2331,2313,826,798,771,
- 1417,993,1444,793,1463,871,2218,845,2331,4169,
- 1,4168,2340,1,1342,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,2556,387,
- 2339,519,2431,2331,1,2331,1,190,826,798,
- 771,1417,993,1444,793,1463,871,2218,845,248,
- 2337,2331,1,1,1,2340,1,2526,1,1,
- 1,1,1,2331,2331,1754,2280,1,1,1,
- 1,2336,219,2339,1,1,1,1,1,1,
- 1,1,1,1,1,1,1204,1,1,1,
- 64,190,2331,1,54,1,189,1,2316,701,
- 1,2325,1481,129,2336,261,2556,1481,1895,1,
- 1,1,1,1,252,1,2526,1,1,1,
- 1,1,2544,2545,2546,611,2493,2335,2494,2492,
- 2547,2495,2491,1,1,1,1,1,1,1,
- 1,1,1,1,1,2331,1,1,1,2331,
- 189,2331,1,611,1,190,1617,1968,611,2331,
- 2335,2588,130,2336,1,221,1994,821,2336,2331,
- 1,1,1,2588,1,2526,1,1,1,1,
- 1,2544,2545,2546,112,2493,255,2494,2492,2547,
- 2495,2491,1,1,1,1,1,1,1,1,
- 1,1,1,1,2331,1,1,1,2340,190,
- 1,369,387,2342,2331,48,1775,611,611,2335,
- 2088,131,2331,235,2335,65,2339,222,1630,2544,
- 2545,2546,2331,2493,701,2494,2492,2547,2495,2491,
- 2544,2545,2546,822,2493,222,2494,2492,2547,2495,
- 2491,2498,2503,2502,2500,2501,2499,2504,2505,2497,
- 2506,2507,2508,2328,1434,838,815,2331,2341,1,
- 2342,228,1,116,267,2556,1481,232,249,252,
- 222,2331,2072,2059,222,2331,2544,2545,2546,2340,
- 2493,116,2494,2492,2547,2495,2491,1,1,1,
- 2544,2545,2546,2331,2568,128,2331,2339,2498,2503,
- 2502,2500,2501,2499,2504,2505,2497,2506,2507,2508,
- 250,1434,838,815,2544,2545,2546,611,2493,116,
- 2494,2492,2547,2495,2491,269,2587,1390,2331,2544,
- 2545,2546,1906,2331,71,2331,2498,2503,2502,2500,
- 2501,2499,2504,2505,2497,2506,2507,2508,1,2341,
- 1361,2342,2334,1835,88,1911,1808,2015,2193,2180,
- 1173,2343,2344,2345,2346,1699,410,2331,2331,2331,
- 2331,746,2331,2341,1361,2342,2334,2006,611,1911,
- 1808,2015,2193,2180,1173,2343,2344,2345,2346,1699,
- 410,2331,2341,1361,2342,1181,2026,4160,1911,1808,
- 2015,2193,2180,1173,2343,2344,2345,2346,1699,410,
- 29,1106,455,2333,1,2341,1361,2342,28,2026,
- 4160,1911,1808,2015,2193,2180,1173,2343,2344,2345,
- 2346,1699,410,58,206,57,270,2333,2331,2341,
- 1361,2342,2334,2026,247,1911,1808,2015,2193,2180,
- 1173,2343,2344,2345,2346,1699,410,2331,2331,2331,
- 2331,2331,1,2544,2545,2546,90,2359,2331,2341,
- 1361,2342,28,2026,1662,1911,1808,2015,2193,2180,
- 1173,2343,2344,2345,2346,1699,410,2331,264,611,
- 1994,3306,2331,1,2331,1617,1968,1617,1968,1,
- 2341,1361,2342,2333,2026,4160,1911,1808,2015,2193,
- 2180,1173,2343,2344,2345,2346,1699,410,1,2341,
- 1361,2342,90,2026,4160,1911,1808,2015,2193,2180,
- 1173,2343,2344,2345,2346,1699,410,2331,2341,1361,
- 2342,611,2026,4160,1911,1808,2015,2193,2180,1173,
- 2343,2344,2345,2346,1699,410,2331,2341,1361,2342,
- 2331,2026,2331,1911,1808,2015,2193,2180,1173,2343,
- 2344,2345,2346,1699,410,1,2341,1361,2342,2331,
- 2026,290,1911,1808,2015,2193,2180,1173,2343,2344,
- 2345,2346,1699,410,2331,2341,2201,2342,2331,2026,
- 2331,1911,1808,2015,2193,2180,1173,2343,2344,2345,
- 2346,1699,410,2331,2341,2202,2342,132,2026,56,
- 1911,1808,2015,2193,2180,1173,2343,2344,2345,2346,
- 1699,410,251,55,1277,2331,2544,2545,2546,31,
- 2493,1324,2494,2492,2547,2495,2491,1929,210,2356,
- 2357,2544,2545,2546,50,267,49,1994,2331,2088,
- 252,2088,2338,41,2331,2331,2331,283,200,1662,
- 1662,1583,29,188,188,1,1,188,2331,184,
- 183,1617,1968,205,2331,2331,2331,2331,2331,2331,
- 2331,2331,2250,2331,339,1617,1968,2331,2331,2331,
- 2331,2331,2331,2331,2331,1371,2331,2331,611,1129,
- 2331,2331,2331,2331,2331,2331,2337,2331,2331,447,
- 2331,2072,2059,2072,2059,1583,678,1225,2331,588,
- 2331,2331,2331,2331,2342,2341
+ 1,1,52,207,584,2400,584,2492,2391,2048,
+ 2017,340,2307,700,518,854,697,817,1594,650,
+ 835,800,1337,774,2391,4227,1,4225,2401,1,
+ 831,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1569,702,54,2400,2391,2492,2217,
+ 2391,64,2048,2017,700,518,854,697,817,1594,
+ 650,835,800,1337,774,2391,4227,1,4225,2401,
+ 1,831,1,1,1,1,1,1,1,1,
+ 1,1,1,1,53,2391,2391,2400,716,2492,
+ 342,2048,2017,2391,68,700,518,854,697,817,
+ 1594,650,835,800,1337,774,2391,4227,1,4225,
+ 2401,1,831,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1569,702,2391,2400,2391,
+ 2492,1516,1250,2391,70,2007,700,518,854,697,
+ 817,1594,650,835,800,1337,774,2391,4227,1,
+ 4225,2401,1,831,1,1,1,1,1,1,
+ 1,1,1,1,1,1,2369,2391,1,2400,
+ 566,2492,1,1461,831,2391,2373,700,518,854,
+ 697,817,1594,650,835,800,1337,774,2391,4227,
+ 1,4225,2401,1,831,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,2617,388,
+ 2400,520,2492,2391,1,2391,1,191,700,518,
+ 854,697,817,1594,650,835,800,1337,774,249,
+ 2398,2391,1,1,1,2401,1,2587,1,1,
+ 1,1,1,2391,2391,1677,2310,1,1,1,
+ 1,2397,220,2400,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1211,1,1,1,
+ 65,191,2391,1,55,1,190,1,2376,636,
+ 1,2385,1462,130,2397,262,2617,1462,1853,1,
+ 1,1,1,1,253,1,2587,1,1,1,
+ 1,1,2605,2606,2607,613,2554,2396,2555,2553,
+ 2608,2556,2552,1,1,1,1,1,1,1,
+ 1,1,1,1,1,2391,1,1,1,2401,
+ 190,2391,1,613,1,191,1926,1975,613,256,
+ 2396,2649,131,2391,1,2391,1544,2400,2397,2397,
+ 1,1,1,2649,1,2587,1,1,1,1,
+ 1,2605,2606,2607,2391,2554,89,2555,2553,2608,
+ 2556,2552,1,1,1,1,1,1,1,1,
+ 1,1,1,1,2391,1,1,1,2391,191,
+ 1,404,388,2403,49,30,379,613,222,2113,
+ 814,132,1689,236,2396,2396,2391,223,229,2605,
+ 2606,2607,1547,2554,233,2555,2553,2608,2556,2552,
+ 2605,2606,2607,1113,2554,223,2555,2553,2608,2556,
+ 2552,2559,2564,2563,2561,2562,2560,2565,2566,2558,
+ 2567,2568,2569,1232,704,740,495,2391,2402,1,
+ 2403,613,2420,117,268,2617,1462,211,2391,253,
+ 223,2104,2093,250,223,2391,2605,2606,2607,2401,
+ 2554,117,2555,2553,2608,2556,2552,2605,2606,2607,
+ 2391,2629,1,1,1,129,2391,2400,2559,2564,
+ 2563,2561,2562,2560,2565,2566,2558,2567,2568,2569,
+ 248,704,740,495,2605,2606,2607,613,2554,117,
+ 2555,2553,2608,2556,2552,270,66,1432,1136,2605,
+ 2606,2607,1864,2391,72,636,2559,2564,2563,2561,
+ 2562,2560,2565,2566,2558,2567,2568,2569,1,2402,
+ 2216,2403,2395,1657,207,2058,1869,2067,1180,898,
+ 412,2404,2405,2406,2407,1766,1486,2391,2391,2391,
+ 2391,747,2391,2402,2216,2403,2395,1793,613,2058,
+ 1869,2067,1180,898,412,2404,2405,2406,2407,1766,
+ 1486,2391,2402,2216,2403,1188,2076,4219,2058,1869,
+ 2067,1180,898,412,2404,2405,2406,2407,1766,1486,
+ 113,3367,456,2394,1,2402,2216,2403,29,2076,
+ 4219,2058,1869,2067,1180,898,412,2404,2405,2406,
+ 2407,1766,1486,59,271,58,2391,2394,2391,2402,
+ 2216,2403,2395,2076,251,2058,1869,2067,1180,898,
+ 412,2404,2405,2406,2407,1766,1486,2391,2391,2391,
+ 2391,42,1,2605,2606,2607,91,1562,2391,2402,
+ 2216,2403,29,2076,1562,2058,1869,2067,1180,898,
+ 412,2404,2405,2406,2407,1766,1486,613,265,2388,
+ 1544,2391,2391,1,2391,1926,1975,1926,1975,1,
+ 2402,2216,2403,2394,2076,4219,2058,1869,2067,1180,
+ 898,412,2404,2405,2406,2407,1766,1486,1,2402,
+ 2216,2403,91,2076,4219,2058,1869,2067,1180,898,
+ 412,2404,2405,2406,2407,1766,1486,2391,2402,2216,
+ 2403,613,2076,4219,2058,1869,2067,1180,898,412,
+ 2404,2405,2406,2407,1766,1486,2391,2402,2216,2403,
+ 2391,2076,2391,2058,1869,2067,1180,898,412,2404,
+ 2405,2406,2407,1766,1486,1,2402,2216,2403,2391,
+ 2076,2391,2058,1869,2067,1180,898,412,2404,2405,
+ 2406,2407,1766,1486,2391,2402,2225,2403,2391,2076,
+ 2391,2058,1869,2067,1180,898,412,2404,2405,2406,
+ 2407,1766,1486,2391,2402,2226,2403,133,2076,57,
+ 2058,1869,2067,1180,898,412,2404,2405,2406,2407,
+ 1766,1486,56,291,1,252,2605,2606,2607,32,
+ 2554,1260,2555,2553,2608,2556,2552,51,201,2417,
+ 2418,30,2113,50,2605,2606,2607,268,2113,1544,
+ 2391,2391,253,2391,2399,284,189,1562,189,1427,
+ 189,1,185,1,184,2391,206,2391,2391,2391,
+ 2391,1926,1975,2391,2391,2391,1315,2391,2391,2391,
+ 2391,2391,2147,2391,1926,1975,2391,2391,2648,1587,
+ 2391,2391,2391,2391,2391,1340,2391,1263,589,2391,
+ 613,2391,2391,2391,2104,2093,2391,2391,2398,448,
+ 2104,2093,2391,1427,679,2391,2391,2391,2391,2391,
+ 2403,2391,2402
};
};
public final static char termAction[] = TermAction.termAction;
@@ -853,36 +864,36 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface Asb {
public final static char asb[] = {0,
- 493,1,371,447,493,491,180,192,489,192,
- 489,489,192,489,192,373,271,449,438,524,
- 449,343,489,309,309,489,309,449,271,208,
- 271,8,9,282,373,491,153,566,565,271,
- 62,344,491,211,491,273,271,200,449,282,
- 39,284,373,449,21,449,343,254,154,154,
- 309,524,524,241,524,524,154,343,15,256,
- 15,447,359,491,211,273,273,200,396,284,
- 93,59,396,119,359,256,256,256,256,256,
- 43,256,256,256,113,130,135,133,141,137,
- 144,143,146,145,147,208,203,373,207,465,
- 238,491,256,62,565,341,154,256,154,357,
- 256,400,256,256,344,241,15,241,449,150,
- 402,211,238,458,211,273,275,453,275,396,
- 200,207,396,59,42,39,256,256,256,256,
- 256,256,256,256,256,256,256,208,208,526,
- 359,359,309,309,161,256,256,256,256,256,
- 256,256,256,256,256,256,256,256,256,256,
- 256,256,256,256,256,205,206,279,271,284,
- 238,19,254,154,208,524,208,208,343,241,
- 256,211,460,275,238,256,309,200,451,256,
- 256,59,43,21,271,279,208,208,208,59,
- 133,133,130,130,137,137,135,135,135,135,
- 143,141,145,144,15,146,282,208,312,203,
- 19,154,254,241,256,241,241,238,153,256,
- 152,238,59,59,19,526,312,532,491,256,
- 284,208,275,158,161,154,208,342,460,256,
- 19,208,238,17,569,309,256,157,208,161,
- 154,241,275,3,21,59,309,256,241,208,
- 238,59,241
+ 509,1,315,391,509,29,478,490,27,490,
+ 27,27,490,27,490,317,427,393,382,540,
+ 393,287,27,282,282,27,282,393,427,506,
+ 427,157,158,255,317,29,210,473,472,427,
+ 53,288,29,127,29,214,427,498,393,255,
+ 84,257,317,393,35,393,287,410,211,211,
+ 282,540,540,397,540,540,211,287,164,412,
+ 164,391,303,29,127,214,214,498,498,257,
+ 107,104,340,176,303,412,412,412,412,412,
+ 88,412,412,412,170,187,192,190,198,194,
+ 201,200,203,202,204,506,501,317,505,3,
+ 154,29,412,53,472,285,211,412,211,301,
+ 412,344,412,412,288,397,164,397,393,207,
+ 346,127,154,239,127,214,216,429,216,498,
+ 340,505,340,104,87,84,412,412,412,412,
+ 412,412,412,412,412,412,412,506,506,246,
+ 303,303,282,282,220,412,412,412,412,412,
+ 412,412,412,412,412,412,412,412,412,412,
+ 412,412,412,412,412,503,504,252,427,257,
+ 154,33,410,211,506,540,506,506,287,397,
+ 412,127,241,216,154,412,282,340,498,395,
+ 412,412,104,88,35,427,252,506,506,506,
+ 104,190,190,187,187,194,194,192,192,192,
+ 192,200,198,202,201,164,203,255,506,542,
+ 501,33,211,410,397,412,397,397,154,210,
+ 412,209,154,498,104,104,33,246,542,439,
+ 29,412,257,506,216,167,220,211,506,286,
+ 241,412,33,506,154,31,476,282,412,166,
+ 506,220,211,397,216,434,35,104,282,412,
+ 397,506,154,104,397
};
};
public final static char asb[] = Asb.asb;
@@ -890,63 +901,63 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface Asr {
public final static byte asr[] = {0,
- 73,0,4,57,58,22,0,2,4,61,
- 57,60,22,53,59,0,4,58,53,66,
- 2,13,14,15,16,1,3,10,11,9,
- 5,7,8,17,18,12,6,0,19,20,
- 21,23,10,11,9,5,7,8,17,18,
- 12,2,1,3,13,14,15,16,65,4,
- 0,25,41,19,42,54,26,43,27,44,
- 45,28,20,46,47,23,55,29,56,48,
- 49,21,50,51,52,1,3,4,61,57,
- 22,0,19,20,21,10,11,9,5,7,
- 8,17,18,12,2,1,3,13,14,15,
- 16,0,53,2,66,80,10,11,61,83,
- 84,85,86,87,89,88,90,91,92,5,
- 67,68,7,8,63,62,69,70,71,72,
- 74,75,9,76,77,78,58,81,82,65,
- 60,59,57,22,4,0,61,53,66,0,
- 4,60,12,13,14,15,16,1,3,2,
- 10,11,9,5,7,8,17,18,0,49,
- 41,46,44,45,43,42,47,48,50,51,
- 52,59,22,29,26,23,25,28,27,19,
- 20,21,5,1,2,53,57,60,4,0,
- 25,41,19,42,54,26,43,27,44,45,
- 28,20,46,47,23,55,29,56,48,49,
- 21,50,51,52,1,3,24,4,58,0,
- 32,34,6,38,40,35,30,36,37,33,
- 31,39,24,22,4,10,11,9,7,8,
- 17,18,12,2,1,3,13,14,15,16,
- 5,0,1,3,4,58,57,0,5,2,
- 53,60,4,25,41,19,42,54,26,43,
- 27,44,45,28,20,46,47,23,55,29,
- 56,48,49,21,50,51,52,64,1,3,
+ 73,0,25,41,19,42,54,26,43,27,
+ 44,45,28,20,46,47,23,55,29,56,
+ 48,49,21,50,51,52,1,3,6,0,
+ 4,58,53,66,2,13,14,15,16,1,
+ 3,10,11,9,5,7,8,17,18,12,
+ 6,0,25,41,19,42,54,26,43,27,
+ 44,45,28,20,46,47,23,55,29,56,
+ 48,49,21,50,51,52,1,3,4,61,
+ 57,22,0,19,20,21,23,10,11,9,
+ 5,7,8,17,18,12,2,1,3,13,
+ 14,15,16,65,4,0,19,20,21,10,
+ 11,9,5,7,8,17,18,12,2,1,
+ 3,13,14,15,16,0,25,41,19,42,
+ 54,26,43,27,44,45,28,20,46,47,
+ 23,55,29,56,48,49,21,50,51,52,
+ 1,3,24,4,58,0,2,4,61,57,
+ 60,22,53,59,0,61,53,66,0,53,
+ 2,66,80,10,11,61,83,84,85,86,
+ 87,89,88,90,91,92,5,67,68,7,
+ 8,63,62,69,70,71,72,74,75,9,
+ 76,77,78,58,81,82,65,60,59,57,
+ 22,4,0,1,3,4,58,57,0,4,
+ 60,12,13,14,15,16,1,3,2,10,
+ 11,9,5,7,8,17,18,0,22,4,
+ 5,1,2,59,0,4,60,5,2,53,
+ 0,5,2,53,60,4,25,41,19,42,
+ 54,26,43,27,44,45,28,20,46,47,
+ 23,55,29,56,48,49,21,50,51,52,
+ 64,1,3,0,73,79,58,32,34,6,
+ 38,40,35,30,36,37,33,31,39,24,
+ 4,22,13,14,15,16,10,11,9,7,
+ 8,17,18,12,5,2,1,3,54,55,
+ 56,49,41,46,44,45,43,42,47,48,
+ 50,51,52,29,26,23,25,28,27,19,
+ 20,21,0,30,0,66,80,10,11,9,
+ 7,8,67,68,62,63,69,70,71,72,
+ 74,75,76,77,78,81,82,61,83,84,
+ 85,86,87,88,89,90,91,92,57,53,
+ 60,25,19,26,27,28,20,23,29,21,
+ 22,4,5,2,1,0,32,34,6,38,
+ 40,35,30,36,37,33,31,39,24,22,
+ 4,10,11,9,7,8,17,18,12,2,
+ 1,3,13,14,15,16,5,0,4,57,
+ 58,61,0,4,57,58,22,0,9,5,
+ 7,8,67,68,62,63,69,70,71,72,
+ 74,75,76,77,78,81,82,59,83,84,
+ 85,86,87,88,89,90,91,92,65,60,
+ 58,6,4,57,22,61,0,49,41,46,
+ 44,45,43,42,47,48,50,51,52,59,
+ 22,29,26,23,25,28,27,19,20,21,
+ 5,1,2,53,57,60,4,0,73,25,
+ 41,19,42,54,26,43,27,44,45,28,
+ 20,46,47,23,55,29,56,48,49,21,
+ 50,51,52,1,3,5,22,4,24,2,
0,5,25,41,19,42,54,26,43,27,
44,45,28,20,46,47,23,55,29,56,
- 48,49,21,50,51,52,1,3,64,0,
- 73,79,58,32,34,6,38,40,35,30,
- 36,37,33,31,39,24,4,22,13,14,
- 15,16,10,11,9,7,8,17,18,12,
- 5,2,1,3,54,55,56,49,41,46,
- 44,45,43,42,47,48,50,51,52,29,
- 26,23,25,28,27,19,20,21,0,30,
- 0,66,80,10,11,9,7,8,67,68,
- 62,63,69,70,71,72,74,75,76,77,
- 78,81,82,61,83,84,85,86,87,88,
- 89,90,91,92,57,53,60,25,19,26,
- 27,28,20,23,29,21,22,4,5,2,
- 1,0,4,57,58,61,0,22,4,5,
- 1,2,59,0,25,41,19,42,54,26,
- 43,27,44,45,28,20,46,47,23,55,
- 29,56,48,49,21,50,51,52,1,3,
- 6,0,73,25,41,19,42,54,26,43,
- 27,44,45,28,20,46,47,23,55,29,
- 56,48,49,21,50,51,52,1,3,5,
- 22,4,24,2,0,4,60,5,2,53,
- 0,9,5,7,8,67,68,62,63,69,
- 70,71,72,74,75,76,77,78,81,82,
- 59,83,84,85,86,87,88,89,90,91,
- 92,65,60,58,6,4,57,22,61,0
+ 48,49,21,50,51,52,1,3,64,0
};
};
public final static byte asr[] = Asr.asr;
@@ -954,36 +965,36 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface Nasb {
public final static char nasb[] = {0,
- 145,27,17,167,154,15,117,118,54,118,
- 93,93,118,92,118,112,109,122,27,27,
- 120,71,7,7,7,7,7,9,27,152,
- 109,43,43,151,105,15,168,27,27,109,
- 27,65,61,105,27,105,27,105,128,151,
- 50,85,39,122,56,126,81,166,168,168,
- 7,27,27,95,27,27,168,71,27,48,
- 27,167,1,27,158,105,7,105,138,162,
- 47,52,138,27,88,48,48,48,48,48,
- 51,48,48,48,27,27,27,27,27,27,
- 27,27,27,27,27,152,101,20,27,140,
- 105,27,48,27,27,27,168,48,168,28,
- 89,27,89,89,65,95,27,95,122,27,
- 27,105,72,167,77,7,13,27,27,138,
- 33,152,138,52,51,33,48,48,48,48,
- 48,48,48,48,48,48,48,152,152,103,
- 88,88,35,35,74,89,48,48,48,48,
- 48,48,48,48,48,48,48,48,48,48,
- 48,48,48,89,48,43,43,100,109,85,
- 72,105,30,168,152,27,152,152,81,95,
- 48,158,122,13,72,48,7,33,27,48,
- 48,52,51,48,109,149,152,152,152,52,
- 27,27,27,27,27,27,27,27,27,27,
- 27,27,27,27,27,27,151,152,107,132,
- 46,168,30,95,89,95,95,72,168,48,
- 27,72,52,52,105,134,107,27,27,48,
- 85,152,13,59,30,168,152,27,122,48,
- 46,152,72,45,27,7,48,63,152,30,
- 168,95,13,37,56,52,7,48,95,152,
- 72,52,95
+ 134,25,15,85,149,13,119,120,31,120,
+ 55,55,120,54,120,114,146,76,25,25,
+ 74,42,7,7,7,7,7,9,25,125,
+ 146,65,65,124,108,13,86,25,25,146,
+ 25,88,63,108,25,108,25,61,140,124,
+ 45,100,80,76,49,138,96,84,86,86,
+ 7,25,25,127,25,25,86,42,25,40,
+ 25,85,1,25,153,108,7,61,108,157,
+ 39,47,94,25,161,40,40,40,40,40,
+ 46,40,40,40,25,25,25,25,25,25,
+ 25,25,25,25,25,125,104,18,25,26,
+ 108,25,40,25,25,25,86,40,86,165,
+ 162,25,162,162,88,127,25,127,76,25,
+ 25,108,43,85,110,7,69,25,25,108,
+ 94,125,94,47,46,35,40,40,40,40,
+ 40,40,40,40,40,40,40,125,125,106,
+ 161,161,33,33,71,162,40,40,40,40,
+ 40,40,40,40,40,40,40,40,40,40,
+ 40,40,40,162,40,65,65,103,146,100,
+ 43,108,167,86,125,25,125,125,96,127,
+ 40,153,76,69,43,40,7,94,35,25,
+ 40,40,47,46,40,146,122,125,125,125,
+ 47,25,25,25,25,25,25,25,25,25,
+ 25,25,25,25,25,25,25,124,125,144,
+ 57,38,86,167,127,162,127,127,43,86,
+ 40,25,43,35,47,47,108,59,144,25,
+ 25,40,100,125,69,52,167,86,125,25,
+ 76,40,38,125,43,37,25,7,40,67,
+ 125,167,86,127,69,132,49,47,7,40,
+ 127,125,43,47,127
};
};
public final static char nasb[] = Nasb.nasb;
@@ -991,23 +1002,23 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface Nasr {
public final static char nasr[] = {0,
- 83,81,80,74,79,78,1,0,36,38,
- 40,0,68,0,105,0,36,2,101,83,
- 82,81,80,74,79,78,0,24,47,2,
- 61,0,25,0,90,0,115,0,24,2,
- 121,0,46,0,89,67,2,6,0,2,
- 6,39,0,108,0,6,67,0,117,0,
- 109,0,119,0,2,24,1,29,93,0,
- 2,41,0,2,107,0,2,55,87,0,
- 29,1,69,41,2,24,0,55,2,27,
- 0,111,86,0,1,29,2,30,0,23,
- 36,43,58,59,2,0,2,24,40,53,
- 0,74,70,71,72,73,62,48,0,45,
- 38,43,36,2,0,38,45,36,43,40,
- 0,36,43,59,58,40,0,75,0,2,
- 24,47,28,0,120,24,2,0,58,59,
- 2,23,0,24,2,103,0,96,2,55,
- 0,112,2,24,0,27,2,18,0
+ 83,81,80,74,79,78,1,0,37,39,
+ 36,0,105,0,37,2,101,83,82,81,
+ 80,74,79,78,0,2,24,47,28,0,
+ 108,0,90,0,25,0,89,67,2,6,
+ 0,2,41,0,2,6,40,0,6,67,
+ 0,117,0,111,86,0,37,43,59,58,
+ 36,0,109,0,46,0,119,0,68,0,
+ 2,107,0,45,39,43,37,2,0,24,
+ 2,121,0,27,2,18,0,2,24,1,
+ 29,93,0,75,0,29,1,69,41,2,
+ 24,0,23,37,43,58,59,2,0,2,
+ 55,87,0,74,70,71,72,73,62,48,
+ 0,58,59,2,23,0,1,29,2,30,
+ 0,115,0,120,24,2,0,39,45,37,
+ 43,36,0,2,24,36,53,0,24,2,
+ 103,0,96,2,55,0,112,2,24,0,
+ 55,2,27,0,24,47,2,61,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -1033,18 +1044,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
99,0,0,0,0,101,105,106,107,108,
- 109,110,111,112,113,114,115,98,116,117,
- 0,118,96,127,135,0,100,123,119,122,
- 0,0,0,0,0,157,0,160,95,0,
- 97,154,156,0,158,159,126,134,0,0,
- 0,145,155,121,149,168,171,172,173,0,
- 0,137,144,0,161,167,0,0,125,138,
- 139,140,141,146,166,170,103,129,130,131,
- 132,133,136,142,143,0,148,153,174,102,
- 104,120,124,128,0,147,151,0,0,152,
- 162,165,179,0,181,0,0,0,0,150,
- 0,163,164,169,0,175,176,0,177,178,
- 180,0
+ 109,110,111,112,113,114,115,98,116,0,
+ 0,117,96,126,134,0,100,122,118,121,
+ 0,0,0,0,0,0,156,0,159,95,
+ 97,153,155,0,157,158,125,133,0,0,
+ 0,144,154,120,148,167,170,171,172,0,
+ 0,136,143,0,160,166,0,0,124,137,
+ 138,139,140,145,165,169,103,128,129,130,
+ 131,132,135,141,142,0,147,152,173,102,
+ 104,119,123,127,0,146,150,0,0,151,
+ 161,164,178,0,180,0,0,0,0,149,
+ 0,162,163,168,0,174,175,0,176,177,
+ 179,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -1075,9 +1086,9 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface ScopeLhs {
public final static char scopeLhs[] = {
72,70,6,72,46,46,70,63,33,60,
- 46,38,60,46,87,28,7,6,6,20,
- 119,118,58,46,36,4,89,87,8,34,
- 6,87,38,45,38
+ 46,39,60,46,87,28,7,6,6,20,
+ 119,118,58,46,37,4,89,87,8,34,
+ 6,87,39,45,39
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -1107,21 +1118,21 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 147,53,0,95,0,209,95,0,31,144,
+ 147,53,0,95,0,209,95,0,31,143,
0,161,184,95,6,160,0,97,0,0,
158,95,2,151,0,96,0,158,95,2,
0,169,2,0,115,23,195,95,53,0,
115,195,95,23,53,0,115,23,53,0,
- 115,195,95,53,0,115,53,0,129,0,
- 2,0,163,96,0,2,96,0,158,95,
- 2,129,0,2,0,161,96,0,145,2,
+ 115,195,95,53,0,115,53,0,130,0,
+ 2,0,162,96,0,2,96,0,158,95,
+ 2,130,0,2,0,160,96,0,145,2,
0,161,192,95,6,94,204,54,0,97,
0,161,192,95,6,204,54,0,148,0,
- 98,0,203,95,148,0,95,148,0,150,
+ 98,0,203,95,148,0,95,148,0,149,
98,0,188,95,6,202,94,201,167,0,
188,95,6,201,167,0,123,35,0,77,
2,100,96,98,0,123,116,120,2,38,
- 0,53,122,0,186,95,6,0,120,82,
+ 0,53,121,0,186,95,6,0,120,82,
112,0,29,117,0,170,2,0,96,106,
0,170,2,12,0,161,184,95,6,116,
170,2,0,96,3,0,104,0,97,0,
@@ -1134,18 +1145,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface ScopeState {
public final static char scopeState[] = {0,
- 1303,0,696,0,2153,1341,2120,0,2193,2180,
- 1173,2099,2006,1486,519,455,701,634,1956,1752,
- 1349,565,1308,796,1984,1246,1968,1617,2088,2072,
- 2059,2026,2015,1835,1911,1808,1699,410,1277,1256,
- 1225,339,1204,1181,1150,1129,1106,1083,1060,1037,
- 1014,991,968,945,922,899,876,853,538,718,
- 746,312,771,611,678,653,588,496,473,0,
- 1862,1892,1870,1848,1826,1789,1764,1716,1530,1680,
- 1658,1419,1444,1346,1304,0,970,963,743,586,
- 521,1610,1994,1481,1998,1366,0,330,371,1906,
- 1610,1736,1481,1683,1366,1597,1895,792,1544,387,
- 0,769,312,1542,371,0
+ 927,0,681,0,2230,1527,2178,0,1180,898,
+ 412,2122,1793,340,520,456,636,566,1963,1939,
+ 1914,1710,1569,702,2048,2017,1975,1926,2113,2104,
+ 2093,2076,2067,1657,2058,1869,1766,1486,1315,1284,
+ 1263,1232,1211,1188,1157,1136,1113,1090,1067,1044,
+ 1021,998,975,952,929,906,875,719,772,539,
+ 747,313,854,613,679,654,589,497,474,0,
+ 400,1850,1828,1806,1784,1747,1722,1674,1524,1638,
+ 1616,1448,1594,1384,1342,0,1023,1019,924,847,
+ 2231,765,1544,1462,1452,1399,0,331,372,1864,
+ 765,1694,1462,1641,1399,2002,1853,1956,1309,388,
+ 0,770,313,1535,372,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -1154,35 +1165,35 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public interface InSymb {
public final static char inSymb[] = {0,
0,199,95,117,213,194,171,172,167,173,
- 56,55,174,54,175,176,95,2,1,129,
- 95,6,201,179,179,204,179,146,133,145,
- 95,129,136,2,206,194,187,178,131,95,
- 138,95,94,6,94,6,133,5,146,2,
+ 56,55,174,54,175,176,95,2,1,130,
+ 95,6,201,179,179,204,179,146,129,145,
+ 95,130,136,2,206,194,187,178,132,95,
+ 138,95,94,6,94,6,129,5,146,2,
53,95,95,57,61,146,186,39,31,33,
37,36,30,35,40,38,122,6,34,32,
- 94,117,95,202,95,6,95,5,95,95,
+ 94,117,95,202,95,6,95,5,129,95,
23,115,95,100,2,12,18,17,8,7,
5,9,11,10,99,102,104,103,106,105,
108,107,110,109,112,158,117,95,159,214,
- 6,160,5,138,131,4,120,95,94,2,
+ 6,160,5,138,132,4,120,95,94,2,
2,123,2,2,95,59,147,59,95,185,
- 94,6,188,148,189,95,192,94,193,95,
- 168,205,95,115,195,168,92,91,90,88,
+ 94,6,188,148,189,95,192,94,193,129,
+ 95,205,95,115,195,168,92,91,90,88,
89,87,86,85,84,83,61,170,120,148,
2,2,80,66,2,53,68,67,5,62,
63,8,7,75,74,72,71,70,69,76,
9,78,77,82,81,151,152,2,95,57,
95,6,140,154,120,30,120,120,186,59,
- 57,95,95,192,161,61,57,168,57,195,
- 23,115,5,116,95,2,170,170,200,120,
- 103,103,102,102,105,105,104,104,104,104,
- 107,106,109,108,120,110,2,169,95,146,
- 95,154,111,116,2,116,116,188,203,59,
- 145,161,115,115,6,146,95,116,116,59,
- 95,158,184,95,111,154,120,123,57,59,
- 95,158,161,57,209,66,53,210,154,111,
- 116,79,184,134,61,147,66,53,116,154,
- 161,147,116
+ 57,95,95,192,161,61,57,95,168,57,
+ 195,23,115,5,116,95,2,170,170,200,
+ 120,103,103,102,102,105,105,104,104,104,
+ 104,107,106,109,108,120,110,2,169,95,
+ 146,95,154,111,116,2,116,116,188,203,
+ 59,145,161,168,115,115,6,146,95,116,
+ 116,59,95,158,184,95,111,154,120,123,
+ 57,59,95,158,161,57,209,66,53,210,
+ 154,111,116,79,184,134,61,147,66,53,
+ 116,154,161,147,116
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -1302,12 +1313,11 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
"shift_expression",
"relational_expression",
"equality_expression",
- "AND_expression",
- "exclusive_OR_expression",
- "inclusive_OR_expression",
- "logical_AND_expression",
- "logical_OR_expression",
- "conditional_expression",
+ "and_expression",
+ "exclusive_or_expression",
+ "inclusive_or_expression",
+ "logical_and_expression",
+ "logical_or_expression",
"assignment_expression",
"expression_in_statement",
"expression_list_actual",
@@ -1394,20 +1404,20 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 293,
+ NUM_STATES = 295,
NT_OFFSET = 93,
- LA_STATE_OFFSET = 2642,
+ LA_STATE_OFFSET = 2703,
MAX_LA = 2147483647,
- NUM_RULES = 311,
- NUM_NONTERMINALS = 122,
- NUM_SYMBOLS = 215,
+ NUM_RULES = 312,
+ NUM_NONTERMINALS = 123,
+ NUM_SYMBOLS = 216,
SEGMENT_SIZE = 8192,
- START_STATE = 1981,
+ START_STATE = 1986,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 73,
EOLT_SYMBOL = 73,
- ACCEPT_ACTION = 2309,
- ERROR_ACTION = 2331;
+ ACCEPT_ACTION = 2369,
+ ERROR_ACTION = 2391;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
index c103a41018..46e839e4db 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
@@ -17,19 +17,28 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-public class C99SizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression >
+public class C99SizeofExpressionParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTExpression >
+ , ISecondaryParser< IASTExpression >
{
private static ParseTable prs = new C99SizeofExpressionParserprs();
private FixedBacktrackingParser btParser;
@@ -167,7 +176,11 @@ public class C99SizeofExpressionParser extends PrsStream implements RuleAction ,
private C99BuildASTParserAction action;
private IASTCompletionNode compNode;
-public C99SizeofExpressionParser() { // constructor
+
+public C99SizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set<IParser.Options> options) {
+ initActions(options);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
private void initActions(Set<IParser.Options> options) {
@@ -186,10 +199,9 @@ public void addToken(IToken token) {
}
-public IASTExpression parse(Set<IParser.Options> options) {
+public IASTExpression parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(options);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
@@ -232,12 +244,12 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99SizeofExpressionParsersym.TK_EOF_TOKEN));
}
-public C99SizeofExpressionParser(IParserActionTokenProvider parser) { // constructor
+public C99SizeofExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
+ initActions(options);
tokenMap = new TokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -250,1005 +262,1011 @@ public C99SizeofExpressionParser(IParserActionTokenProvider parser) { // constr
}
//
- // Rule 12: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 13: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 14: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 15: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 17: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 17: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 18: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 18: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 21: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 22: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 23: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 24: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 26: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 27: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 27: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 42: cast_expression ::= ( type_id ) cast_expression
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 42: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 43: cast_expression ::= ( type_id ) cast_expression
//
- case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 48: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 49: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 51: shift_expression ::= shift_expression << additive_expression
+ // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
//
- case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression >> additive_expression
+ // Rule 52: shift_expression ::= shift_expression << additive_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 54: relational_expression ::= relational_expression < shift_expression
+ // Rule 53: shift_expression ::= shift_expression >> additive_expression
//
- case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 55: relational_expression ::= relational_expression > shift_expression
+ // Rule 55: relational_expression ::= relational_expression < shift_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 56: relational_expression ::= relational_expression <= shift_expression
+ // Rule 56: relational_expression ::= relational_expression > shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression >= shift_expression
+ // Rule 57: relational_expression ::= relational_expression <= shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 59: equality_expression ::= equality_expression == relational_expression
+ // Rule 58: relational_expression ::= relational_expression >= shift_expression
//
- case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression != relational_expression
+ // Rule 60: equality_expression ::= equality_expression == relational_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 62: AND_expression ::= AND_expression & equality_expression
+ // Rule 61: equality_expression ::= equality_expression != relational_expression
//
- case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 63: and_expression ::= and_expression & equality_expression
//
- case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 72: { action. consumeExpressionConditional(); break;
+ case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 74: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 73: { action. consumeExpressionConditional(); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 75: assignment_expression ::= unary_expression = assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression += assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 87: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
//
- case 87: { action. consumeExpressionList(); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 89: expression_list_opt ::= $Empty
+ // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
//
- case 89: { action. consumeEmpty(); break;
+ case 88: { action. consumeExpressionList(); break;
}
//
- // Rule 99: statement ::= ERROR_TOKEN
+ // Rule 90: expression_list_opt ::= $Empty
//
- case 99: { action. consumeStatementProblem(); break;
+ case 90: { action. consumeEmpty(); break;
}
//
- // Rule 100: labeled_statement ::= identifier_token : statement
+ // Rule 100: statement ::= ERROR_TOKEN
//
- case 100: { action. consumeStatementLabeled(); break;
+ case 100: { action. consumeStatementProblem(); break;
}
//
- // Rule 101: labeled_statement ::= case constant_expression : statement
+ // Rule 101: labeled_statement ::= identifier_token : statement
//
- case 101: { action. consumeStatementCase(); break;
+ case 101: { action. consumeStatementLabeled(); break;
}
//
- // Rule 102: labeled_statement ::= default : statement
+ // Rule 102: labeled_statement ::= case constant_expression : statement
//
- case 102: { action. consumeStatementDefault(); break;
+ case 102: { action. consumeStatementCase(); break;
}
//
- // Rule 103: compound_statement ::= { }
+ // Rule 103: labeled_statement ::= default : statement
//
- case 103: { action. consumeStatementCompoundStatement(false); break;
+ case 103: { action. consumeStatementDefault(); break;
}
//
- // Rule 104: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 104: compound_statement ::= { }
//
- case 104: { action. consumeStatementCompoundStatement(true); break;
+ case 104: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 108: block_item ::= declaration
+ // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 105: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 109: expression_statement ::= ;
+ // Rule 109: block_item ::= declaration
//
- case 109: { action. consumeStatementNull(); break;
+ case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 110: expression_statement ::= expression_in_statement ;
+ // Rule 110: expression_statement ::= ;
//
- case 110: { action. consumeStatementExpression(); break;
+ case 110: { action. consumeStatementNull(); break;
}
//
- // Rule 111: selection_statement ::= if ( expression ) statement
+ // Rule 111: expression_statement ::= expression_in_statement ;
//
- case 111: { action. consumeStatementIf(false); break;
+ case 111: { action. consumeStatementExpression(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement else statement
+ // Rule 112: selection_statement ::= if ( expression ) statement
//
- case 112: { action. consumeStatementIf(true); break;
+ case 112: { action. consumeStatementIf(false); break;
}
//
- // Rule 113: selection_statement ::= switch ( expression ) statement
+ // Rule 113: selection_statement ::= if ( expression ) statement else statement
//
- case 113: { action. consumeStatementSwitch(); break;
+ case 113: { action. consumeStatementIf(true); break;
}
//
- // Rule 115: expression_opt ::= $Empty
+ // Rule 114: selection_statement ::= switch ( expression ) statement
//
- case 115: { action. consumeEmpty(); break;
+ case 114: { action. consumeStatementSwitch(); break;
}
//
- // Rule 116: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 116: expression_opt ::= $Empty
//
- case 116: { action. consumeStatementDoLoop(); break;
+ case 116: { action. consumeEmpty(); break;
}
//
- // Rule 117: iteration_statement ::= while ( expression ) statement
+ // Rule 117: iteration_statement ::= do statement while ( expression ) ;
//
- case 117: { action. consumeStatementWhileLoop(); break;
+ case 117: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 118: iteration_statement ::= while ( expression ) statement
//
- case 118: { action. consumeStatementForLoop(); break;
+ case 118: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 119: { action. consumeStatementForLoop(); break;
}
//
- // Rule 120: jump_statement ::= goto identifier_token ;
+ // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 120: { action. consumeStatementGoto(); break;
+ case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= continue ;
+ // Rule 121: jump_statement ::= goto identifier_token ;
//
- case 121: { action. consumeStatementContinue(); break;
+ case 121: { action. consumeStatementGoto(); break;
}
//
- // Rule 122: jump_statement ::= break ;
+ // Rule 122: jump_statement ::= continue ;
//
- case 122: { action. consumeStatementBreak(); break;
+ case 122: { action. consumeStatementContinue(); break;
}
//
- // Rule 123: jump_statement ::= return ;
+ // Rule 123: jump_statement ::= break ;
//
- case 123: { action. consumeStatementReturn(false); break;
+ case 123: { action. consumeStatementBreak(); break;
}
//
- // Rule 124: jump_statement ::= return expression ;
+ // Rule 124: jump_statement ::= return ;
//
- case 124: { action. consumeStatementReturn(true); break;
+ case 124: { action. consumeStatementReturn(false); break;
}
//
- // Rule 125: declaration ::= declaration_specifiers ;
+ // Rule 125: jump_statement ::= return expression ;
//
- case 125: { action. consumeDeclarationSimple(false); break;
+ case 125: { action. consumeStatementReturn(true); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 126: declaration ::= declaration_specifiers ;
//
- case 126: { action. consumeDeclarationSimple(true); break;
+ case 126: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 127: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 127: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 128: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 131: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 156: init_declarator ::= complete_declarator = initializer
+ // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 156: { action. consumeDeclaratorWithInitializer(true); break;
+ case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 158: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 157: init_declarator ::= complete_declarator = initializer
//
- case 158: { action. consumeToken(); break;
+ case 157: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 164: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 164: { action. consumeToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
- // Rule 177: type_name_specifier ::= identifier_token
+ // Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 177: { action. consumeToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
- // Rule 178: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 178: type_name_specifier ::= identifier_token
//
- case 178: { action. consumeTypeSpecifierComposite(false); break;
+ case 178: { action. consumeToken(); break;
}
//
- // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 179: { action. consumeTypeSpecifierComposite(true); break;
+ case 179: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 184: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 184: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 180: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 185: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 186: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 192: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 192: { action. consumeStructDeclaration(true); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 193: { action. consumeStructDeclaration(false); break;
+ case 193: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 194: struct_declaration ::= ERROR_TOKEN
+ // Rule 194: struct_declaration ::= specifier_qualifier_list ;
//
- case 194: { action. consumeDeclarationProblem(); break;
+ case 194: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 200: struct_declarator ::= : constant_expression
+ // Rule 195: struct_declaration ::= ERROR_TOKEN
//
- case 200: { action. consumeBitField(false); break;
+ case 195: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 201: struct_declarator ::= declarator : constant_expression
+ // Rule 201: struct_declarator ::= : constant_expression
//
- case 201: { action. consumeBitField(true); break;
+ case 201: { action. consumeBitField(false); break;
}
//
- // Rule 202: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 202: struct_declarator ::= declarator : constant_expression
//
- case 202: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 202: { action. consumeBitField(true); break;
}
//
- // Rule 203: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 203: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 203: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 209: enumerator ::= identifier_token
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 209: { action. consumeEnumerator(false); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 210: enumerator ::= identifier_token = constant_expression
+ // Rule 210: enumerator ::= identifier_token
//
- case 210: { action. consumeEnumerator(true); break;
+ case 210: { action. consumeEnumerator(false); break;
}
//
- // Rule 211: type_qualifier ::= type_qualifier_token
+ // Rule 211: enumerator ::= identifier_token = constant_expression
//
- case 211: { action. consumeToken(); break;
+ case 211: { action. consumeEnumerator(true); break;
}
//
- // Rule 215: function_specifier ::= inline
+ // Rule 212: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeToken(); break;
+ case 212: { action. consumeToken(); break;
}
//
- // Rule 217: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 216: function_specifier ::= inline
//
- case 217: { action. consumeDeclaratorWithPointer(true); break;
+ case 216: { action. consumeToken(); break;
}
//
- // Rule 222: basic_direct_declarator ::= declarator_id_name
+ // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 222: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 218: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 223: basic_direct_declarator ::= ( declarator )
+ // Rule 223: basic_direct_declarator ::= declarator_id_name
//
- case 223: { action. consumeDirectDeclaratorBracketed(); break;
+ case 223: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 224: declarator_id_name ::= identifier
+ // Rule 224: basic_direct_declarator ::= ( declarator )
//
- case 224: { action. consumeIdentifierName(); break;
+ case 224: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 225: declarator_id_name ::= identifier
//
- case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 225: { action. consumeIdentifierName(); break;
}
//
- // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 228: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 229: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 231: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 231: { action. consumeDeclaratorWithPointer(true); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 232: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 234: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 234: { action. consumeDeclaratorWithPointer(true); break;
+ case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 235: identifier_list ::= identifier
+ // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 235: { action. consumeIdentifierKnR(); break;
+ case 235: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 236: identifier_list ::= identifier_list , identifier
+ // Rule 236: identifier_list ::= identifier
//
case 236: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 237: array_modifier ::= [ ]
+ // Rule 237: identifier_list ::= identifier_list , identifier
//
- case 237: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 238: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 238: array_modifier ::= [ ]
//
- case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 238: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 239: array_modifier ::= [ assignment_expression ]
+ // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 239: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 240: array_modifier ::= [ assignment_expression ]
//
- case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 240: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 241: array_modifier ::= [ static assignment_expression ]
+ // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 242: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 242: array_modifier ::= [ static assignment_expression ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 244: array_modifier ::= [ * ]
+ // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 245: array_modifier ::= [ * ]
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 247: pointer_seq ::= pointer_hook *
+ // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 247: { action. consumePointer(); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 248: pointer_seq ::= pointer_seq pointer_hook *
+ // Rule 248: pointer_seq ::= pointer_hook * pointer_hook
//
case 248: { action. consumePointer(); break;
}
//
- // Rule 249: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 249: { action. consumePointerTypeQualifierList(); break;
+ case 249: { action. consumePointer(); break;
}
//
- // Rule 250: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 250: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
case 250: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 254: parameter_type_list ::= parameter_list
+ // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 254: { action. consumeEmpty(); break;
+ case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 255: parameter_type_list ::= parameter_list , ...
+ // Rule 255: parameter_type_list ::= parameter_list
//
- case 255: { action. consumePlaceHolder(); break;
+ case 255: { action. consumeEmpty(); break;
}
//
- // Rule 256: parameter_type_list ::= ...
+ // Rule 256: parameter_type_list ::= parameter_list , ...
//
case 256: { action. consumePlaceHolder(); break;
}
//
- // Rule 259: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 257: parameter_type_list ::= ...
//
- case 259: { action. consumeParameterDeclaration(); break;
+ case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 260: parameter_declaration ::= declaration_specifiers
+ // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 260: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 260: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 263: type_id ::= specifier_qualifier_list
+ // Rule 261: parameter_declaration ::= declaration_specifiers
//
- case 263: { action. consumeTypeId(false); break;
+ case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 264: type_id ::= specifier_qualifier_list abstract_declarator
+ // Rule 264: type_id ::= specifier_qualifier_list
//
- case 264: { action. consumeTypeId(true); break;
+ case 264: { action. consumeTypeId(false); break;
}
//
- // Rule 266: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 266: { action. consumeDeclaratorWithPointer(false); break;
+ case 265: { action. consumeTypeId(true); break;
}
//
- // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq
//
case 267: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 271: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 271: { action. consumeDirectDeclaratorBracketed(); break;
+ case 268: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 272: array_direct_abstract_declarator ::= array_modifier
+ // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 272: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 272: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 273: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 273: array_direct_abstract_declarator ::= array_modifier
//
- case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 274: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 275: function_direct_abstract_declarator ::= ( )
+ // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 276: function_direct_abstract_declarator ::= ( )
+ //
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 277: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 279: initializer ::= assignment_expression
+ // Rule 280: initializer ::= assignment_expression
//
- case 279: { action. consumeInitializer(); break;
+ case 280: { action. consumeInitializer(); break;
}
//
- // Rule 280: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
+ // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
//
- case 280: { action. consumeInitializerList(); break;
+ case 281: { action. consumeInitializerList(); break;
}
//
- // Rule 281: initializer ::= { <openscope-ast> }
+ // Rule 282: initializer ::= { <openscope-ast> }
//
- case 281: { action. consumeInitializerList(); break;
+ case 282: { action. consumeInitializerList(); break;
}
//
- // Rule 282: start_initializer_list ::= $Empty
+ // Rule 283: start_initializer_list ::= $Empty
//
- case 282: { action. initializerListStart(); break;
+ case 283: { action. initializerListStart(); break;
}
//
- // Rule 283: end_initializer_list ::= $Empty
+ // Rule 284: end_initializer_list ::= $Empty
//
- case 283: { action. initializerListEnd(); break;
+ case 284: { action. initializerListEnd(); break;
}
//
- // Rule 288: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 288: { action. consumeInitializerDesignated(); break;
+ case 289: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 292: designator_base ::= [ constant_expression ]
+ // Rule 293: designator_base ::= [ constant_expression ]
//
- case 292: { action. consumeDesignatorArray(); break;
+ case 293: { action. consumeDesignatorArray(); break;
}
//
- // Rule 293: designator_base ::= . identifier_token
+ // Rule 294: designator_base ::= . identifier_token
//
- case 293: { action. consumeDesignatorField(); break;
+ case 294: { action. consumeDesignatorField(); break;
}
//
- // Rule 294: designator ::= [ constant_expression ]
+ // Rule 295: designator ::= [ constant_expression ]
//
- case 294: { action. consumeDesignatorArray(); break;
+ case 295: { action. consumeDesignatorArray(); break;
}
//
- // Rule 295: designator ::= . identifier_token
+ // Rule 296: designator ::= . identifier_token
//
- case 295: { action. consumeDesignatorField(); break;
+ case 296: { action. consumeDesignatorField(); break;
}
//
- // Rule 296: translation_unit ::= external_declaration_list
+ // Rule 297: translation_unit ::= external_declaration_list
//
- case 296: { action. consumeTranslationUnit(); break;
+ case 297: { action. consumeTranslationUnit(); break;
}
//
- // Rule 297: translation_unit ::= $Empty
+ // Rule 298: translation_unit ::= $Empty
//
- case 297: { action. consumeTranslationUnit(); break;
+ case 298: { action. consumeTranslationUnit(); break;
}
//
- // Rule 302: external_declaration ::= ;
+ // Rule 303: external_declaration ::= ;
//
- case 302: { action. consumeDeclarationEmpty(); break;
+ case 303: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 303: external_declaration ::= ERROR_TOKEN
+ // Rule 304: external_declaration ::= ERROR_TOKEN
//
- case 303: { action. consumeDeclarationProblem(); break;
+ case 304: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 306: { action. consumeFunctionDefinition(true); break;
+ case 307: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 307: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 307: { action. consumeFunctionDefinition(false); break;
+ case 308: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 308: { action. consumeFunctionDefinitionKnR(); break;
+ case 309: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 309: function_body ::= { }
+ // Rule 310: function_body ::= { }
//
- case 309: { action. consumeStatementCompoundStatement(false); break;
+ case 310: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 310: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 311: function_body ::= { <openscope-ast> block_item_list }
//
- case 310: { action. consumeStatementCompoundStatement(true); break;
+ case 311: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 312: no_sizeof_type_id_start ::= ERROR_TOKEN
+ // Rule 313: no_sizeof_type_id_start ::= ERROR_TOKEN
//
- case 312: { action. consumeEmpty(); break;
+ case 313: { action. consumeEmpty(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
index 8270e9e5ee..b204a44fb0 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
@@ -34,185 +34,184 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseCheck {
public final static short baseCheck[] = {0,
- 0,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,3,1,1,
- 4,4,3,3,2,2,8,1,0,1,
- 1,2,2,2,2,2,2,2,2,2,
- 1,4,1,3,3,3,1,3,3,1,
- 3,3,1,3,3,3,3,1,3,3,
- 1,3,1,3,1,3,1,3,1,3,
- 1,5,1,3,3,3,3,3,3,3,
- 3,3,3,3,1,1,2,1,0,1,
- 3,1,1,1,1,1,1,1,1,3,
- 4,3,2,4,1,2,1,1,1,2,
- 5,7,5,1,0,7,5,9,8,3,
- 2,2,2,3,2,4,2,2,2,2,
- 2,1,1,1,1,2,1,2,2,2,
- 1,2,2,1,2,2,1,2,2,1,
- 2,2,1,3,1,3,1,1,1,1,
+ 0,0,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,3,1,
+ 1,4,4,3,3,2,2,8,1,0,
+ 1,1,2,2,2,2,2,2,2,2,
+ 2,1,4,1,3,3,3,1,3,3,
+ 1,3,3,1,3,3,3,3,1,3,
+ 3,1,3,1,3,1,3,1,3,1,
+ 3,1,5,1,3,3,3,3,3,3,
+ 3,3,3,3,3,1,1,2,1,0,
+ 1,3,1,1,1,1,1,1,1,1,
+ 3,4,3,2,4,1,2,1,1,1,
+ 2,5,7,5,1,0,7,5,9,8,
+ 3,2,2,2,3,2,4,2,2,2,
+ 2,2,1,1,1,1,2,1,2,2,
+ 2,1,2,2,1,2,2,1,2,2,
+ 1,2,2,1,3,1,3,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,6,8,0,
- 0,1,1,3,3,3,0,1,0,1,
- 2,4,2,1,1,1,3,1,1,2,
- 3,7,8,0,1,0,1,3,1,3,
- 1,1,1,1,1,1,3,1,1,1,
- 1,1,3,1,2,2,1,5,3,1,
- 3,5,1,3,1,3,2,4,3,5,
- 4,6,6,3,5,1,2,3,4,5,
- 0,1,2,1,3,1,1,3,2,1,
- 1,1,1,2,1,2,3,1,1,1,
- 3,1,2,2,2,3,4,5,1,7,
- 3,0,0,1,1,3,3,4,1,1,
- 2,3,2,3,2,1,0,1,2,1,
- 1,1,1,1,2,4,3,6,2,4,
- 1,1,-36,0,0,0,0,0,0,0,
- 0,0,0,-78,0,0,0,0,0,0,
- 0,0,0,0,0,-80,-114,0,-2,0,
+ 1,1,1,1,1,1,1,1,6,8,
+ 0,0,1,1,3,3,3,0,1,0,
+ 1,2,4,2,1,1,1,3,1,1,
+ 2,3,7,8,0,1,0,1,3,1,
+ 3,1,1,1,1,1,1,3,1,1,
+ 1,1,1,3,1,2,2,1,5,3,
+ 1,3,5,1,3,1,3,2,4,3,
+ 5,4,6,6,3,5,1,3,4,5,
+ 6,0,1,2,1,3,1,1,3,2,
+ 1,1,1,1,2,1,2,3,1,1,
+ 1,3,1,2,2,2,3,4,5,1,
+ 7,3,0,0,1,1,3,3,4,1,
+ 1,2,3,2,3,2,1,0,1,2,
+ 1,1,1,1,1,2,4,3,6,2,
+ 4,1,1,-36,0,0,0,0,0,0,
+ 0,0,0,0,-156,0,0,0,0,0,
+ 0,0,0,0,0,0,-114,0,-74,-2,
+ -33,0,0,0,0,-54,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-137,0,-115,0,
+ -116,0,-4,0,0,0,0,0,-6,0,
+ 0,0,0,0,0,0,0,0,0,0,
0,0,0,-120,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-4,0,-115,0,-14,
- -69,-126,0,0,0,0,0,-110,0,0,
+ 0,0,0,0,-184,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-137,0,-116,0,-132,
- 0,0,0,-6,0,0,0,0,0,0,
- 0,0,0,-117,0,0,-184,0,0,0,
+ 0,0,0,0,0,-55,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-157,0,0,
+ 0,0,0,-110,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-80,0,-14,-104,
+ -133,-29,0,0,-30,0,-16,0,-193,0,
+ 0,0,0,-117,0,-17,0,-157,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-55,0,
+ 0,0,0,0,0,0,0,0,-72,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-145,0,0,0,
- 0,0,0,0,0,-16,-104,-17,0,0,
- 0,0,0,0,-118,0,0,0,-81,-18,
- 0,-19,-74,-75,-33,0,-72,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-118,
+ 0,0,0,-5,0,0,0,0,0,0,
+ 0,0,-18,-69,0,0,0,-7,0,0,
+ 0,0,0,0,0,0,-180,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-3,0,0,
+ 0,0,0,0,0,0,0,0,-132,0,
+ 0,0,0,0,0,0,0,0,-51,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-180,0,0,0,0,0,0,0,0,
- 0,0,-20,0,0,0,0,0,0,0,
- 0,0,-3,0,0,0,0,0,0,0,
+ 0,0,0,0,-34,0,-107,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-51,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-34,
- 0,-107,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-75,-125,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-21,-125,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-129,0,-141,0,-52,
+ -129,0,-165,0,0,-85,0,-48,0,0,
0,0,0,0,0,0,0,0,0,0,
- -122,0,0,0,-67,-22,0,0,0,0,
- -156,0,0,0,0,0,-27,0,0,0,
+ 0,0,0,0,0,-67,0,0,0,0,
+ 0,0,-68,0,0,0,0,-52,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-23,0,
- -159,0,0,0,-162,0,0,0,0,0,
- -37,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-56,0,0,0,0,
+ 0,0,0,-19,0,0,-20,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-57,0,0,0,
- 0,0,0,0,0,0,0,-24,0,0,
- 0,0,0,0,0,0,0,-58,0,0,
- 0,0,0,0,0,0,0,0,-25,0,
- 0,0,0,0,0,0,0,0,-59,0,
- 0,0,0,0,0,0,0,0,0,-26,
- 0,0,0,0,0,0,0,0,0,-60,
+ -159,0,-182,0,0,0,0,0,0,0,
+ -27,0,0,0,0,0,0,0,0,0,
+ 0,-21,0,0,0,0,0,0,0,0,
+ 0,-56,0,0,0,0,0,0,0,0,
+ 0,0,-22,0,0,0,0,0,0,0,
+ 0,0,-57,0,0,0,0,0,0,0,
+ 0,0,0,-23,0,0,0,0,0,0,
+ 0,0,0,-58,0,0,0,0,0,0,
+ 0,0,0,0,-24,0,0,0,0,0,
+ 0,0,0,0,-59,0,0,0,0,0,
+ 0,0,0,0,0,-25,0,0,0,0,
+ 0,0,0,0,0,-60,0,0,0,0,
+ 0,0,0,0,0,0,-26,0,0,0,
+ 0,0,0,0,0,0,-61,0,0,0,
+ 0,0,0,0,0,0,0,-86,0,0,
+ 0,0,0,0,0,0,0,-62,0,0,
+ 0,0,0,0,0,0,0,0,-87,0,
+ 0,0,0,0,0,0,0,0,-63,0,
+ 0,0,0,0,0,0,0,0,0,-88,
+ 0,0,0,0,0,0,0,0,0,-64,
0,0,0,0,0,0,0,0,0,0,
- -86,0,0,0,0,0,0,0,0,0,
- -61,0,0,0,0,0,0,0,0,0,
- 0,-87,0,0,0,0,0,0,0,0,
- 0,-62,0,0,0,0,0,0,0,0,
- 0,0,-88,0,0,0,0,0,0,0,
- 0,0,-63,0,0,0,0,0,0,0,
- 0,0,0,-89,0,0,0,0,0,0,
- 0,0,0,-64,0,0,0,0,0,0,
- 0,0,0,0,-90,0,0,0,0,0,
- 0,0,0,0,-65,0,0,0,0,0,
- 0,0,0,0,0,-91,0,0,0,0,
- 0,0,0,0,0,-66,0,0,0,0,
- 0,0,0,0,0,0,-92,0,0,0,
- 0,0,0,0,0,0,-142,0,0,0,
- 0,0,0,0,0,0,0,-93,0,0,
- 0,0,0,0,0,0,0,-143,0,0,
- 0,0,0,0,0,0,0,0,-136,0,
- 0,0,0,0,0,0,0,0,-160,0,
- 0,0,0,0,0,0,0,0,0,-173,
- 0,0,0,0,0,0,0,0,-183,0,
- 0,0,0,0,0,0,0,0,0,-174,
- 0,0,0,0,0,0,0,0,-94,0,
- 0,0,-177,-95,0,-7,0,0,0,0,
- 0,0,0,-191,0,0,0,0,0,0,
+ -89,0,0,0,0,0,0,0,0,0,
+ -65,0,0,0,0,0,0,0,0,0,
+ 0,-90,0,0,0,0,0,0,0,0,
+ 0,-66,0,0,0,0,0,0,0,0,
+ 0,0,-91,0,0,0,0,0,0,0,
+ 0,0,-119,0,0,0,0,0,0,0,
+ 0,0,0,-92,0,0,0,0,0,0,
+ 0,0,0,-142,0,0,0,0,0,0,
+ 0,0,0,0,-93,0,0,0,0,0,
+ 0,0,0,0,-143,0,0,0,0,0,
+ 0,0,0,0,0,-94,0,0,0,0,
+ 0,0,0,0,0,-160,0,0,0,0,
+ 0,0,0,0,0,0,-162,0,0,0,
+ 0,0,0,0,0,-183,0,0,0,0,
+ 0,0,0,0,0,0,-174,0,0,0,
+ 0,0,0,0,0,-95,-78,0,0,-136,
+ -96,0,-8,0,0,0,0,0,0,0,
+ -192,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-199,0,0,0,0,0,0,
- 0,0,0,0,-133,0,0,0,0,0,
- 0,0,0,0,-161,0,-182,0,0,0,
- -8,0,0,0,0,0,0,0,-207,0,
+ -201,0,0,0,0,0,0,0,0,0,
+ 0,-97,0,0,0,0,0,0,0,0,
+ 0,-155,0,-98,-99,0,0,-9,0,0,
+ 0,0,0,0,0,-209,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-119,0,
- 0,0,0,0,0,0,0,0,0,-96,
- 0,0,0,0,0,0,0,0,-97,-192,
- 0,-98,-83,-99,0,-54,0,0,0,0,
- 0,0,0,0,0,0,-128,0,0,0,
- 0,0,0,-29,0,-30,0,0,-48,0,
- 0,0,0,0,0,0,0,0,0,-100,
- 0,0,0,0,-101,-146,-102,-103,-106,0,
+ 0,0,0,0,0,0,-128,-46,0,0,
+ 0,0,0,0,0,0,0,0,-49,0,
+ 0,0,0,0,0,0,0,0,0,-111,
+ 0,0,0,-108,-173,-146,-122,-127,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-1,-32,0,-53,-31,0,0,0,-85,
- 0,0,0,0,0,0,0,-68,0,0,
- 0,0,0,0,0,-121,0,0,0,0,
+ 0,-189,0,0,-1,0,0,0,0,-100,
+ 0,0,0,0,0,0,0,-101,0,0,
+ 0,0,0,0,0,-171,0,0,0,0,
+ -113,-131,0,-185,0,0,0,0,0,0,
+ 0,0,0,0,0,-102,-135,-103,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-171,0,
- 0,-46,0,0,0,0,0,0,0,0,
- 0,0,-130,0,-188,-135,-138,-140,-147,0,
+ 0,0,0,0,0,-106,0,0,0,0,
+ -50,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-208,0,-121,0,0,
+ -130,0,0,-134,-139,-152,0,-42,0,0,
+ 0,0,0,0,0,0,0,0,-47,0,
0,0,0,0,0,0,0,0,0,0,
- -134,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-139,-152,0,0,0,
- 0,0,0,0,-5,0,0,0,0,0,
- 0,0,-49,0,0,0,0,0,0,0,
- 0,0,0,-158,0,-50,0,0,0,0,
- 0,0,0,0,0,0,-190,0,-206,-12,
- 0,0,0,0,0,0,0,0,-165,0,
- -209,-178,-179,-200,-205,0,-42,0,0,0,
+ 0,0,0,0,0,-12,0,0,0,0,
+ 0,0,0,-43,0,0,0,0,0,0,
+ 0,0,0,0,-44,0,0,0,0,0,
+ 0,0,0,0,0,-45,0,0,0,0,
+ 0,0,0,0,0,0,-203,0,0,-10,
+ 0,0,0,0,0,0,0,0,-37,0,
+ 0,0,0,0,0,0,0,-38,0,0,
+ 0,0,0,0,0,0,-73,-170,-138,0,
+ 0,0,0,0,0,0,-158,0,0,0,
+ -126,-178,-186,0,-76,-179,-177,-124,-190,0,
+ 0,-71,0,-145,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-13,0,
- 0,0,0,0,0,0,-43,0,0,0,
- 0,0,0,0,0,0,0,-44,0,0,
- 0,0,0,0,0,0,0,0,-45,0,
- 0,0,0,0,0,0,0,0,0,-111,
- 0,0,-47,0,0,0,0,0,0,0,
- 0,0,-201,-38,0,0,0,0,0,0,
- 0,0,0,0,-154,0,-163,0,0,-73,
- -113,-170,-108,-189,-194,0,-76,0,-124,-185,
- 0,0,0,-208,-127,0,0,0,0,0,
+ 0,0,0,0,0,0,-210,0,0,-202,
+ -109,-147,-35,-123,0,-11,0,0,0,0,
+ 0,0,0,0,-207,-31,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-13,0,0,0,
+ 0,0,0,0,0,0,0,-39,0,0,
+ 0,0,0,0,0,0,0,-83,-81,0,
+ 0,-40,0,0,0,0,0,0,0,-41,
+ 0,0,0,0,0,0,0,-70,0,0,
+ 0,0,0,0,0,-112,0,-196,-169,0,
+ -140,-15,-176,0,-141,-154,0,-144,-77,0,
+ -150,-151,0,0,-148,0,0,-28,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-155,0,
- 0,0,0,0,0,-172,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-9,0,0,0,0,0,0,0,-10,
- 0,0,0,0,0,0,0,-11,0,0,
- 0,0,0,0,0,-35,-39,0,0,0,
- 0,0,0,0,0,-150,0,-40,0,0,
- 0,0,0,0,0,0,0,0,-71,-149,
- -197,0,-41,0,0,0,0,0,0,0,
- 0,-148,0,0,-144,0,0,0,0,0,
- -70,0,0,0,0,0,0,0,-112,0,
- 0,-169,0,0,0,0,-77,0,0,0,
- 0,0,0,-166,-15,-151,-167,0,0,-181,
- -28,-168,-193,0,0,0,0,0,0,0,
+ 0,0,0,-161,0,0,0,0,0,0,
+ 0,-149,0,0,-79,0,-187,0,-211,0,
+ 0,0,0,-163,0,0,-105,0,-82,0,
+ 0,0,0,-84,0,0,0,0,0,0,
+ -153,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-79,0,0,0,0,0,0,0,
- 0,0,-82,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-84,-153,0,0,
- 0,0,0,0,0,-105,-198,0,0,0,
- 0,0,0,-176,0,0,-186,0,0,-187,
- -202,0,0,0,0,0,0,0,-175,-131,
- 0,0,-203,0,-109,0,0,-123,-195,0,
- 0,0,-196,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-204,0,0,
- -164,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-32,0,-188,-175,-204,-166,-164,-53,
+ -167,-172,-168,0,-181,0,0,-194,0,0,
+ 0,-195,0,-197,-191,-198,-199,-200,-205,0,
+ 0,0,0,0,0,0,0,-206,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -222,186 +221,185 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseAction {
public final static char baseAction[] = {
- 87,11,24,24,23,23,32,32,69,69,
- 1,1,2,2,2,2,3,3,3,4,
- 5,5,5,5,5,5,5,5,51,51,
- 70,6,6,6,6,6,6,6,6,6,
- 6,7,7,8,8,8,8,9,9,9,
- 10,10,10,12,12,12,12,12,13,13,
- 13,14,14,15,15,16,16,17,17,18,
- 18,19,19,20,20,20,20,20,20,20,
- 20,20,20,20,20,101,45,40,88,88,
- 73,73,46,102,102,102,102,102,102,102,
- 103,103,103,104,104,109,109,110,110,105,
- 105,106,106,106,112,112,107,107,107,107,
- 108,108,108,108,108,111,111,25,25,25,
- 25,25,27,27,27,79,79,74,74,74,
- 74,75,75,75,76,76,76,77,77,77,
- 78,78,78,113,113,114,114,115,28,30,
- 30,30,30,30,52,54,54,54,54,54,
- 54,54,54,54,54,54,54,63,60,60,
- 89,90,64,64,61,61,61,65,80,80,
- 81,81,66,66,66,48,91,91,82,83,
- 83,83,62,62,92,84,84,85,85,67,
- 67,21,22,22,22,29,47,47,33,33,
- 33,33,36,36,38,34,34,35,39,39,
- 116,116,37,117,117,93,93,26,26,26,
- 26,26,26,26,26,26,86,49,49,49,
- 49,31,56,56,55,55,55,57,57,50,
- 50,94,94,71,71,58,58,58,41,41,
- 41,42,43,43,43,44,44,44,44,53,
- 53,53,59,95,72,72,72,72,68,96,
- 97,97,98,98,99,99,118,118,119,119,
- 120,120,120,120,122,122,121,121,121,123,
- 123,87,87,1,811,16,20,17,370,790,
- 43,488,486,502,118,500,614,543,689,656,
- 769,748,73,90,133,211,387,596,400,31,
- 135,132,134,158,434,19,16,20,17,370,
- 790,43,488,486,502,396,500,614,543,689,
- 656,769,748,73,279,137,441,164,201,185,
- 579,104,698,141,144,147,150,324,358,19,
- 16,20,17,370,41,35,366,1457,1597,1633,
- 1643,1657,1210,253,211,21,629,284,201,184,
- 124,368,244,1296,506,19,16,20,17,370,
- 41,39,285,337,662,1281,979,482,19,16,
- 20,17,370,790,43,488,486,502,396,500,
- 614,543,689,656,769,748,73,279,332,19,
- 16,20,17,370,790,43,488,486,502,396,
- 500,614,543,689,656,769,748,73,279,506,
- 19,16,20,17,370,41,43,488,486,502,
- 284,500,614,543,689,1187,1296,358,19,16,
- 20,17,370,41,35,285,57,14,157,1455,
- 1297,286,1324,1085,290,201,186,1296,344,414,
- 6,245,30,144,327,513,287,275,19,16,
- 20,17,370,790,43,488,486,502,1695,500,
- 614,543,689,656,769,748,73,1453,1581,273,
- 274,237,458,19,16,20,17,370,790,43,
- 488,486,502,636,500,614,543,689,656,769,
- 748,73,279,506,19,16,20,17,370,790,
- 43,488,486,502,398,500,614,543,689,656,
- 769,748,73,90,506,19,16,20,17,370,
- 41,43,488,486,502,288,500,614,543,1142,
- 513,1296,554,19,16,20,17,370,790,43,
- 488,486,502,1698,500,614,543,689,656,769,
- 748,73,1459,18,200,299,19,16,20,17,
- 370,790,43,488,486,502,366,500,614,543,
- 689,656,769,748,73,1575,189,177,52,238,
- 506,19,16,20,17,370,41,43,488,486,
- 502,695,500,614,1144,513,191,133,211,252,
- 211,587,638,135,132,134,158,506,19,16,
- 20,17,370,790,43,488,486,502,1188,500,
- 614,543,689,656,769,748,73,91,137,344,
- 164,201,293,27,1349,587,141,144,147,150,
- 324,506,19,16,20,17,370,41,43,832,
- 1457,1597,1633,1643,1657,1210,506,19,16,20,
- 17,370,790,43,488,486,502,281,500,614,
- 543,689,656,769,748,73,84,506,19,16,
- 20,17,370,790,43,488,486,502,243,500,
- 614,543,689,656,769,748,73,83,506,19,
- 16,20,17,370,790,43,488,486,502,171,
- 500,614,543,689,656,769,748,73,82,506,
- 19,16,20,17,370,790,43,488,486,502,
- 547,500,614,543,689,656,769,748,73,81,
- 506,19,16,20,17,370,790,43,488,486,
- 502,578,500,614,543,689,656,769,748,73,
- 80,506,19,16,20,17,370,790,43,488,
- 486,502,194,500,614,543,689,656,769,748,
- 73,79,506,19,16,20,17,370,790,43,
- 488,486,502,199,500,614,543,689,656,769,
- 748,73,78,506,19,16,20,17,370,790,
- 43,488,486,502,416,500,614,543,689,656,
- 769,748,73,77,506,19,16,20,17,370,
- 790,43,488,486,502,488,500,614,543,689,
- 656,769,748,73,76,506,19,16,20,17,
- 370,790,43,488,486,502,490,500,614,543,
- 689,656,769,748,73,75,506,19,16,20,
- 17,370,790,43,488,486,502,514,500,614,
- 543,689,656,769,748,73,74,506,19,16,
- 20,17,370,790,43,488,486,502,241,500,
- 614,543,689,656,769,748,73,1604,506,19,
- 16,20,17,370,790,43,488,486,502,711,
- 500,614,543,689,656,769,748,73,1607,506,
- 19,16,20,17,370,41,43,488,486,502,
- 587,500,614,543,689,656,769,748,92,506,
- 19,16,20,17,370,41,43,488,486,502,
- 421,500,614,543,689,656,769,748,92,601,
- 661,1265,178,721,245,1610,506,19,16,20,
- 17,370,41,38,506,19,16,20,17,370,
- 41,43,488,486,502,1613,500,614,543,689,
- 656,769,748,92,506,19,16,20,17,370,
- 41,43,488,486,502,14,500,614,543,689,
- 656,769,748,92,1337,696,1658,201,295,193,
- 210,506,19,16,20,17,370,41,37,506,
- 19,16,20,17,370,41,43,488,486,502,
- 200,500,614,543,689,656,769,748,92,506,
- 19,16,20,17,370,41,43,488,486,502,
- 13,500,614,543,689,656,769,748,72,50,
- 201,1352,614,439,671,201,506,19,16,20,
- 17,370,41,43,488,486,502,113,500,614,
- 543,689,656,1185,201,30,201,30,1560,506,
- 19,16,20,17,370,41,43,488,486,502,
- 305,500,1034,272,291,324,207,600,97,676,
- 216,1269,219,1572,221,222,227,1592,265,504,
- 503,270,382,14,261,14,489,208,495,275,
- 189,177,272,553,553,262,553,553,513,216,
- 1269,219,1572,221,222,227,737,265,504,503,
- 270,133,211,1612,24,414,23,136,132,134,
- 158,22,86,86,1420,86,88,311,371,151,
- 1180,259,506,19,16,20,17,370,41,43,
- 488,958,138,670,164,281,14,14,707,499,
- 142,145,148,151,324,272,1681,1489,695,1721,
- 1226,205,217,1269,219,1572,221,222,227,339,
- 267,504,503,270,1218,226,738,739,216,1269,
- 219,1572,221,222,227,530,19,16,20,17,
- 370,40,1354,506,19,16,20,17,370,41,
- 43,488,486,502,697,1130,506,19,16,20,
- 17,370,41,43,488,486,502,587,1139,281,
- 530,19,16,20,17,370,33,196,198,710,
- 1681,158,700,724,712,287,1667,506,19,16,
- 20,17,370,41,43,488,486,874,1796,202,
- 253,211,216,1269,219,1572,221,222,227,530,
- 19,16,20,17,370,32,1354,506,19,16,
- 20,17,370,41,43,488,486,895,506,19,
- 16,20,17,370,41,43,488,486,916,506,
- 19,16,20,17,370,41,43,488,486,937,
- 513,197,198,506,19,16,20,17,370,41,
- 43,488,1029,728,506,19,16,20,17,370,
- 41,43,853,271,1681,14,280,14,1796,1796,
- 326,679,679,104,721,711,1674,232,417,104,
- 719,1589,1690,1677,733,513,216,1269,219,1572,
- 221,222,227,275,276,229,272,239,133,211,
- 1612,253,211,241,140,132,134,158,277,612,
- 1352,265,504,503,270,1226,14,217,1269,219,
- 1572,221,222,227,1796,1693,1718,1680,1420,139,
- 1796,164,506,19,16,20,17,370,41,36,
- 506,19,16,20,17,370,41,35,506,19,
- 16,20,17,370,41,34,160,506,19,16,
- 20,17,370,41,46,1796,357,1559,506,19,
- 16,20,17,370,41,45,207,636,1796,44,
- 44,587,272,506,19,16,20,17,370,41,
- 44,1157,720,1033,1353,104,1796,265,504,503,
- 270,409,19,16,20,17,370,41,42,567,
- 1189,1189,567,179,264,1796,258,627,225,240,
- 636,1796,1796,636,104,14,513,104,1666,1249,
- 104,14,513,104,1157,1796,313,1157,133,211,
- 1189,1796,313,1189,143,132,134,158,242,278,
- 195,243,1796,632,292,223,195,294,1666,257,
- 1796,1249,257,661,1465,86,1263,1465,1796,1263,
- 590,86,1796,1536,133,211,590,666,48,1536,
- 146,132,134,158,133,211,242,446,1796,636,
- 149,132,134,158,612,1352,505,588,133,211,
- 142,44,655,195,152,132,134,158,636,95,
- 116,636,272,587,1796,52,1796,1226,52,513,
- 636,636,1157,365,1796,195,1020,267,504,503,
- 270,1796,1189,1796,195,1157,252,211,587,252,
- 211,52,228,1796,190,203,232,257,1020,1796,
- 1464,1796,1699,1796,1263,1796,192,1020,1000,1689,
- 257,207,252,211,1796,1606,190,1263,1796,1796,
- 1351,372,1796,1796,372,191,1796,1796,1454,1353,
- 1561,1689,1796,1796,1796,1796,1796,1796,1796,1796,
- 1703,1796,1796,1796,1796,1796,1796,1460,1796,1796,
- 1796,615,1796,1796,947,1796,0,19,177,0,
- 1,2020,0,1,2031,0
+ 87,11,101,24,24,23,23,32,32,69,
+ 69,1,1,2,2,2,2,3,3,3,
+ 4,5,5,5,5,5,5,5,5,51,
+ 51,70,6,6,6,6,6,6,6,6,
+ 6,6,7,7,8,8,8,8,9,9,
+ 9,10,10,10,12,12,12,12,12,13,
+ 13,13,14,14,15,15,16,16,17,17,
+ 18,18,19,19,20,20,20,20,20,20,
+ 20,20,20,20,20,20,102,45,40,88,
+ 88,73,73,46,103,103,103,103,103,103,
+ 103,104,104,104,105,105,110,110,111,111,
+ 106,106,107,107,107,113,113,108,108,108,
+ 108,109,109,109,109,109,112,112,25,25,
+ 25,25,25,28,28,28,79,79,74,74,
+ 74,74,75,75,75,76,76,76,77,77,
+ 77,78,78,78,114,114,115,115,116,29,
+ 31,31,31,31,31,52,54,54,54,54,
+ 54,54,54,54,54,54,54,54,63,60,
+ 60,89,90,64,64,61,61,61,65,80,
+ 80,81,81,66,66,66,48,91,91,82,
+ 83,83,83,62,62,92,84,84,85,85,
+ 67,67,21,22,22,22,30,47,47,33,
+ 33,33,33,36,36,38,34,34,35,39,
+ 39,117,117,37,118,118,93,93,26,26,
+ 26,26,26,26,26,26,26,86,49,49,
+ 49,49,27,56,56,55,55,55,57,57,
+ 50,50,94,94,71,71,58,58,58,41,
+ 41,41,42,43,43,43,44,44,44,44,
+ 53,53,53,59,95,72,72,72,72,68,
+ 96,97,97,98,98,99,99,119,119,120,
+ 120,121,121,121,121,123,123,122,122,122,
+ 124,124,87,87,1,878,17,21,18,469,
+ 857,44,486,477,714,587,543,752,717,794,
+ 773,836,815,74,91,134,212,596,589,144,
+ 31,513,136,133,135,159,506,20,17,21,
+ 18,469,42,44,486,477,714,28,543,752,
+ 717,794,773,1248,1558,274,138,629,165,201,
+ 186,201,185,441,142,145,148,151,1097,506,
+ 20,17,21,18,469,42,40,373,1445,1579,
+ 1625,1639,1644,666,434,20,17,21,18,469,
+ 857,44,486,477,714,367,543,752,717,794,
+ 773,836,815,74,280,482,20,17,21,18,
+ 469,857,44,486,477,714,367,543,752,717,
+ 794,773,836,815,74,280,506,20,17,21,
+ 18,469,42,44,486,477,714,285,543,752,
+ 717,794,1276,1325,358,20,17,21,18,469,
+ 42,36,286,1437,1614,291,1100,387,285,579,
+ 14,14,201,31,1325,201,31,57,245,201,
+ 1442,394,1651,286,662,1324,157,1702,332,20,
+ 17,21,18,469,857,44,486,477,714,367,
+ 543,752,717,794,773,836,815,74,280,275,
+ 20,17,21,18,469,857,44,486,477,714,
+ 1481,543,752,717,794,773,836,815,74,1214,
+ 201,187,369,238,530,20,17,21,18,469,
+ 41,287,25,6,104,24,209,1325,506,20,
+ 17,21,18,469,42,39,288,458,20,17,
+ 21,18,469,857,44,486,477,714,22,543,
+ 752,717,794,773,836,815,74,280,506,20,
+ 17,21,18,469,857,44,486,477,714,124,
+ 543,752,717,794,773,836,815,74,91,506,
+ 20,17,21,18,469,42,44,486,477,714,
+ 289,543,752,717,1154,513,1325,554,20,17,
+ 21,18,469,857,44,486,477,714,1484,543,
+ 752,717,794,773,836,815,74,1448,19,327,
+ 299,20,17,21,18,469,857,44,486,477,
+ 714,373,543,752,717,794,773,836,815,74,
+ 1578,189,178,52,239,275,189,178,506,20,
+ 17,21,18,469,42,44,486,477,714,1326,
+ 543,1096,134,212,253,212,513,134,212,136,
+ 133,135,159,513,137,133,135,159,506,20,
+ 17,21,18,469,42,44,486,477,714,1278,
+ 543,752,1155,138,30,165,23,636,139,1443,
+ 165,142,145,148,151,1097,143,146,149,152,
+ 1097,201,294,201,296,1445,1579,1625,1639,1644,
+ 666,506,20,17,21,18,469,857,44,486,
+ 477,714,200,543,752,717,794,773,836,815,
+ 74,92,506,20,17,21,18,469,857,44,
+ 486,477,714,191,543,752,717,794,773,836,
+ 815,74,85,506,20,17,21,18,469,857,
+ 44,486,477,714,344,543,752,717,794,773,
+ 836,815,74,84,506,20,17,21,18,469,
+ 857,44,486,477,714,243,543,752,717,794,
+ 773,836,815,74,83,506,20,17,21,18,
+ 469,857,44,486,477,714,171,543,752,717,
+ 794,773,836,815,74,82,506,20,17,21,
+ 18,469,857,44,486,477,714,547,543,752,
+ 717,794,773,836,815,74,81,506,20,17,
+ 21,18,469,857,44,486,477,714,578,543,
+ 752,717,794,773,836,815,74,80,506,20,
+ 17,21,18,469,857,44,486,477,714,194,
+ 543,752,717,794,773,836,815,74,79,506,
+ 20,17,21,18,469,857,44,486,477,714,
+ 199,543,752,717,794,773,836,815,74,78,
+ 506,20,17,21,18,469,857,44,486,477,
+ 714,416,543,752,717,794,773,836,815,74,
+ 77,506,20,17,21,18,469,857,44,486,
+ 477,714,488,543,752,717,794,773,836,815,
+ 74,76,506,20,17,21,18,469,857,44,
+ 486,477,714,490,543,752,717,794,773,836,
+ 815,74,75,506,20,17,21,18,469,857,
+ 44,486,477,714,514,543,752,717,794,773,
+ 836,815,74,73,506,20,17,21,18,469,
+ 857,44,486,477,714,241,543,752,717,794,
+ 773,836,815,74,1688,506,20,17,21,18,
+ 469,857,44,486,477,714,601,543,752,717,
+ 794,773,836,815,74,1691,506,20,17,21,
+ 18,469,42,44,486,477,714,587,543,752,
+ 717,794,773,836,815,93,506,20,17,21,
+ 18,469,42,44,486,477,714,421,543,752,
+ 717,794,773,836,815,93,245,118,1232,282,
+ 711,13,1695,506,20,17,21,18,469,42,
+ 38,506,20,17,21,18,469,42,44,486,
+ 477,714,1698,543,752,717,794,773,836,815,
+ 93,506,20,17,21,18,469,42,44,486,
+ 477,714,50,543,752,717,794,773,836,815,
+ 93,325,612,1442,614,671,194,211,506,20,
+ 17,21,18,469,42,37,506,20,17,21,
+ 18,469,42,44,486,477,714,201,543,752,
+ 717,794,773,836,815,93,337,113,506,20,
+ 17,21,18,469,42,44,486,1025,1622,506,
+ 20,17,21,18,469,42,44,486,477,714,
+ 513,1101,202,273,104,587,207,44,513,208,
+ 217,1482,220,1585,222,223,228,1569,266,639,
+ 339,271,281,272,262,382,1447,1446,240,276,
+ 305,278,273,1687,1575,263,578,179,324,217,
+ 1482,220,1585,222,223,228,151,266,639,339,
+ 271,679,116,1693,52,217,1482,220,1585,222,
+ 223,228,1262,661,1210,87,600,14,97,1480,
+ 312,260,273,1318,277,253,212,1187,1152,218,
+ 1482,220,1585,222,223,228,676,268,639,339,
+ 271,506,20,17,21,18,469,42,44,486,
+ 477,714,258,1142,197,199,281,1582,737,1321,
+ 1568,670,340,1708,205,738,739,1687,506,20,
+ 17,21,18,469,42,44,486,477,941,506,
+ 20,17,21,18,469,42,44,486,1046,217,
+ 1482,220,1585,222,223,228,530,20,17,21,
+ 18,469,34,1480,506,20,17,21,18,469,
+ 42,44,486,477,962,506,20,17,21,18,
+ 469,42,44,486,477,983,506,20,17,21,
+ 18,469,42,44,486,477,1004,728,198,199,
+ 506,20,17,21,18,469,42,36,1687,506,
+ 20,17,21,18,469,42,44,899,506,20,
+ 17,21,18,469,42,44,920,326,679,14,
+ 217,1482,220,1585,222,223,228,697,1566,1627,
+ 1067,695,700,710,1693,232,724,721,104,721,
+ 276,230,44,273,358,20,17,21,18,469,
+ 42,36,254,212,254,212,134,212,266,639,
+ 339,271,242,141,133,135,159,733,246,1296,
+ 712,52,499,160,52,1210,506,20,17,21,
+ 18,469,42,35,1452,287,489,140,1705,165,
+ 1709,1637,253,212,1318,253,212,578,227,273,
+ 218,1482,220,1585,222,223,228,530,20,17,
+ 21,18,469,33,266,639,339,271,506,20,
+ 17,21,18,469,42,47,89,1441,439,414,
+ 1441,265,506,20,17,21,18,469,42,46,
+ 506,20,17,21,18,469,42,45,409,20,
+ 17,21,18,469,42,43,567,640,719,567,
+ 1014,44,14,612,1442,698,14,661,104,627,
+ 661,357,513,314,693,720,663,1573,14,254,
+ 212,1187,661,1296,1187,1789,1296,196,1689,314,
+ 134,212,241,530,371,279,1187,144,133,135,
+ 159,226,87,196,696,1637,258,615,1256,258,
+ 1483,1218,44,1321,1218,632,1321,588,87,158,
+ 484,259,1789,615,14,1789,1483,242,661,661,
+ 208,1789,1789,341,666,415,134,212,1789,1296,
+ 1789,48,1187,147,133,135,159,1449,1446,686,
+ 134,212,661,273,1318,134,212,150,133,135,
+ 159,1256,153,133,135,159,196,258,268,639,
+ 339,271,1704,14,1321,142,95,44,104,707,
+ 14,104,14,513,578,104,661,661,104,1087,
+ 1264,578,711,1685,513,587,365,587,446,587,
+ 196,196,243,292,1296,244,224,191,587,293,
+ 1706,1789,295,87,281,1789,1789,229,544,233,
+ 87,1215,1686,1087,1087,1240,1477,203,1789,180,
+ 1789,204,1789,1789,1789,1789,1789,1789,1789,1789,
+ 1629,191,192,1718,1789,1789,1789,1789,1789,1789,
+ 1789,1789,1789,1789,1789,1707,1686,1789,1789,1789,
+ 1789,1789,1789,1789,1789,1789,1789,193,1789,0,
+ 20,178,0,1,2014,0,1,2025,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -502,84 +500,84 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TermAction {
public final static char termAction[] = {0,
- 1796,1806,1605,1807,1520,58,2008,2009,2010,1512,
- 1091,1528,60,1,1379,1340,1305,1957,1808,1809,
- 1810,1811,1036,404,1958,1956,2011,1959,1955,53,
- 1796,1962,1967,1966,1964,1965,1963,1968,1969,1961,
- 1970,1971,1972,251,1143,499,336,1796,1,59,
- 1,1796,189,1,1,1,50,2008,2009,2010,
- 1409,1398,1387,1357,1,1434,701,1409,1398,1387,
- 1357,1,1,1,1,1,1252,1423,1,1,
+ 1789,1800,1572,1801,1400,59,2002,2003,2004,1158,
+ 1103,1486,61,1,1517,1356,534,1951,1802,1803,
+ 1804,1805,548,379,1952,1950,2005,1953,1949,54,
+ 1789,1956,1961,1960,1958,1959,1957,1962,1963,1955,
+ 1964,1965,1966,252,1538,1539,467,1789,1,60,
+ 1,1789,190,1,1,1,51,2002,2003,2004,
+ 1386,1375,1364,1328,1,1418,1409,1386,1375,1364,
+ 1328,1,1,1,1,1,1188,1339,1,1,
1,1,1,1,1,1,1,1,1,1,
- 189,1,1,1,1796,1,1796,1,1990,188,
- 1,1,1,1796,1409,1398,1387,1357,1799,487,
- 1786,1,260,2020,1186,1,1,180,1,1,
- 1,1,1,181,507,1,1,1,1,1,
- 1,1,1,1,1,1,1,188,1,1,
- 1,1796,1,269,1,1990,189,1,1,1,
- 266,2020,1186,1798,251,507,47,283,1,263,
- 1563,1450,507,1,2052,1,1,1,1,1,
- 69,507,1,1,1,1,1,1,1,1,
- 1,1,1,1,189,1,1,1,1796,1806,
- 67,1807,1990,49,2008,2009,2010,1563,48,61,
- 1796,1806,1563,1807,1796,1957,1,1790,1186,1548,
- 1537,1801,1958,1956,2011,1959,1955,1445,507,1962,
- 1967,1966,1964,1965,1963,1968,1969,1961,1970,1971,
- 1972,127,1143,499,336,459,1800,2008,2009,2010,
- 52,266,71,1450,62,251,1548,1537,1957,1434,
- 701,1548,1537,507,574,1958,1956,2011,1959,1955,
- 1326,1313,1962,1967,1966,1964,1965,1963,1968,1969,
- 1961,1970,1971,1972,1,1806,1605,1807,378,1799,
- 1,2020,1433,1512,1091,1528,1796,2032,1379,1340,
- 1305,592,1808,1809,1810,1811,1036,404,1796,1806,
- 1605,1807,477,1799,1796,1326,1313,1512,1091,1528,
- 1146,1205,1379,1340,1305,968,1808,1809,1810,1811,
- 1036,404,1796,70,1798,1,268,1450,1451,1796,
- 1801,1,1806,1605,1807,1520,28,507,507,1064,
- 1512,1091,1528,65,2839,1379,1340,1305,1798,1808,
- 1809,1810,1811,1036,404,1800,1,1796,1806,1605,
- 1807,1520,1799,1119,1796,1796,1512,1091,1528,1801,
- 1796,1379,1340,1305,28,1808,1809,1810,1811,1036,
- 404,1796,1,1,1,1,183,2850,459,2850,
- 1,1,1,1355,1800,1,1,1,1796,1,
- 1,1,1,1,1,2051,640,1798,1796,1806,
- 1605,1807,1520,182,2851,57,2851,1512,1091,1528,
- 1,487,1379,1340,1305,1805,1808,1809,1810,1811,
- 1036,404,2108,1,1806,1605,1807,1520,204,2853,
- 87,2853,1512,1091,1528,1796,2839,1379,1340,1305,
- 1805,1808,1809,1810,1811,1036,404,1796,1806,1605,
- 1807,1520,1252,1423,1796,1796,1512,1091,1528,667,
- 2839,1379,1340,1305,1339,1808,1809,1810,1811,1036,
- 404,1,1806,1605,1807,1520,1804,56,1,55,
- 1512,1091,1528,89,2839,1379,1340,1305,218,1808,
- 1809,1810,1811,1036,404,1796,1806,1605,1807,1520,
- 507,1804,1796,54,1512,1091,1528,1801,89,1379,
- 1340,1305,1796,1808,1809,1810,1811,1036,404,1796,
- 1806,1611,1807,1520,1252,1423,1252,1423,1512,1091,
- 1528,1796,1800,1379,1340,1305,41,1808,1809,1810,
- 1811,1036,404,1,1806,1605,1807,1520,1796,1796,
- 1252,1423,1512,1091,1528,1796,1,1379,1340,1305,
- 251,1808,1809,1810,1811,1036,404,19,31,1787,
- 1206,1787,1787,177,177,177,1796,1,1793,1787,
- 1203,1803,1821,1822,177,1796,1806,1796,1807,68,
- 51,177,177,177,177,177,926,1787,1075,1434,
- 701,206,1806,66,1807,2052,905,884,863,842,
- 821,779,800,758,737,716,128,1796,1796,1802,
- 1166,129,2008,2009,2010,63,2052,2008,2009,2010,
- 989,205,1140,1957,1140,1164,1169,1796,1957,1796,
- 1958,1956,2011,1959,1955,1958,1956,2011,1959,1955,
- 130,1796,1806,574,1807,131,2008,2009,2010,254,
- 64,2008,2009,2010,1266,1796,640,1957,1,651,
- 691,1169,1957,1801,1958,1956,2011,1959,1955,1958,
- 1956,2011,1959,1955,247,289,1796,246,1546,209,
- 1,1,1,2008,2009,2010,248,1009,1800,249,
- 29,199,1,1,1,2008,2009,2010,250,220,
- 29,1452,1796,205,2008,2009,2010,1,2020,1433,
- 282,507,251,2020,1433,1267,1796,1796,1796,438,
- 1268,187,187,1796,187,1796,1796,1087,1796,1824,
- 1447,1496,2750,1796,183,182,532,204,1796,1044,
- 1796,1796,1796,1796,1796,1796,1796,1796,1796,1796,
- 1099,1796,1796,1267
+ 190,1,1,1,1789,1,1789,1,1984,189,
+ 1,1,1,1789,1386,1375,1364,1328,1793,470,
+ 1779,1,261,2014,1216,1,1,181,1,1,
+ 1,1,1,182,509,1,1,1,1,1,
+ 1,1,1,1,1,1,1,189,1,1,
+ 1,1789,1,270,1,1984,190,1,1,1,
+ 267,2014,1216,1792,252,509,48,284,1,264,
+ 1550,1427,509,1,2046,1,1,1,1,1,
+ 70,509,1,1,1,1,1,1,1,1,
+ 1,1,1,1,190,1,1,1,1789,1800,
+ 68,1801,1984,50,2002,2003,2004,1550,49,62,
+ 1789,1800,1550,1801,1789,1951,1,1783,1216,1542,
+ 1528,1795,1952,1950,2005,1953,1949,1576,509,1956,
+ 1961,1960,1958,1959,1957,1962,1963,1955,1964,1965,
+ 1966,128,1538,1539,467,436,1794,2002,2003,2004,
+ 53,267,72,1427,63,252,1542,1528,1951,1418,
+ 1409,1542,1528,509,599,1952,1950,2005,1953,1949,
+ 1301,1199,1956,1961,1960,1958,1959,1957,1962,1963,
+ 1955,1964,1965,1966,1,1800,1572,1801,454,1793,
+ 1,2014,1397,1158,1103,1486,1789,2026,1517,1356,
+ 534,617,1802,1803,1804,1805,548,379,1789,1800,
+ 1572,1801,1454,1793,1789,1301,1199,1158,1103,1486,
+ 346,1690,1517,1356,534,1035,1802,1803,1804,1805,
+ 548,379,1789,71,1792,1,269,1427,1261,1789,
+ 1795,1,1800,1572,1801,1400,29,509,509,1131,
+ 1158,1103,1486,66,2833,1517,1356,534,1792,1802,
+ 1803,1804,1805,548,379,1794,1,1789,1800,1572,
+ 1801,1400,1793,993,1789,1789,1158,1103,1486,1795,
+ 1789,1517,1356,534,29,1802,1803,1804,1805,548,
+ 379,1789,1,1,1,1,184,2844,436,2844,
+ 1,1,1,1495,1794,1,1,1,1789,1,
+ 1,1,1,1,1,2045,698,1792,1789,1800,
+ 1572,1801,1400,183,2845,58,2845,1158,1103,1486,
+ 1,470,1517,1356,534,1799,1802,1803,1804,1805,
+ 548,379,2102,1,1800,1572,1801,1400,205,2847,
+ 88,2847,1158,1103,1486,1789,2833,1517,1356,534,
+ 1799,1802,1803,1804,1805,548,379,1789,1800,1572,
+ 1801,1400,1188,1339,1789,1789,1158,1103,1486,741,
+ 2833,1517,1356,534,1316,1802,1803,1804,1805,548,
+ 379,1,1800,1572,1801,1400,1798,57,1,56,
+ 1158,1103,1486,90,2833,1517,1356,534,219,1802,
+ 1803,1804,1805,548,379,1789,1800,1572,1801,1400,
+ 509,1798,1789,55,1158,1103,1486,1795,90,1517,
+ 1356,534,1789,1802,1803,1804,1805,548,379,1789,
+ 1800,1588,1801,1400,1188,1339,1188,1339,1158,1103,
+ 1486,1789,1794,1517,1356,534,42,1802,1803,1804,
+ 1805,548,379,1,1800,1572,1801,1400,1789,1789,
+ 1188,1339,1158,1103,1486,1789,1,1517,1356,534,
+ 252,1802,1803,1804,1805,548,379,20,32,1780,
+ 1496,1780,1780,178,178,178,1789,1,1786,1780,
+ 1683,1797,1815,1816,178,1789,1800,1789,1801,69,
+ 52,178,178,178,178,178,972,1780,471,1418,
+ 1409,207,1800,67,1801,2046,951,930,909,888,
+ 867,825,846,804,783,762,129,1789,1789,1796,
+ 475,130,2002,2003,2004,64,2046,2002,2003,2004,
+ 1056,206,479,1951,479,472,668,1789,1951,1789,
+ 1952,1950,2005,1953,1949,1952,1950,2005,1953,1949,
+ 131,1789,1800,599,1801,132,2002,2003,2004,255,
+ 65,2002,2003,2004,1277,1789,698,1951,1,1217,
+ 731,668,1951,1795,1952,1950,2005,1953,1949,1952,
+ 1950,2005,1953,1949,247,290,1789,248,1581,210,
+ 2002,2003,2004,1,1,1,249,1076,1794,250,
+ 30,200,1,1,1,2002,2003,2004,251,221,
+ 30,1428,1789,206,2002,2003,2004,1,2014,1397,
+ 283,509,252,2014,1397,1429,1789,1789,1789,488,
+ 1571,188,188,1789,188,1789,1789,733,1789,1818,
+ 1634,1692,2744,1789,184,183,557,205,1789,1111,
+ 1789,1789,1789,1789,1789,1789,1789,1789,1789,1789,
+ 1166,1789,1789,1429
};
};
public final static char termAction[] = TermAction.termAction;
@@ -587,27 +585,28 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asb {
public final static char asb[] = {0,
- 231,1,104,41,104,104,104,104,104,104,
- 104,104,104,3,380,73,70,77,75,83,
- 81,85,84,87,86,10,104,380,309,309,
- 249,104,187,187,337,380,104,104,104,104,
- 104,104,104,104,104,104,104,104,104,104,
- 104,104,104,104,104,104,104,104,104,104,
- 104,104,104,104,104,104,187,187,45,52,
- 341,98,279,185,184,312,324,66,324,66,
- 66,324,66,324,394,141,70,70,75,75,
- 75,75,73,73,81,77,77,84,83,349,
- 86,85,68,50,337,341,121,45,417,102,
- 187,351,282,66,309,309,66,309,104,50,
- 341,332,417,45,101,98,187,335,394,186,
- 284,68,197,68,268,270,228,224,68,332,
- 417,104,104,45,102,279,344,343,341,284,
- 187,68,197,268,268,224,48,277,309,104,
- 227,224,50,417,332,45,45,187,351,282,
- 335,197,224,190,197,268,270,274,270,52,
- 45,309,104,50,332,284,197,192,270,224,
- 104,309,45,270,187,186,224,94,104,93,
- 117,341,224,224,310,192,104,117,270
+ 199,1,106,41,106,106,106,106,106,106,
+ 106,106,106,3,340,23,20,27,25,33,
+ 31,35,34,37,36,9,106,340,253,253,
+ 292,106,189,189,286,340,106,106,106,106,
+ 106,106,106,106,106,106,106,106,106,106,
+ 106,106,106,106,106,106,106,106,106,106,
+ 106,106,106,106,106,106,189,189,45,82,
+ 290,100,223,187,186,261,273,96,273,96,
+ 96,273,96,273,354,143,20,20,25,25,
+ 25,25,23,23,31,27,27,34,33,197,
+ 36,35,98,80,286,290,123,45,377,104,
+ 189,311,226,96,253,253,96,253,106,80,
+ 290,281,377,45,103,100,189,284,354,188,
+ 228,98,48,98,217,219,390,75,98,281,
+ 281,106,106,45,104,223,382,381,290,228,
+ 189,98,48,217,217,75,78,259,253,106,
+ 389,75,80,281,377,45,45,189,311,226,
+ 284,48,75,192,48,217,219,256,219,82,
+ 45,253,106,80,377,281,228,48,194,219,
+ 75,106,253,45,219,281,189,188,75,385,
+ 106,384,119,290,75,75,254,194,106,119,
+ 219
};
};
public final static char asb[] = Asb.asb;
@@ -615,48 +614,46 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asr {
public final static byte asr[] = {0,
- 80,0,66,12,2,52,67,14,15,11,
- 4,9,10,53,54,47,48,55,56,57,
- 58,61,62,63,64,65,68,69,43,60,
- 70,71,72,73,74,76,75,77,78,79,
- 59,30,80,29,50,5,0,5,43,12,
- 52,14,15,11,4,9,10,22,23,16,
- 2,18,19,20,21,1,3,13,0,4,
+ 80,0,12,2,52,67,14,15,60,70,
+ 71,72,73,74,76,75,77,78,79,4,
53,54,9,10,48,47,55,56,57,58,
- 61,62,11,63,64,65,50,30,43,80,
- 68,69,59,66,5,29,0,6,7,8,
- 17,50,5,18,19,20,21,3,14,15,
- 11,9,10,22,23,16,4,2,1,0,
- 6,7,8,2,18,19,20,21,1,3,
- 14,15,11,4,9,10,22,23,16,0,
- 7,17,28,8,27,26,25,6,24,52,
- 67,14,15,11,9,10,53,54,47,48,
- 55,56,57,58,61,62,63,64,65,68,
- 69,60,70,71,72,73,74,75,76,77,
- 78,79,4,2,12,29,30,5,0,66,
- 5,4,1,2,59,0,24,31,6,32,
- 44,25,33,26,34,35,27,7,36,37,
- 17,45,28,46,38,39,8,40,41,42,
- 1,3,51,5,43,0,60,12,52,0,
- 16,18,19,20,21,1,3,2,14,15,
- 11,4,9,10,22,23,51,0,5,30,
- 16,18,19,20,21,1,3,2,14,15,
- 11,4,9,10,22,23,0,1,3,5,
- 43,29,0,5,29,43,60,0,4,2,
- 12,30,5,24,31,6,32,44,25,33,
- 26,34,35,27,7,36,37,17,45,28,
- 46,38,39,8,40,41,42,49,3,1,
- 0,39,31,36,34,35,33,32,37,38,
- 40,41,42,59,66,28,25,17,24,27,
- 26,6,7,8,29,1,5,30,2,12,
- 4,0,2,5,29,30,66,12,59,0,
+ 61,62,11,63,64,65,43,66,68,69,
+ 59,30,80,29,50,5,0,24,31,6,
+ 32,44,25,33,26,34,35,27,7,36,
+ 37,17,45,28,46,38,39,8,40,41,
+ 42,1,3,51,5,43,0,5,43,12,
+ 52,14,15,11,4,9,10,22,23,16,
+ 2,18,19,20,21,1,3,13,0,6,
+ 7,8,17,50,5,18,19,20,21,3,
+ 14,15,11,9,10,22,23,16,4,2,
+ 1,0,6,7,8,2,18,19,20,21,
+ 1,3,14,15,11,4,9,10,22,23,
+ 16,0,7,17,28,8,27,26,25,6,
+ 24,52,67,14,15,11,9,10,53,54,
+ 47,48,55,56,57,58,61,62,63,64,
+ 65,68,69,60,70,71,72,73,74,75,
+ 76,77,78,79,4,2,12,29,30,5,
+ 0,66,5,4,1,2,59,0,16,18,
+ 19,20,21,1,3,2,14,15,11,4,
+ 9,10,22,23,51,0,1,3,5,43,
+ 29,0,4,2,12,30,5,24,31,6,
+ 32,44,25,33,26,34,35,27,7,36,
+ 37,17,45,28,46,38,39,8,40,41,
+ 42,49,3,1,0,5,29,43,60,0,
+ 39,31,36,34,35,33,32,37,38,40,
+ 41,42,59,66,28,25,17,24,27,26,
+ 6,7,8,29,1,5,30,2,12,4,
+ 0,5,30,16,18,19,20,21,1,3,
+ 2,14,15,11,4,9,10,22,23,0,
4,24,31,6,32,44,25,33,26,34,
35,27,7,36,37,17,45,28,46,38,
39,8,40,41,42,1,3,49,0,16,
18,19,20,21,2,14,15,11,4,9,
10,22,23,1,3,44,45,46,39,31,
36,34,35,33,32,37,38,40,41,42,
- 28,25,17,24,27,26,6,7,8,0
+ 28,25,17,24,27,26,6,7,8,0,
+ 2,30,12,59,66,5,29,0,60,12,
+ 52,0
};
};
public final static byte asr[] = Asr.asr;
@@ -664,27 +661,28 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasb {
public final static byte nasb[] = {0,
- 60,38,20,38,20,20,20,20,20,20,
- 20,20,20,38,98,38,38,38,38,38,
- 38,38,38,38,38,38,20,98,51,51,
- 63,99,88,88,83,1,20,20,20,20,
+ 61,38,20,38,20,20,20,20,20,20,
+ 20,20,20,38,96,38,38,38,38,38,
+ 38,38,38,38,38,38,20,96,15,15,
+ 85,97,71,71,74,1,20,20,20,20,
20,20,20,20,20,20,20,20,20,20,
- 20,20,99,20,20,20,20,20,20,20,
- 20,20,20,20,20,20,88,88,26,20,
- 90,24,82,22,22,71,72,9,72,49,
- 49,72,48,72,66,38,38,38,38,38,
+ 20,20,97,20,20,20,20,20,20,20,
+ 20,20,20,20,20,20,71,71,24,20,
+ 80,22,73,11,11,44,45,50,45,89,
+ 89,45,88,45,39,38,38,38,38,38,
38,38,38,38,38,38,38,38,38,38,
- 38,38,38,58,106,38,28,26,118,25,
- 88,93,87,7,7,7,7,7,20,18,
- 38,58,118,26,25,11,88,54,31,38,
- 95,15,58,38,58,41,13,58,38,58,
- 118,20,20,26,25,53,22,22,90,95,
- 88,38,102,58,7,39,17,38,7,20,
- 46,39,58,118,11,26,26,88,93,87,
- 74,58,39,43,114,7,41,38,38,19,
- 26,7,20,18,11,110,102,56,41,39,
- 20,7,26,41,88,88,39,44,20,38,
- 56,90,39,39,38,56,20,76,80
+ 38,38,38,59,108,38,28,24,83,23,
+ 71,91,70,7,7,7,7,7,20,18,
+ 38,68,83,24,23,78,71,55,31,38,
+ 93,26,59,38,59,52,13,59,38,68,
+ 59,20,20,24,23,54,11,11,80,93,
+ 71,38,112,59,7,9,17,38,7,20,
+ 100,9,59,59,83,24,24,71,91,70,
+ 64,59,9,47,116,7,52,38,38,19,
+ 24,7,20,18,83,78,102,112,57,52,
+ 9,20,7,24,52,78,71,71,9,48,
+ 20,38,57,80,9,9,38,57,20,66,
+ 106
};
};
public final static byte nasb[] = Nasb.nasb;
@@ -692,18 +690,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasr {
public final static char nasr[] = {0,
- 79,77,76,64,75,74,1,0,89,0,
- 21,0,97,0,90,0,68,11,59,5,
- 0,26,0,11,5,24,0,5,11,0,
- 79,78,77,76,64,75,74,0,32,0,
- 51,0,11,69,0,99,0,92,65,0,
- 70,0,23,43,42,36,34,11,0,11,
- 87,0,11,88,0,64,60,61,62,63,
- 52,27,0,43,42,36,34,31,0,95,
- 0,23,42,43,11,0,11,23,0,31,
- 49,0,31,49,11,25,0,48,11,45,
- 0,81,11,48,0,43,42,31,0,93,
- 11,25,0,11,48,66,0,56,0
+ 79,77,76,64,75,74,1,0,32,0,
+ 26,0,97,0,70,0,68,11,59,5,
+ 0,11,5,24,0,90,0,5,11,0,
+ 79,78,77,76,64,75,74,0,64,60,
+ 61,62,63,52,28,0,11,69,0,89,
+ 0,51,0,23,43,42,36,34,11,0,
+ 11,87,0,43,42,36,34,27,0,11,
+ 23,0,23,42,43,11,0,21,0,27,
+ 49,0,56,0,11,88,0,92,65,0,
+ 27,49,11,25,0,48,11,45,0,99,
+ 0,93,11,25,0,95,0,43,42,27,
+ 0,81,11,48,0,11,48,66,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -729,18 +727,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
100,0,0,0,102,106,107,108,109,110,
- 0,111,112,113,114,115,116,117,118,119,
- 129,0,97,96,122,150,128,0,0,0,
- 0,98,146,148,0,149,0,0,0,0,
- 159,160,161,0,101,121,137,141,147,156,
- 0,131,136,0,151,154,155,158,0,132,
- 133,134,135,138,0,140,145,162,99,103,
- 104,105,120,123,124,125,126,127,130,0,
- 139,143,0,0,144,153,95,0,0,0,
- 142,0,152,157,0,163,164,0,165,0,
+ 0,111,112,113,114,115,116,117,0,118,
+ 128,0,97,96,121,149,0,127,0,0,
+ 0,98,145,147,0,148,0,0,0,0,
+ 158,159,160,0,101,120,136,140,146,155,
+ 0,130,135,0,150,153,154,157,0,131,
+ 132,133,134,137,0,139,144,161,99,103,
+ 104,105,119,122,123,124,125,126,129,0,
+ 138,142,0,0,143,152,95,0,0,0,
+ 141,0,151,156,0,162,163,0,164,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0
+ 0,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -770,9 +768,9 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 62,60,5,62,26,26,60,53,106,44,
+ 62,60,5,62,26,26,60,53,107,44,
26,39,44,26,66,5,5,19,99,98,
- 42,26,36,3,68,66,7,107,5,66,
+ 42,26,36,3,68,66,7,108,5,66,
39,37,39
};
};
@@ -803,20 +801,20 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 139,12,0,96,0,189,104,0,31,136,
+ 139,12,0,96,0,189,104,0,31,135,
0,144,165,104,13,152,0,98,0,0,
148,104,2,135,0,97,0,148,104,2,
0,151,2,0,113,17,179,104,12,0,
113,179,104,17,12,0,113,17,12,0,
113,179,104,12,0,113,12,0,129,0,
- 2,0,152,97,0,2,97,0,148,104,
- 2,129,0,2,0,151,97,0,140,2,
+ 2,0,151,97,0,2,97,0,148,104,
+ 2,129,0,2,0,150,97,0,140,2,
0,144,177,104,13,94,185,44,0,98,
0,144,177,104,13,185,44,0,141,0,
- 99,0,184,104,141,0,104,141,0,142,
+ 99,0,184,104,141,0,104,141,0,141,
99,0,173,104,13,183,94,182,157,0,
- 173,104,13,182,157,0,195,85,0,77,
- 2,101,97,99,0,195,116,138,2,89,
+ 173,104,13,182,157,0,196,85,0,77,
+ 2,101,97,99,0,196,116,138,2,89,
0,53,0,0,138,69,111,0,29,118,
0,164,2,0,97,107,0,144,165,104,
13,116,164,2,0,97,3,0,105,0,
@@ -829,15 +827,15 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeState {
public final static char scopeState[] = {0,
- 1085,0,1680,1689,1658,0,396,0,1464,1339,
- 1433,1265,1249,1186,1157,0,636,1210,313,0,
- 1572,1269,504,503,1249,1186,1157,1666,1450,1536,
- 0,1379,1340,1305,477,378,1581,459,1146,640,
- 574,1326,1313,1169,1423,1252,1409,1398,1387,1357,
- 1563,1548,1537,1434,701,1528,1520,1512,1091,1036,
- 404,1099,1064,1044,1009,989,968,947,615,1119,
- 592,507,926,905,884,863,842,821,800,779,
- 758,737,716,313,667,553,532,417,438,344,
+ 1614,0,1685,1686,1651,0,367,0,1477,1316,
+ 1397,1232,1256,1216,1187,0,661,666,314,0,
+ 1585,1482,639,339,1256,1216,1187,1637,1427,1483,
+ 0,1517,1356,534,1454,454,1558,436,346,698,
+ 599,1301,1199,668,1339,1188,1386,1375,1364,1328,
+ 1550,1542,1528,1418,1409,1486,1400,1158,1103,548,
+ 379,1166,1131,1111,1076,1056,1035,1014,640,993,
+ 617,509,972,951,930,909,888,867,846,825,
+ 804,783,762,314,741,578,557,415,488,394,
0
};
};
@@ -856,17 +854,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
104,12,2,136,135,167,168,157,169,46,
45,170,44,171,172,94,101,101,103,103,
103,103,102,102,106,105,105,108,107,138,
- 110,109,116,13,142,124,17,113,104,4,
+ 110,109,116,13,142,120,17,113,104,4,
151,104,2,182,158,158,185,158,59,104,
- 124,4,104,113,179,149,148,118,104,150,
+ 120,4,104,113,179,149,148,118,104,150,
104,94,13,94,13,165,104,13,152,4,
- 104,179,17,113,4,2,127,129,104,29,
+ 120,179,17,113,4,2,127,129,104,29,
148,183,104,13,104,144,29,189,52,12,
- 190,104,13,104,149,113,113,140,104,2,
+ 190,104,13,120,104,113,113,140,104,2,
142,13,173,141,174,104,177,94,178,60,
- 139,52,12,104,149,104,104,104,177,144,
- 60,29,139,165,148,186,173,184,59,140,
- 2,104,144,144,29,29,59,142,125
+ 139,52,12,104,104,149,104,104,104,177,
+ 144,60,29,139,165,149,148,186,173,184,
+ 59,140,2,104,144,144,29,29,59,142,
+ 125
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -987,12 +986,11 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"shift_expression",
"relational_expression",
"equality_expression",
- "AND_expression",
- "exclusive_OR_expression",
- "inclusive_OR_expression",
- "logical_AND_expression",
- "logical_OR_expression",
- "conditional_expression",
+ "and_expression",
+ "exclusive_or_expression",
+ "inclusive_or_expression",
+ "logical_and_expression",
+ "logical_or_expression",
"assignment_expression",
"expression_list_actual",
"constant_expression",
@@ -1062,20 +1060,20 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 209,
+ NUM_STATES = 211,
NT_OFFSET = 93,
- LA_STATE_OFFSET = 2108,
+ LA_STATE_OFFSET = 2102,
MAX_LA = 2,
- NUM_RULES = 312,
- NUM_NONTERMINALS = 123,
- NUM_SYMBOLS = 216,
+ NUM_RULES = 313,
+ NUM_NONTERMINALS = 124,
+ NUM_SYMBOLS = 217,
SEGMENT_SIZE = 8192,
- START_STATE = 1202,
+ START_STATE = 1235,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 80,
EOLT_SYMBOL = 80,
- ACCEPT_ACTION = 1786,
- ERROR_ACTION = 1796;
+ ACCEPT_ACTION = 1779,
+ ERROR_ACTION = 1789;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
index 57e3d63332..7ebe9ef388 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
@@ -17,20 +17,29 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.core.dom.ast.cpp.*;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-public class CPPExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression >
+public class CPPExpressionParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTExpression >
+ , ISecondaryParser< IASTExpression >
{
private static ParseTable prs = new CPPExpressionParserprs();
private FixedBacktrackingParser btParser;
@@ -168,7 +177,11 @@ public class CPPExpressionParser extends PrsStream implements RuleAction , IPars
private CPPBuildASTParserAction action;
private IASTCompletionNode compNode;
-public CPPExpressionParser() { // constructor
+
+public CPPExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set<IParser.Options> options) {
+ initActions(options);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
private void initActions(Set<IParser.Options> options) {
@@ -187,10 +200,9 @@ public void addToken(IToken token) {
}
-public IASTExpression parse(Set<IParser.Options> options) {
+public IASTExpression parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(options);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
@@ -233,12 +245,12 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, CPPExpressionParsersym.TK_EOF_TOKEN));
}
-public CPPExpressionParser(IParserActionTokenProvider parser) { // constructor
+public CPPExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
+ initActions(options);
tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -1421,19 +1433,19 @@ public CPPExpressionParser(IParserActionTokenProvider parser) { // constructor
}
//
- // Rule 328: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 328: ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
//
case 328: { action. consumePointer(); break;
}
//
- // Rule 329: ptr_operator ::= pointer_hook &
+ // Rule 329: ptr_operator ::= pointer_hook & pointer_hook
//
case 329: { action. consumeReferenceOperator(); break;
}
//
- // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
//
case 330: { action. consumePointerToMember(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
index c18c485cd7..1830b1f595 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
@@ -69,7 +69,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
1,3,1,1,1,6,5,7,6,1,
0,6,5,6,4,1,3,1,0,1,
1,2,1,1,3,1,3,1,1,1,
- 1,3,9,2,2,3,2,4,2,6,
+ 1,3,9,2,2,3,2,5,3,7,
0,1,2,2,1,0,1,1,1,3,
1,2,1,1,2,3,1,1,1,3,
2,1,2,2,9,8,2,1,3,1,
@@ -92,443 +92,449 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
4,1,2,5,5,3,3,1,4,3,
1,0,1,3,1,1,-62,0,0,0,
-2,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-477,0,
- 0,0,0,0,0,-263,0,0,-4,0,
- 0,0,0,0,-398,0,0,0,0,-71,
+ 0,0,0,0,0,0,0,0,-480,0,
+ 0,0,0,0,0,-264,0,0,-4,0,
+ 0,0,0,0,-401,0,0,0,0,-71,
0,0,0,-5,0,0,0,0,0,0,
- 0,0,-459,0,-88,0,0,0,0,0,
+ 0,0,-462,0,-88,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,-6,0,0,0,
0,0,0,0,0,0,-58,0,0,0,
-20,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-7,0,0,0,0,0,-239,0,
- 0,-49,-8,-272,0,0,0,-72,0,0,
+ 0,0,-7,0,0,0,0,0,-240,0,
+ 0,-49,-293,-273,0,0,0,-72,0,0,
0,0,0,0,0,0,0,0,0,0,
- -417,0,0,0,0,0,0,0,0,-115,
+ -8,0,0,0,0,0,0,0,0,-115,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,-127,0,0,
- 0,0,0,-113,0,-178,0,0,0,-387,
+ 0,0,0,-113,0,-178,0,0,0,-53,
-128,0,0,0,0,-116,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-258,0,-9,
- 0,0,0,0,0,0,0,0,-356,0,
+ 0,0,0,0,0,0,0,0,0,-137,
+ 0,0,0,0,0,0,0,0,-358,0,
0,-142,0,0,0,-51,0,0,0,0,
- 0,0,-533,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-183,
- 0,-11,-54,0,0,-131,0,0,0,0,
+ 0,0,-536,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-221,0,0,0,-183,
+ 0,-9,0,0,0,-131,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,-61,
- 0,0,0,0,0,0,0,0,-402,0,
- 0,-206,0,0,0,0,0,0,-64,0,
+ 0,0,0,0,0,-11,0,0,0,0,
+ 0,-225,0,0,0,-120,0,0,-64,0,
0,-220,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-12,0,-13,0,0,0,-179,
- 0,0,0,0,-353,-53,0,-225,-15,0,
- -224,0,0,0,0,0,0,0,-150,0,
- 0,0,-28,0,0,0,0,0,0,0,
- 0,-59,0,0,0,0,0,-463,0,0,
- 0,-508,0,0,0,-447,0,0,0,0,
+ 0,0,0,-259,0,0,0,0,0,-179,
+ 0,0,0,0,-355,-54,0,-226,-10,0,
+ -233,0,0,0,0,-65,0,0,-150,0,
+ 0,0,-12,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-138,0,
+ 0,-511,0,0,0,-13,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-243,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-15,
+ 0,0,0,0,-535,0,0,0,-129,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-10,0,0,0,-29,
- 0,0,0,0,-532,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-206,0,
+ 0,0,0,-346,0,0,0,-189,0,-332,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-117,0,0,0,0,0,0,
- 0,0,-30,-390,0,0,0,0,0,-331,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-188,0,
+ 0,0,0,0,0,0,0,0,-409,0,
+ 0,0,0,0,-442,0,0,0,-257,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-31,0,0,0,0,0,0,-406,0,
- 0,0,0,0,-439,0,0,0,-256,0,
+ 0,0,0,0,0,0,0,0,-222,0,
+ 0,0,0,0,0,0,0,-234,0,0,
+ 0,0,-349,-3,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-32,0,
- 0,0,0,0,0,0,0,-233,0,0,
- 0,0,-347,-3,0,0,0,0,0,0,
+ 0,0,-289,0,0,-122,0,0,0,0,
+ 0,-271,0,0,0,0,-106,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-28,0,
+ 0,0,0,0,0,0,0,0,-330,0,
+ -420,0,0,0,-277,0,0,0,-29,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-288,0,0,-122,0,-33,0,0,
- 0,-232,0,0,0,0,-106,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-34,0,
- 0,0,0,0,0,-188,0,0,-242,0,
- 0,0,0,0,-276,0,0,0,-35,0,
+ 0,0,0,-30,0,0,0,0,-312,0,
+ 0,0,-124,-31,-373,0,0,-152,0,0,
+ 0,-32,0,0,0,0,0,0,0,0,
+ -241,0,0,0,-320,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-33,0,0,0,
+ 0,0,0,0,0,0,0,0,-130,0,
+ 0,0,-274,0,0,0,0,-223,0,-321,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-65,0,0,0,0,-311,0,
- 0,0,-270,0,0,0,0,-152,0,0,
- 0,-36,0,0,0,0,0,0,0,0,
- -240,0,0,0,-319,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-37,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-273,0,0,0,0,0,0,-320,
+ 0,0,0,0,0,0,0,-34,0,0,
+ 0,0,-39,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-35,0,0,0,0,0,
+ 0,0,0,0,0,0,-50,0,0,0,
+ 0,0,-36,0,0,0,-41,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-37,0,
+ 0,0,0,0,0,0,0,0,-390,0,
+ -57,0,0,0,0,-38,0,0,0,-94,
+ 0,0,0,-40,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-38,0,0,
- 0,0,-39,0,0,0,-40,0,0,0,
+ 0,-55,0,0,0,0,0,0,-56,0,
+ 0,-416,0,-186,0,0,0,0,-66,-59,
+ 0,0,-95,0,0,0,-67,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-55,0,0,0,0,0,
- 0,-221,0,0,-56,0,-50,0,0,0,
- 0,0,-66,0,0,-342,-41,0,0,0,
- -67,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-69,0,
- 0,0,0,0,0,-70,0,0,-120,0,
- -57,0,0,0,0,0,0,0,0,-94,
- 0,0,0,-109,0,0,0,0,0,0,
+ 0,0,0,0,-69,0,0,0,0,0,
+ 0,0,0,0,-496,0,-190,0,0,0,
+ -523,0,-70,0,0,-96,0,0,0,-109,
0,0,0,0,0,0,0,0,0,0,
- 0,-110,0,0,0,0,0,0,0,0,
- 0,-413,0,-186,0,0,0,0,-111,-60,
- 0,0,-95,0,0,0,-112,0,0,0,
+ 0,0,0,0,0,0,0,-110,0,0,
+ 0,0,0,0,0,0,0,-534,0,-298,
+ 0,0,0,0,-466,0,0,0,-97,0,
+ 0,0,-111,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-132,0,0,0,0,0,
- 0,0,0,0,-493,0,-190,0,0,0,
- -370,0,-139,0,0,-96,0,0,0,-140,
+ -112,0,0,0,0,0,0,0,0,0,
+ -540,0,-305,0,0,0,0,0,0,0,
+ 0,-98,0,0,0,-132,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-141,0,0,
- 0,0,0,0,0,0,0,-531,0,-200,
- 0,0,0,0,0,-155,0,0,-97,0,