Package org.antlr.tool

Examples of org.antlr.tool.Grammar


    }

    public String getGrammarLanguage() {
        try {
            antlrEngine.createGrammars();
            Grammar g = antlrEngine.getParserGrammar();
            if(g == null) {
                g = antlrEngine.getLexerGrammar();
            }
            if(g != null) {
                return (String)g.getOption("language");
            }
        } catch (Exception e) {
            delegate.reportError(e);
        }
        return null;
View Full Code Here


    public String getGeneratedClassName(int type) throws Exception {
        String name = null;
        antlrEngine.createGrammars();
        if(type == ElementGrammarName.LEXER) {
            Grammar g = antlrEngine.getLexerGrammar();
            if(g == null) return null;
            name = g.name+getSuffix(type);
        } else if(type == ElementGrammarName.PARSER) {
            Grammar g = antlrEngine.getParserGrammar();
            if(g == null) return null;
            name = g.name+getSuffix(type);
        } else if(type == ElementGrammarName.TREEPARSER) {
            Grammar g = antlrEngine.getParserGrammar();
            if(g == null) return null;
            if(!isTreeParserGrammar()) return null;
            name = g.name+getSuffix(type);
        }
        return name;
View Full Code Here

        }
    }

    public List<String> getAllGeneratedNames() throws Exception {
        List<String> names = new ArrayList<String>();
        Grammar g = antlrEngine.getDefaultGrammar();
        if(g != null) {
            names.add(g.getRecognizerName());
            for(Grammar gd : g.getDelegates()) {
                names.add(gd.getRecognizerName());
            }
        }

        Grammar lexer = antlrEngine.getLexerGrammar();
        if(lexer != null) {
            names.add(lexer.getRecognizerName());
            for(Grammar gd : lexer.getDelegates()) {
                names.add(gd.getRecognizerName());
            }
        }
        return names;
    }
View Full Code Here

    }

    @Override
    public String getDOTString() throws Exception {
        DecisionDFAEngine engine = window.decisionDFAEngine;
        Grammar g;

        int adjustedColumn = getDecisionColumn(g = engine.getDiscoveredParserGrammar());
        if(adjustedColumn == -1)
            adjustedColumn = getDecisionColumn(g = engine.getDiscoveredLexerGrammar());

        if(adjustedColumn == -1)
            throw new Exception("No decision in the current line");

        CodeGenerator generator = new CodeGenerator(new Tool(), g,
                (String) g.getOption("language"));

        DFA dfa = g.getLookaheadDFAFromPositionInFile(line, adjustedColumn);
        decisionNumber = dfa.getDecisionNumber();
        DOTGenerator dg = new DOTGenerator(g);
        g.setCodeGenerator(generator);
        dg.setArrowheadType("none");
        dg.setRankdir("LR");    // Left-to-right
        return dg.getDOT( dfa.startState );
    }
View Full Code Here

                if(dfa == null) {
                    System.err.println("DFA is null for line "+lineIndex+" and column "+columnIndex);
                    continue;
                }

                Grammar g = discoveredLexerGrammar;
                if(g != null) {
                    Rule r = g.getRule(Grammar.ARTIFICIAL_TOKENS_RULENAME);
                    NFAState s = (NFAState)r.startState.transition(0).target;
                    if(s == null) {
                        System.err.println("NFAState s is null for rule "+r.name);
                        continue;
                    }
View Full Code Here

    @Override
    public String getDOTString() throws Exception {
        ANTLRGrammarEngine eg = window.getGrammarEngine().getANTLRGrammarEngine();
        eg.analyze();

        Grammar g = eg.getLexerGrammar();
        if(g == null) {
            throw new Exception("Cannot show tokens DFA because there is no lexer grammar");
        }
        Rule r = g.getRule(Grammar.ARTIFICIAL_TOKENS_RULENAME);
        NFAState s = (NFAState)r.startState.transition(0).target;
        DFA dfa = g.getLookaheadDFA(s.getDecisionNumber());

        DOTGenerator dg = new DOTGenerator(g);
        dg.setArrowheadType("none");
        dg.setRankdir("LR");    // Left-to-right
        return dg.getDOT( dfa.startState );
View Full Code Here

        } catch (Exception e) {
            window.consoleTab.println(e);
            return;
        }

        Grammar parser = eg.getParserGrammar();
        Grammar lexer = eg.getLexerGrammar();
        if(lexer == null) {
            throw new RuntimeException("Lexer is null. Check the grammar before running the interpreterTab.");
        }

        Interpreter lexEngine = new CustomInterpreter(lexer, input);


        FilteringTokenStream tokens = new FilteringTokenStream(lexEngine);

        StringTokenizer tk = new StringTokenizer(tokensToIgnoreLabel.getText(), " ");
        while ( tk.hasMoreTokens() ) {
            String tokenName = tk.nextToken();
            tokens.setTokenTypeChannel(lexer.getTokenType(tokenName), Token.HIDDEN_CHANNEL);
        }

        Interpreter parseEngine = new CustomInterpreter(parser, tokens);

        ParseTree t = null;
View Full Code Here

  /** Given List&lt;Label&gt;, return a String with a useful representation
   *  of the associated input string.  One could show something different
   *  for lexers and parsers, for example.
   */
  public String getInputSequenceDisplay(List<? extends Label> labels) {
        Grammar g = dfa.nfa.grammar;
    StringBuilder buf = new StringBuilder();
    for (Iterator<? extends Label> it = labels.iterator(); it.hasNext();) {
      Label label = it.next();
      buf.append(label.toString(g));
      if ( it.hasNext() && g.type!=Grammar.LEXER ) {
View Full Code Here

    /** Public default constructor used by TestRig */
    public TestTokenRewriteStream() {
    }

  @Test public void testInsertBeforeIndex0() throws Exception {
    Grammar g = new Grammar(
      "lexer grammar t;\n"+
      "A : 'a';\n" +
      "B : 'b';\n" +
      "C : 'c';\n");
    CharStream input = new ANTLRStringStream("abc");
View Full Code Here

    String expecting = "0abc";
    assertEquals(expecting, result);
  }

  @Test public void testInsertAfterLastIndex() throws Exception {
    Grammar g = new Grammar(
      "lexer grammar t;\n"+
      "A : 'a';\n" +
      "B : 'b';\n" +
      "C : 'c';\n");
    CharStream input = new ANTLRStringStream("abc");
View Full Code Here

TOP

Related Classes of org.antlr.tool.Grammar

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.