Search in sources :

Example 16 with ANTLRMessage

use of org.antlr.v4.tool.ANTLRMessage in project antlr4 by antlr.

the class BasePythonTest method checkLexerDFA.

List<ANTLRMessage> checkLexerDFA(String gtext, String modeName, String expecting) throws Exception {
    ErrorQueue equeue = new ErrorQueue();
    LexerGrammar g = new LexerGrammar(gtext, equeue);
    g.atn = createATN(g, false);
    //		return equeue.all;
    return null;
}
Also used : ErrorQueue(org.antlr.v4.test.runtime.ErrorQueue) LexerGrammar(org.antlr.v4.tool.LexerGrammar)

Example 17 with ANTLRMessage

use of org.antlr.v4.tool.ANTLRMessage in project antlr4 by tunnelvisionlabs.

the class BaseTest method checkGrammarSemanticsError.

protected void checkGrammarSemanticsError(ErrorQueue equeue, GrammarSemanticsMessage expectedMessage) throws Exception {
    ANTLRMessage foundMsg = null;
    for (int i = 0; i < equeue.errors.size(); i++) {
        ANTLRMessage m = equeue.errors.get(i);
        if (m.getErrorType() == expectedMessage.getErrorType()) {
            foundMsg = m;
        }
    }
    assertNotNull("no error; " + expectedMessage.getErrorType() + " expected", foundMsg);
    assertTrue("error is not a GrammarSemanticsMessage", foundMsg instanceof GrammarSemanticsMessage);
    assertEquals(Arrays.toString(expectedMessage.getArgs()), Arrays.toString(foundMsg.getArgs()));
    if (equeue.size() != 1) {
        System.err.println(equeue);
    }
}
Also used : GrammarSemanticsMessage(org.antlr.v4.tool.GrammarSemanticsMessage) ANTLRMessage(org.antlr.v4.tool.ANTLRMessage)

Example 18 with ANTLRMessage

use of org.antlr.v4.tool.ANTLRMessage in project antlr4 by tunnelvisionlabs.

the class BaseTest method checkRuleDFA.

List<ANTLRMessage> checkRuleDFA(String gtext, String ruleName, String expecting) throws Exception {
    ErrorQueue equeue = new ErrorQueue();
    Grammar g = new Grammar(gtext, equeue);
    ATN atn = createATN(g, false);
    ATNState s = atn.ruleToStartState[g.getRule(ruleName).index];
    if (s == null) {
        System.err.println("no such rule: " + ruleName);
        return null;
    }
    ATNState t = s.transition(0).target;
    if (!(t instanceof DecisionState)) {
        System.out.println(ruleName + " has no decision");
        return null;
    }
    DecisionState blk = (DecisionState) t;
    checkRuleDFA(g, blk, expecting);
    return equeue.all;
}
Also used : Grammar(org.antlr.v4.tool.Grammar) LexerGrammar(org.antlr.v4.tool.LexerGrammar) ATN(org.antlr.v4.runtime.atn.ATN) DecisionState(org.antlr.v4.runtime.atn.DecisionState) ATNState(org.antlr.v4.runtime.atn.ATNState)

Example 19 with ANTLRMessage

use of org.antlr.v4.tool.ANTLRMessage in project antlr4 by tunnelvisionlabs.

the class BaseTest method antlr.

protected ErrorQueue antlr(String grammarFileName, boolean defaultListener, String... extraOptions) {
    final List<String> options = new ArrayList<String>();
    Collections.addAll(options, extraOptions);
    if (!options.contains("-o")) {
        options.add("-o");
        options.add(tmpdir);
    }
    if (!options.contains("-lib")) {
        options.add("-lib");
        options.add(tmpdir);
    }
    if (!options.contains("-encoding")) {
        options.add("-encoding");
        options.add("UTF-8");
    }
    options.add(new File(tmpdir, grammarFileName).toString());
    final String[] optionsA = new String[options.size()];
    options.toArray(optionsA);
    Tool antlr = newTool(optionsA);
    ErrorQueue equeue = new ErrorQueue(antlr);
    antlr.addListener(equeue);
    if (defaultListener) {
        antlr.addListener(new DefaultToolListener(antlr));
    }
    antlr.processGrammarsOnCommandLine();
    if (!defaultListener && !equeue.errors.isEmpty()) {
        System.err.println("antlr reports errors from " + options);
        for (int i = 0; i < equeue.errors.size(); i++) {
            ANTLRMessage msg = equeue.errors.get(i);
            System.err.println(msg);
        }
        System.out.println("!!!\ngrammar:");
        try {
            System.out.println(new String(Utils.readFile(tmpdir + "/" + grammarFileName)));
        } catch (IOException ioe) {
            System.err.println(ioe.toString());
        }
        System.out.println("###");
    }
    if (!defaultListener && !equeue.warnings.isEmpty()) {
        System.err.println("antlr reports warnings from " + options);
        for (int i = 0; i < equeue.warnings.size(); i++) {
            ANTLRMessage msg = equeue.warnings.get(i);
            System.err.println(msg);
        }
    }
    if (!defaultListener && !equeue.warnings.isEmpty()) {
        System.err.println("antlr reports warnings from " + options);
        for (int i = 0; i < equeue.warnings.size(); i++) {
            ANTLRMessage msg = equeue.warnings.get(i);
            System.err.println(msg);
        }
    }
    return equeue;
}
Also used : DefaultToolListener(org.antlr.v4.tool.DefaultToolListener) ArrayList(java.util.ArrayList) STGroupString(org.stringtemplate.v4.STGroupString) IOException(java.io.IOException) File(java.io.File) ANTLRMessage(org.antlr.v4.tool.ANTLRMessage) Tool(org.antlr.v4.Tool)

Example 20 with ANTLRMessage

use of org.antlr.v4.tool.ANTLRMessage in project antlr4 by tunnelvisionlabs.

the class BaseTest method checkLexerDFA.

List<ANTLRMessage> checkLexerDFA(String gtext, String modeName, String expecting) throws Exception {
    ErrorQueue equeue = new ErrorQueue();
    LexerGrammar g = new LexerGrammar(gtext, equeue);
    g.atn = createATN(g, false);
    // return equeue.all;
    return null;
}
Also used : LexerGrammar(org.antlr.v4.tool.LexerGrammar)

Aggregations

ANTLRMessage (org.antlr.v4.tool.ANTLRMessage)29 GrammarSemanticsMessage (org.antlr.v4.tool.GrammarSemanticsMessage)15 LexerGrammar (org.antlr.v4.tool.LexerGrammar)12 ErrorQueue (org.antlr.v4.test.runtime.ErrorQueue)11 ATN (org.antlr.v4.runtime.atn.ATN)8 DecisionState (org.antlr.v4.runtime.atn.DecisionState)8 Grammar (org.antlr.v4.tool.Grammar)8 File (java.io.File)5 ATNState (org.antlr.v4.runtime.atn.ATNState)4 Test (org.junit.Test)3 ST (org.stringtemplate.v4.ST)3 ArrayList (java.util.ArrayList)2 Tool (org.antlr.v4.Tool)2 BaseRuntimeTest (org.antlr.v4.test.runtime.BaseRuntimeTest)2 BaseRuntimeTest.writeFile (org.antlr.v4.test.runtime.BaseRuntimeTest.writeFile)2 DefaultToolListener (org.antlr.v4.tool.DefaultToolListener)2 IOException (java.io.IOException)1 STGroupFile (org.stringtemplate.v4.STGroupFile)1 STGroupString (org.stringtemplate.v4.STGroupString)1