diff options
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java')
-rw-r--r-- | lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java | 45 |
1 files changed, 21 insertions, 24 deletions
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 7b0005c5651..2828af95efd 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 @@ -29,7 +29,7 @@ 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 +public class C99Parser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit > { private static ParseTable prs = new C99Parserprs(); private FixedBacktrackingParser btParser; @@ -120,22 +120,22 @@ public class C99Parser extends PrsStream implements RuleAction , IParserActionTo super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); } - public Object parser() + public void parser() { - return parser(null, 0); + parser(null, 0); } - public Object parser(Monitor monitor) + public void parser(Monitor monitor) { - return parser(monitor, 0); + parser(monitor, 0); } - public Object parser(int error_repair_count) + public void parser(int error_repair_count) { - return parser(null, error_repair_count); + parser(null, error_repair_count); } - public Object parser(Monitor monitor, int error_repair_count) + public void parser(Monitor monitor, int error_repair_count) { try { @@ -153,7 +153,7 @@ public class C99Parser extends PrsStream implements RuleAction , IParserActionTo try { - return (Object) btParser.parse(error_repair_count); + btParser.parse(error_repair_count); } catch (BadParseException e) { @@ -161,19 +161,19 @@ public class C99Parser extends PrsStream implements RuleAction , IParserActionTo DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); diagnoseParser.diagnose(e.error_token); } - - return null; } private C99BuildASTParserAction action; -private ScopedStack<Object> astStack = new ScopedStack<Object>(); +private IASTCompletionNode compNode; public C99Parser() { // constructor } -private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - action = new C99BuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() , C99SecondaryParserFactory.getDefault() ); +private void initActions(Set<IParser.Options> options) { + ScopedStack<Object> astStack = new ScopedStack<Object>(); + + action = new C99BuildASTParserAction (this, astStack, CNodeFactory.getDefault() , C99SecondaryParserFactory.getDefault() ); action.setParserOptions(options); @@ -186,20 +186,21 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { +public IASTTranslationUnit parse(Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu, options); + 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 - // the completion node may be null - IASTCompletionNode compNode = action.getASTCompletionNode(); + compNode = action.getASTCompletionNode(); // the completion node may be null + return ( IASTTranslationUnit ) action.getParseResult(); +} + - //action = null; - //parserAction = null; +public IASTCompletionNode getCompletionNode() { return compNode; } @@ -208,10 +209,6 @@ public List<IToken> getRuleTokens() { return getTokens().subList(getLeftSpan(), getRightSpan() + 1); } -public IASTNode getSecondaryParseResult() { - return (IASTNode) astStack.pop(); -} - public String[] getOrderedTerminalSymbols() { return C99Parsersym.orderedTerminalSymbols; } |