1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-10 01:35:39 +02:00

better handling of syntax errors in declarations for LR parser

This commit is contained in:
Mike Kucera 2009-01-07 19:34:38 +00:00
parent 81bb910442
commit d76a1d0722
22 changed files with 15762 additions and 15349 deletions

View file

@ -488,6 +488,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser {
}
public IASTTranslationUnit parse() {
if(1==1) throw new RuntimeException("KABOOM");
long startTime = System.currentTimeMillis();
translationUnit();
log.traceLog("Parse " //$NON-NLS-1$

View file

@ -38,6 +38,15 @@ public class LRCPPSpecTest extends AST2CPPSpecTest {
parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings);
}
@Override
protected IASTTranslationUnit parseWithErrors(String code, ParserLanguage lang) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckBindings(false);
options.setCheckPreprocessorProblems(false);
options.setCheckSyntaxProblems(false);
return ParseHelper.parse(code, language, options);
}
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException {
@ -48,6 +57,16 @@ public class LRCPPSpecTest extends AST2CPPSpecTest {
return ParseHelper.parse(code, language, options);
}
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
return ParseHelper.parse(code, language, options);
}
@Override
protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
@ -56,6 +75,8 @@ public class LRCPPSpecTest extends AST2CPPSpecTest {
return ParseHelper.parse(code, language, options);
}
protected BaseExtensibleLanguage getCLanguage() {
return C99Language.getDefault();
}

View file

@ -321,21 +321,8 @@ $Rules
-- caught at the top level.
translation_unit
::= external_declaration_list
::= declaration_seq_opt
/. $Build consumeTranslationUnit(); $EndBuild ./
| $empty
/. $Build consumeTranslationUnit(); $EndBuild ./
external_declaration_list
::= external_declaration
| external_declaration_list external_declaration
external_declaration
::= declaration
| ERROR_TOKEN
/. $Build consumeDeclarationProblem(); $EndBuild ./
------------------------------------------------------------------------------------------
@ -914,6 +901,8 @@ declaration
| explicit_specialization
| linkage_specification
| namespace_definition
| ERROR_TOKEN
/. $Build consumeDeclarationProblem(); $EndBuild ./
block_declaration
@ -1179,8 +1168,8 @@ named_namespace_definition
unnamed_namespace_definition
::= 'namespace' '{' <openscope-ast> declaration_seq_opt '}'
/. $Build consumeNamespaceDefinition(false); $EndBuild ./
namespace_alias_definition
::= 'namespace' identifier_token '=' dcolon_opt nested_name_specifier_opt namespace_name ';'
/. $Build consumeNamespaceAliasDefinition(); $EndBuild ./

View file

@ -1448,8 +1448,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
if(declarator instanceof IASTFunctionDeclarator && declarator.getName() instanceof ICPPASTQualifiedName) {
ICPPASTQualifiedName qualifiedName = (ICPPASTQualifiedName) declarator.getName();
IASTName lastName = qualifiedName.getLastName();
if(qualifiedName.isFullyQualified() && (lastName.getLookupKey()[0] == '~' || isSameName(name, lastName))) {
//IASTName lastName = qualifiedName.getLastName();
if(qualifiedName.isFullyQualified()) {
ICPPASTQualifiedName newQualifiedName = nodeFactory.newQualifiedName();
newQualifiedName.addName(name);

View file

@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPExpressionParsersym {
public final static int
TK_asm = 60,
TK_auto = 48,
TK_bool = 14,
TK_asm = 65,
TK_auto = 28,
TK_bool = 11,
TK_break = 77,
TK_case = 78,
TK_catch = 119,
TK_char = 15,
TK_class = 61,
TK_const = 46,
TK_const_cast = 30,
TK_char = 12,
TK_class = 40,
TK_const = 23,
TK_const_cast = 42,
TK_continue = 79,
TK_default = 80,
TK_delete = 62,
TK_delete = 66,
TK_do = 81,
TK_double = 16,
TK_dynamic_cast = 31,
TK_double = 13,
TK_dynamic_cast = 43,
TK_else = 122,
TK_enum = 65,
TK_explicit = 49,
TK_enum = 57,
TK_explicit = 29,
TK_export = 87,
TK_extern = 17,
TK_false = 32,
TK_float = 18,
TK_extern = 30,
TK_false = 44,
TK_float = 14,
TK_for = 82,
TK_friend = 50,
TK_friend = 31,
TK_goto = 83,
TK_if = 84,
TK_inline = 51,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_namespace = 56,
TK_new = 63,
TK_inline = 32,
TK_int = 15,
TK_long = 16,
TK_mutable = 33,
TK_namespace = 60,
TK_new = 67,
TK_operator = 7,
TK_private = 103,
TK_protected = 104,
TK_public = 105,
TK_register = 53,
TK_reinterpret_cast = 33,
TK_register = 34,
TK_reinterpret_cast = 45,
TK_return = 85,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 34,
TK_static = 54,
TK_static_cast = 35,
TK_struct = 66,
TK_short = 17,
TK_signed = 18,
TK_sizeof = 46,
TK_static = 35,
TK_static_cast = 47,
TK_struct = 58,
TK_switch = 86,
TK_template = 43,
TK_this = 36,
TK_throw = 57,
TK_template = 55,
TK_this = 48,
TK_throw = 61,
TK_try = 75,
TK_true = 37,
TK_typedef = 55,
TK_typeid = 38,
TK_true = 49,
TK_typedef = 36,
TK_typeid = 50,
TK_typename = 10,
TK_union = 67,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 44,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_union = 59,
TK_unsigned = 19,
TK_using = 63,
TK_virtual = 22,
TK_void = 20,
TK_volatile = 24,
TK_wchar_t = 21,
TK_while = 76,
TK_integer = 39,
TK_floating = 40,
TK_charconst = 41,
TK_stringlit = 28,
TK_integer = 51,
TK_floating = 52,
TK_charconst = 53,
TK_stringlit = 39,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 8,
TK_Invalid = 123,
TK_LeftBracket = 59,
TK_LeftBracket = 64,
TK_LeftParen = 3,
TK_Dot = 120,
TK_DotStar = 92,
TK_Arrow = 106,
TK_ArrowStar = 90,
TK_PlusPlus = 26,
TK_MinusMinus = 27,
TK_PlusPlus = 37,
TK_MinusMinus = 38,
TK_And = 9,
TK_Star = 6,
TK_Plus = 11,
TK_Minus = 12,
TK_Plus = 25,
TK_Minus = 26,
TK_Tilde = 5,
TK_Bang = 29,
TK_Bang = 41,
TK_Slash = 93,
TK_Percent = 94,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 45,
TK_GT = 68,
TK_LT = 56,
TK_GT = 69,
TK_LE = 95,
TK_GE = 96,
TK_EQ = 97,
@ -118,7 +118,7 @@ public interface CPPExpressionParsersym {
TK_Colon = 73,
TK_ColonColon = 4,
TK_DotDotDot = 91,
TK_Assign = 69,
TK_Assign = 70,
TK_StarAssign = 108,
TK_SlashAssign = 109,
TK_PercentAssign = 110,
@ -129,14 +129,14 @@ public interface CPPExpressionParsersym {
TK_AndAssign = 115,
TK_CaretAssign = 116,
TK_OrAssign = 117,
TK_Comma = 70,
TK_Comma = 71,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_SemiColon = 13,
TK_LeftBrace = 64,
TK_ERROR_TOKEN = 72,
TK_0 = 42,
TK_RightBrace = 72,
TK_SemiColon = 27,
TK_LeftBrace = 68,
TK_ERROR_TOKEN = 62,
TK_0 = 54,
TK_EOF_TOKEN = 121;
public final static String orderedTerminalSymbols[] = {
@ -151,13 +151,9 @@ public interface CPPExpressionParsersym {
"EndOfCompletion",
"And",
"typename",
"Plus",
"Minus",
"SemiColon",
"bool",
"char",
"double",
"extern",
"float",
"int",
"long",
@ -166,9 +162,25 @@ public interface CPPExpressionParsersym {
"unsigned",
"void",
"wchar_t",
"virtual",
"const",
"volatile",
"Plus",
"Minus",
"SemiColon",
"auto",
"explicit",
"extern",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"PlusPlus",
"MinusMinus",
"stringlit",
"class",
"Bang",
"const_cast",
"dynamic_cast",
@ -184,35 +196,23 @@ public interface CPPExpressionParsersym {
"charconst",
"0",
"template",
"virtual",
"LT",
"const",
"volatile",
"auto",
"explicit",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"namespace",
"throw",
"using",
"LeftBracket",
"asm",
"class",
"delete",
"new",
"LeftBrace",
"enum",
"struct",
"union",
"namespace",
"throw",
"ERROR_TOKEN",
"using",
"LeftBracket",
"asm",
"delete",
"new",
"LeftBrace",
"GT",
"Assign",
"Comma",
"RightBrace",
"ERROR_TOKEN",
"Colon",
"RightParen",
"try",

View file

@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPNoCastExpressionParsersym {
public final static int
TK_asm = 60,
TK_auto = 48,
TK_bool = 14,
TK_asm = 65,
TK_auto = 28,
TK_bool = 11,
TK_break = 77,
TK_case = 78,
TK_catch = 119,
TK_char = 15,
TK_class = 61,
TK_const = 46,
TK_const_cast = 30,
TK_char = 12,
TK_class = 40,
TK_const = 23,
TK_const_cast = 42,
TK_continue = 79,
TK_default = 80,
TK_delete = 62,
TK_delete = 66,
TK_do = 81,
TK_double = 16,
TK_dynamic_cast = 31,
TK_double = 13,
TK_dynamic_cast = 43,
TK_else = 122,
TK_enum = 65,
TK_explicit = 49,
TK_enum = 57,
TK_explicit = 29,
TK_export = 87,
TK_extern = 17,
TK_false = 32,
TK_float = 18,
TK_extern = 30,
TK_false = 44,
TK_float = 14,
TK_for = 82,
TK_friend = 50,
TK_friend = 31,
TK_goto = 83,
TK_if = 84,
TK_inline = 51,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_namespace = 56,
TK_new = 63,
TK_inline = 32,
TK_int = 15,
TK_long = 16,
TK_mutable = 33,
TK_namespace = 60,
TK_new = 67,
TK_operator = 7,
TK_private = 103,
TK_protected = 104,
TK_public = 105,
TK_register = 53,
TK_reinterpret_cast = 33,
TK_register = 34,
TK_reinterpret_cast = 45,
TK_return = 85,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 34,
TK_static = 54,
TK_static_cast = 35,
TK_struct = 66,
TK_short = 17,
TK_signed = 18,
TK_sizeof = 46,
TK_static = 35,
TK_static_cast = 47,
TK_struct = 58,
TK_switch = 86,
TK_template = 43,
TK_this = 36,
TK_throw = 57,
TK_template = 55,
TK_this = 48,
TK_throw = 61,
TK_try = 75,
TK_true = 37,
TK_typedef = 55,
TK_typeid = 38,
TK_true = 49,
TK_typedef = 36,
TK_typeid = 50,
TK_typename = 10,
TK_union = 67,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 44,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_union = 59,
TK_unsigned = 19,
TK_using = 63,
TK_virtual = 22,
TK_void = 20,
TK_volatile = 24,
TK_wchar_t = 21,
TK_while = 76,
TK_integer = 39,
TK_floating = 40,
TK_charconst = 41,
TK_stringlit = 28,
TK_integer = 51,
TK_floating = 52,
TK_charconst = 53,
TK_stringlit = 39,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 8,
TK_Invalid = 123,
TK_LeftBracket = 59,
TK_LeftBracket = 64,
TK_LeftParen = 3,
TK_Dot = 120,
TK_DotStar = 92,
TK_Arrow = 106,
TK_ArrowStar = 90,
TK_PlusPlus = 26,
TK_MinusMinus = 27,
TK_PlusPlus = 37,
TK_MinusMinus = 38,
TK_And = 9,
TK_Star = 6,
TK_Plus = 11,
TK_Minus = 12,
TK_Plus = 25,
TK_Minus = 26,
TK_Tilde = 5,
TK_Bang = 29,
TK_Bang = 41,
TK_Slash = 93,
TK_Percent = 94,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 45,
TK_GT = 68,
TK_LT = 56,
TK_GT = 69,
TK_LE = 95,
TK_GE = 96,
TK_EQ = 97,
@ -118,7 +118,7 @@ public interface CPPNoCastExpressionParsersym {
TK_Colon = 73,
TK_ColonColon = 4,
TK_DotDotDot = 91,
TK_Assign = 69,
TK_Assign = 70,
TK_StarAssign = 108,
TK_SlashAssign = 109,
TK_PercentAssign = 110,
@ -129,14 +129,14 @@ public interface CPPNoCastExpressionParsersym {
TK_AndAssign = 115,
TK_CaretAssign = 116,
TK_OrAssign = 117,
TK_Comma = 70,
TK_Comma = 71,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_SemiColon = 13,
TK_LeftBrace = 64,
TK_ERROR_TOKEN = 72,
TK_0 = 42,
TK_RightBrace = 72,
TK_SemiColon = 27,
TK_LeftBrace = 68,
TK_ERROR_TOKEN = 62,
TK_0 = 54,
TK_EOF_TOKEN = 121;
public final static String orderedTerminalSymbols[] = {
@ -151,13 +151,9 @@ public interface CPPNoCastExpressionParsersym {
"EndOfCompletion",
"And",
"typename",
"Plus",
"Minus",
"SemiColon",
"bool",
"char",
"double",
"extern",
"float",
"int",
"long",
@ -166,9 +162,25 @@ public interface CPPNoCastExpressionParsersym {
"unsigned",
"void",
"wchar_t",
"virtual",
"const",
"volatile",
"Plus",
"Minus",
"SemiColon",
"auto",
"explicit",
"extern",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"PlusPlus",
"MinusMinus",
"stringlit",
"class",
"Bang",
"const_cast",
"dynamic_cast",
@ -184,35 +196,23 @@ public interface CPPNoCastExpressionParsersym {
"charconst",
"0",
"template",
"virtual",
"LT",
"const",
"volatile",
"auto",
"explicit",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"namespace",
"throw",
"using",
"LeftBracket",
"asm",
"class",
"delete",
"new",
"LeftBrace",
"enum",
"struct",
"union",
"namespace",
"throw",
"ERROR_TOKEN",
"using",
"LeftBracket",
"asm",
"delete",
"new",
"LeftBrace",
"GT",
"Assign",
"Comma",
"RightBrace",
"ERROR_TOKEN",
"Colon",
"RightParen",
"try",

View file

@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPNoFunctionDeclaratorParsersym {
public final static int
TK_asm = 60,
TK_auto = 48,
TK_bool = 15,
TK_asm = 65,
TK_auto = 26,
TK_bool = 11,
TK_break = 77,
TK_case = 78,
TK_catch = 119,
TK_char = 16,
TK_class = 61,
TK_const = 46,
TK_const_cast = 30,
TK_char = 12,
TK_class = 40,
TK_const = 23,
TK_const_cast = 42,
TK_continue = 79,
TK_default = 80,
TK_delete = 63,
TK_delete = 67,
TK_do = 81,
TK_double = 17,
TK_dynamic_cast = 31,
TK_double = 13,
TK_dynamic_cast = 43,
TK_else = 122,
TK_enum = 65,
TK_explicit = 49,
TK_enum = 57,
TK_explicit = 27,
TK_export = 87,
TK_extern = 12,
TK_false = 32,
TK_float = 18,
TK_extern = 28,
TK_false = 44,
TK_float = 14,
TK_for = 82,
TK_friend = 50,
TK_friend = 29,
TK_goto = 83,
TK_if = 84,
TK_inline = 51,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_namespace = 56,
TK_new = 64,
TK_inline = 30,
TK_int = 15,
TK_long = 16,
TK_mutable = 31,
TK_namespace = 60,
TK_new = 68,
TK_operator = 7,
TK_private = 103,
TK_protected = 104,
TK_public = 105,
TK_register = 53,
TK_reinterpret_cast = 33,
TK_register = 32,
TK_reinterpret_cast = 45,
TK_return = 85,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 34,
TK_static = 54,
TK_static_cast = 35,
TK_struct = 66,
TK_short = 17,
TK_signed = 18,
TK_sizeof = 46,
TK_static = 33,
TK_static_cast = 47,
TK_struct = 58,
TK_switch = 86,
TK_template = 36,
TK_this = 37,
TK_throw = 57,
TK_template = 48,
TK_this = 49,
TK_throw = 62,
TK_try = 75,
TK_true = 38,
TK_typedef = 55,
TK_typeid = 39,
TK_true = 50,
TK_typedef = 34,
TK_typeid = 51,
TK_typename = 10,
TK_union = 67,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 40,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_union = 59,
TK_unsigned = 19,
TK_using = 63,
TK_virtual = 22,
TK_void = 20,
TK_volatile = 24,
TK_wchar_t = 21,
TK_while = 76,
TK_integer = 41,
TK_floating = 42,
TK_charconst = 43,
TK_stringlit = 28,
TK_integer = 52,
TK_floating = 53,
TK_charconst = 54,
TK_stringlit = 39,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 8,
TK_Invalid = 123,
TK_LeftBracket = 59,
TK_LeftBracket = 64,
TK_LeftParen = 3,
TK_Dot = 120,
TK_DotStar = 92,
TK_Arrow = 106,
TK_ArrowStar = 90,
TK_PlusPlus = 26,
TK_MinusMinus = 27,
TK_PlusPlus = 37,
TK_MinusMinus = 38,
TK_And = 9,
TK_Star = 6,
TK_Plus = 13,
TK_Minus = 14,
TK_Plus = 35,
TK_Minus = 36,
TK_Tilde = 5,
TK_Bang = 29,
TK_Bang = 41,
TK_Slash = 93,
TK_Percent = 94,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 44,
TK_GT = 68,
TK_LT = 55,
TK_GT = 69,
TK_LE = 95,
TK_GE = 96,
TK_EQ = 97,
@ -118,7 +118,7 @@ public interface CPPNoFunctionDeclaratorParsersym {
TK_Colon = 73,
TK_ColonColon = 4,
TK_DotDotDot = 91,
TK_Assign = 69,
TK_Assign = 70,
TK_StarAssign = 108,
TK_SlashAssign = 109,
TK_PercentAssign = 110,
@ -129,14 +129,14 @@ public interface CPPNoFunctionDeclaratorParsersym {
TK_AndAssign = 115,
TK_CaretAssign = 116,
TK_OrAssign = 117,
TK_Comma = 70,
TK_Comma = 71,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_SemiColon = 11,
TK_LeftBrace = 62,
TK_ERROR_TOKEN = 72,
TK_0 = 45,
TK_RightBrace = 72,
TK_SemiColon = 25,
TK_LeftBrace = 66,
TK_ERROR_TOKEN = 61,
TK_0 = 56,
TK_EOF_TOKEN = 121;
public final static String orderedTerminalSymbols[] = {
@ -151,10 +151,6 @@ public interface CPPNoFunctionDeclaratorParsersym {
"EndOfCompletion",
"And",
"typename",
"SemiColon",
"extern",
"Plus",
"Minus",
"bool",
"char",
"double",
@ -166,9 +162,25 @@ public interface CPPNoFunctionDeclaratorParsersym {
"unsigned",
"void",
"wchar_t",
"virtual",
"const",
"volatile",
"SemiColon",
"auto",
"explicit",
"extern",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"Plus",
"Minus",
"PlusPlus",
"MinusMinus",
"stringlit",
"class",
"Bang",
"const_cast",
"dynamic_cast",
@ -180,39 +192,27 @@ public interface CPPNoFunctionDeclaratorParsersym {
"this",
"true",
"typeid",
"virtual",
"integer",
"floating",
"charconst",
"LT",
"0",
"const",
"volatile",
"auto",
"explicit",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"enum",
"struct",
"union",
"namespace",
"ERROR_TOKEN",
"throw",
"using",
"LeftBracket",
"asm",
"class",
"LeftBrace",
"delete",
"new",
"enum",
"struct",
"union",
"GT",
"Assign",
"Comma",
"RightBrace",
"ERROR_TOKEN",
"Colon",
"RightParen",
"try",

View file

@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPParsersym {
public final static int
TK_asm = 58,
TK_auto = 34,
TK_bool = 13,
TK_asm = 64,
TK_auto = 26,
TK_bool = 11,
TK_break = 77,
TK_case = 78,
TK_catch = 119,
TK_char = 14,
TK_class = 59,
TK_const = 31,
TK_const_cast = 35,
TK_char = 12,
TK_class = 39,
TK_const = 23,
TK_const_cast = 43,
TK_continue = 79,
TK_default = 80,
TK_delete = 66,
TK_delete = 67,
TK_do = 81,
TK_double = 15,
TK_dynamic_cast = 36,
TK_double = 13,
TK_dynamic_cast = 44,
TK_else = 122,
TK_enum = 62,
TK_explicit = 37,
TK_enum = 45,
TK_explicit = 27,
TK_export = 87,
TK_extern = 12,
TK_false = 38,
TK_float = 16,
TK_extern = 28,
TK_false = 46,
TK_float = 14,
TK_for = 82,
TK_friend = 39,
TK_friend = 29,
TK_goto = 83,
TK_if = 84,
TK_inline = 40,
TK_int = 17,
TK_long = 18,
TK_mutable = 41,
TK_namespace = 56,
TK_new = 67,
TK_inline = 30,
TK_int = 15,
TK_long = 16,
TK_mutable = 31,
TK_namespace = 60,
TK_new = 68,
TK_operator = 7,
TK_private = 103,
TK_protected = 104,
TK_public = 105,
TK_register = 42,
TK_reinterpret_cast = 43,
TK_register = 32,
TK_reinterpret_cast = 47,
TK_return = 85,
TK_short = 19,
TK_signed = 20,
TK_sizeof = 44,
TK_static = 45,
TK_static_cast = 46,
TK_struct = 63,
TK_short = 17,
TK_signed = 18,
TK_sizeof = 48,
TK_static = 33,
TK_static_cast = 49,
TK_struct = 50,
TK_switch = 86,
TK_template = 29,
TK_this = 47,
TK_throw = 60,
TK_template = 41,
TK_this = 51,
TK_throw = 63,
TK_try = 75,
TK_true = 48,
TK_typedef = 49,
TK_typeid = 50,
TK_true = 52,
TK_typedef = 34,
TK_typeid = 53,
TK_typename = 10,
TK_union = 64,
TK_unsigned = 21,
TK_using = 57,
TK_virtual = 30,
TK_void = 22,
TK_volatile = 32,
TK_wchar_t = 23,
TK_union = 54,
TK_unsigned = 19,
TK_using = 61,
TK_virtual = 22,
TK_void = 20,
TK_volatile = 24,
TK_wchar_t = 21,
TK_while = 76,
TK_integer = 51,
TK_floating = 52,
TK_charconst = 53,
TK_stringlit = 28,
TK_integer = 55,
TK_floating = 56,
TK_charconst = 57,
TK_stringlit = 40,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 8,
TK_Invalid = 123,
TK_LeftBracket = 61,
TK_LeftBracket = 65,
TK_LeftParen = 3,
TK_Dot = 120,
TK_DotStar = 92,
TK_Arrow = 106,
TK_ArrowStar = 90,
TK_PlusPlus = 26,
TK_MinusMinus = 27,
TK_PlusPlus = 37,
TK_MinusMinus = 38,
TK_And = 9,
TK_Star = 6,
TK_Plus = 24,
TK_Minus = 25,
TK_Plus = 35,
TK_Minus = 36,
TK_Tilde = 5,
TK_Bang = 33,
TK_Bang = 42,
TK_Slash = 93,
TK_Percent = 94,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 54,
TK_GT = 68,
TK_LT = 58,
TK_GT = 69,
TK_LE = 95,
TK_GE = 96,
TK_EQ = 97,
@ -133,10 +133,10 @@ public interface CPPParsersym {
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 72,
TK_SemiColon = 11,
TK_LeftBrace = 65,
TK_ERROR_TOKEN = 69,
TK_0 = 55,
TK_SemiColon = 25,
TK_LeftBrace = 66,
TK_ERROR_TOKEN = 62,
TK_0 = 59,
TK_EOF_TOKEN = 121;
public final static String orderedTerminalSymbols[] = {
@ -151,8 +151,6 @@ public interface CPPParsersym {
"EndOfCompletion",
"And",
"typename",
"SemiColon",
"extern",
"bool",
"char",
"double",
@ -164,33 +162,39 @@ public interface CPPParsersym {
"unsigned",
"void",
"wchar_t",
"Plus",
"Minus",
"PlusPlus",
"MinusMinus",
"stringlit",
"template",
"virtual",
"const",
"volatile",
"Bang",
"SemiColon",
"auto",
"const_cast",
"dynamic_cast",
"explicit",
"false",
"extern",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"Plus",
"Minus",
"PlusPlus",
"MinusMinus",
"class",
"stringlit",
"template",
"Bang",
"const_cast",
"dynamic_cast",
"enum",
"false",
"reinterpret_cast",
"sizeof",
"static",
"static_cast",
"struct",
"this",
"true",
"typedef",
"typeid",
"union",
"integer",
"floating",
"charconst",
@ -198,18 +202,14 @@ public interface CPPParsersym {
"0",
"namespace",
"using",
"asm",
"class",
"ERROR_TOKEN",
"throw",
"asm",
"LeftBracket",
"enum",
"struct",
"union",
"LeftBrace",
"delete",
"new",
"GT",
"ERROR_TOKEN",
"Assign",
"Comma",
"RightBrace",

View file

@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPSizeofExpressionParsersym {
public final static int
TK_asm = 60,
TK_auto = 48,
TK_bool = 14,
TK_asm = 65,
TK_auto = 28,
TK_bool = 11,
TK_break = 77,
TK_case = 78,
TK_catch = 119,
TK_char = 15,
TK_class = 61,
TK_const = 46,
TK_const_cast = 30,
TK_char = 12,
TK_class = 40,
TK_const = 23,
TK_const_cast = 42,
TK_continue = 79,
TK_default = 80,
TK_delete = 62,
TK_delete = 66,
TK_do = 81,
TK_double = 16,
TK_dynamic_cast = 31,
TK_double = 13,
TK_dynamic_cast = 43,
TK_else = 122,
TK_enum = 65,
TK_explicit = 49,
TK_enum = 57,
TK_explicit = 29,
TK_export = 87,
TK_extern = 17,
TK_false = 32,
TK_float = 18,
TK_extern = 30,
TK_false = 44,
TK_float = 14,
TK_for = 82,
TK_friend = 50,
TK_friend = 31,
TK_goto = 83,
TK_if = 84,
TK_inline = 51,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_namespace = 56,
TK_new = 63,
TK_inline = 32,
TK_int = 15,
TK_long = 16,
TK_mutable = 33,
TK_namespace = 60,
TK_new = 67,
TK_operator = 7,
TK_private = 103,
TK_protected = 104,
TK_public = 105,
TK_register = 53,
TK_reinterpret_cast = 33,
TK_register = 34,
TK_reinterpret_cast = 45,
TK_return = 85,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 34,
TK_static = 54,
TK_static_cast = 35,
TK_struct = 66,
TK_short = 17,
TK_signed = 18,
TK_sizeof = 46,
TK_static = 35,
TK_static_cast = 47,
TK_struct = 58,
TK_switch = 86,
TK_template = 43,
TK_this = 36,
TK_throw = 57,
TK_template = 55,
TK_this = 48,
TK_throw = 61,
TK_try = 75,
TK_true = 37,
TK_typedef = 55,
TK_typeid = 38,
TK_true = 49,
TK_typedef = 36,
TK_typeid = 50,
TK_typename = 10,
TK_union = 67,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 44,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_union = 59,
TK_unsigned = 19,
TK_using = 63,
TK_virtual = 22,
TK_void = 20,
TK_volatile = 24,
TK_wchar_t = 21,
TK_while = 76,
TK_integer = 39,
TK_floating = 40,
TK_charconst = 41,
TK_stringlit = 28,
TK_integer = 51,
TK_floating = 52,
TK_charconst = 53,
TK_stringlit = 39,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 8,
TK_Invalid = 123,
TK_LeftBracket = 59,
TK_LeftBracket = 64,
TK_LeftParen = 3,
TK_Dot = 120,
TK_DotStar = 92,
TK_Arrow = 106,
TK_ArrowStar = 90,
TK_PlusPlus = 26,
TK_MinusMinus = 27,
TK_PlusPlus = 37,
TK_MinusMinus = 38,
TK_And = 9,
TK_Star = 6,
TK_Plus = 11,
TK_Minus = 12,
TK_Plus = 25,
TK_Minus = 26,
TK_Tilde = 5,
TK_Bang = 29,
TK_Bang = 41,
TK_Slash = 93,
TK_Percent = 94,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 45,
TK_GT = 68,
TK_LT = 56,
TK_GT = 69,
TK_LE = 95,
TK_GE = 96,
TK_EQ = 97,
@ -118,7 +118,7 @@ public interface CPPSizeofExpressionParsersym {
TK_Colon = 73,
TK_ColonColon = 4,
TK_DotDotDot = 91,
TK_Assign = 69,
TK_Assign = 70,
TK_StarAssign = 108,
TK_SlashAssign = 109,
TK_PercentAssign = 110,
@ -129,14 +129,14 @@ public interface CPPSizeofExpressionParsersym {
TK_AndAssign = 115,
TK_CaretAssign = 116,
TK_OrAssign = 117,
TK_Comma = 70,
TK_Comma = 71,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_SemiColon = 13,
TK_LeftBrace = 64,
TK_ERROR_TOKEN = 72,
TK_0 = 42,
TK_RightBrace = 72,
TK_SemiColon = 27,
TK_LeftBrace = 68,
TK_ERROR_TOKEN = 62,
TK_0 = 54,
TK_EOF_TOKEN = 121;
public final static String orderedTerminalSymbols[] = {
@ -151,13 +151,9 @@ public interface CPPSizeofExpressionParsersym {
"EndOfCompletion",
"And",
"typename",
"Plus",
"Minus",
"SemiColon",
"bool",
"char",
"double",
"extern",
"float",
"int",
"long",
@ -166,9 +162,25 @@ public interface CPPSizeofExpressionParsersym {
"unsigned",
"void",
"wchar_t",
"virtual",
"const",
"volatile",
"Plus",
"Minus",
"SemiColon",
"auto",
"explicit",
"extern",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"PlusPlus",
"MinusMinus",
"stringlit",
"class",
"Bang",
"const_cast",
"dynamic_cast",
@ -184,35 +196,23 @@ public interface CPPSizeofExpressionParsersym {
"charconst",
"0",
"template",
"virtual",
"LT",
"const",
"volatile",
"auto",
"explicit",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"namespace",
"throw",
"using",
"LeftBracket",
"asm",
"class",
"delete",
"new",
"LeftBrace",
"enum",
"struct",
"union",
"namespace",
"throw",
"ERROR_TOKEN",
"using",
"LeftBracket",
"asm",
"delete",
"new",
"LeftBrace",
"GT",
"Assign",
"Comma",
"RightBrace",
"ERROR_TOKEN",
"Colon",
"RightParen",
"try",

View file

@ -15,97 +15,97 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPTemplateTypeParameterParsersym {
public final static int
TK_asm = 61,
TK_auto = 48,
TK_bool = 15,
TK_asm = 65,
TK_auto = 26,
TK_bool = 11,
TK_break = 77,
TK_case = 78,
TK_catch = 119,
TK_char = 16,
TK_class = 59,
TK_const = 46,
TK_const_cast = 31,
TK_char = 12,
TK_class = 39,
TK_const = 23,
TK_const_cast = 43,
TK_continue = 79,
TK_default = 80,
TK_delete = 63,
TK_delete = 67,
TK_do = 81,
TK_double = 17,
TK_dynamic_cast = 32,
TK_double = 13,
TK_dynamic_cast = 44,
TK_else = 122,
TK_enum = 65,
TK_explicit = 49,
TK_enum = 57,
TK_explicit = 27,
TK_export = 87,
TK_extern = 12,
TK_false = 33,
TK_float = 18,
TK_extern = 28,
TK_false = 45,
TK_float = 14,
TK_for = 82,
TK_friend = 50,
TK_friend = 29,
TK_goto = 83,
TK_if = 84,
TK_inline = 51,
TK_int = 19,
TK_long = 20,
TK_mutable = 52,
TK_namespace = 56,
TK_new = 64,
TK_inline = 30,
TK_int = 15,
TK_long = 16,
TK_mutable = 31,
TK_namespace = 60,
TK_new = 68,
TK_operator = 8,
TK_private = 103,
TK_protected = 104,
TK_public = 105,
TK_register = 53,
TK_reinterpret_cast = 34,
TK_register = 32,
TK_reinterpret_cast = 46,
TK_return = 85,
TK_short = 21,
TK_signed = 22,
TK_sizeof = 35,
TK_static = 54,
TK_static_cast = 36,
TK_struct = 66,
TK_short = 17,
TK_signed = 18,
TK_sizeof = 47,
TK_static = 33,
TK_static_cast = 48,
TK_struct = 58,
TK_switch = 86,
TK_template = 29,
TK_this = 37,
TK_throw = 57,
TK_template = 41,
TK_this = 49,
TK_throw = 62,
TK_try = 75,
TK_true = 38,
TK_typedef = 55,
TK_typeid = 39,
TK_true = 50,
TK_typedef = 34,
TK_typeid = 51,
TK_typename = 10,
TK_union = 67,
TK_unsigned = 23,
TK_using = 58,
TK_virtual = 40,
TK_void = 24,
TK_volatile = 47,
TK_wchar_t = 25,
TK_union = 59,
TK_unsigned = 19,
TK_using = 63,
TK_virtual = 22,
TK_void = 20,
TK_volatile = 24,
TK_wchar_t = 21,
TK_while = 76,
TK_integer = 41,
TK_floating = 42,
TK_charconst = 43,
TK_stringlit = 28,
TK_integer = 52,
TK_floating = 53,
TK_charconst = 54,
TK_stringlit = 40,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 7,
TK_Invalid = 123,
TK_LeftBracket = 60,
TK_LeftBracket = 64,
TK_LeftParen = 3,
TK_Dot = 120,
TK_DotStar = 92,
TK_Arrow = 106,
TK_ArrowStar = 90,
TK_PlusPlus = 26,
TK_MinusMinus = 27,
TK_PlusPlus = 37,
TK_MinusMinus = 38,
TK_And = 9,
TK_Star = 6,
TK_Plus = 13,
TK_Minus = 14,
TK_Plus = 35,
TK_Minus = 36,
TK_Tilde = 5,
TK_Bang = 30,
TK_Bang = 42,
TK_Slash = 93,
TK_Percent = 94,
TK_RightShift = 88,
TK_LeftShift = 89,
TK_LT = 44,
TK_GT = 68,
TK_LT = 55,
TK_GT = 69,
TK_LE = 95,
TK_GE = 96,
TK_EQ = 97,
@ -118,7 +118,7 @@ public interface CPPTemplateTypeParameterParsersym {
TK_Colon = 73,
TK_ColonColon = 4,
TK_DotDotDot = 91,
TK_Assign = 69,
TK_Assign = 70,
TK_StarAssign = 108,
TK_SlashAssign = 109,
TK_PercentAssign = 110,
@ -129,14 +129,14 @@ public interface CPPTemplateTypeParameterParsersym {
TK_AndAssign = 115,
TK_CaretAssign = 116,
TK_OrAssign = 117,
TK_Comma = 70,
TK_Comma = 71,
TK_RightBracket = 118,
TK_RightParen = 74,
TK_RightBrace = 71,
TK_SemiColon = 11,
TK_LeftBrace = 62,
TK_ERROR_TOKEN = 72,
TK_0 = 45,
TK_RightBrace = 72,
TK_SemiColon = 25,
TK_LeftBrace = 66,
TK_ERROR_TOKEN = 61,
TK_0 = 56,
TK_EOF_TOKEN = 121;
public final static String orderedTerminalSymbols[] = {
@ -151,10 +151,6 @@ public interface CPPTemplateTypeParameterParsersym {
"operator",
"And",
"typename",
"SemiColon",
"extern",
"Plus",
"Minus",
"bool",
"char",
"double",
@ -166,8 +162,24 @@ public interface CPPTemplateTypeParameterParsersym {
"unsigned",
"void",
"wchar_t",
"virtual",
"const",
"volatile",
"SemiColon",
"auto",
"explicit",
"extern",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"Plus",
"Minus",
"PlusPlus",
"MinusMinus",
"class",
"stringlit",
"template",
"Bang",
@ -180,39 +192,27 @@ public interface CPPTemplateTypeParameterParsersym {
"this",
"true",
"typeid",
"virtual",
"integer",
"floating",
"charconst",
"LT",
"0",
"const",
"volatile",
"auto",
"explicit",
"friend",
"inline",
"mutable",
"register",
"static",
"typedef",
"enum",
"struct",
"union",
"namespace",
"ERROR_TOKEN",
"throw",
"using",
"class",
"LeftBracket",
"asm",
"LeftBrace",
"delete",
"new",
"enum",
"struct",
"union",
"GT",
"Assign",
"Comma",
"RightBrace",
"ERROR_TOKEN",
"Colon",
"RightParen",
"try",