Search in sources :

Example 1 with GrammarEngine

use of org.antlr.works.grammar.engine.GrammarEngine in project antlrworks by antlr.

the class GrammarWindow method goToDeclaration.

public void goToDeclaration(final Jumpable ref) {
    goToHistoryRememberCurrentPosition();
    if (ref instanceof ElementImport) {
    //    getContainer().selectEditor(ref.getName());
    } else if (ref != null) {
        GrammarEngine engine = getGrammarEngine();
        int index = engine.getFirstDeclarationPosition(ref.getName());
        if (index == -1) {
            // This grammar does not contain the declaration. Search in the other children
            // starting from the root grammarEngine
            engine = engine.getRootEngine();
            List<String> grammars = engine.getGrammarsOverriddenByRule(ref.getName());
            if (!grammars.isEmpty()) {
                //getContainer().selectEditor(grammars.get(0));
                // set the caret position
                SwingUtilities.invokeLater(new Runnable() {

                    public void run() {
                        GrammarEngine engine = getGrammarEngine();
                        int index = engine.getFirstDeclarationPosition(ref.getName());
                        if (index != -1) {
                            setCaretPosition(index);
                        }
                    }
                });
            }
        } else {
            setCaretPosition(index);
        }
    }
}
Also used : List(java.util.List) ElementImport(org.antlr.works.grammar.element.ElementImport) GrammarEngine(org.antlr.works.grammar.engine.GrammarEngine)

Example 2 with GrammarEngine

use of org.antlr.works.grammar.engine.GrammarEngine in project antlrworks by antlr.

the class Console method processSyntaxDiagram.

private void processSyntaxDiagram(ProcessSyntaxDiagramDelegate delegate) throws Exception {
    GrammarEngine engine = new GrammarEngineImpl(new EngineDelegate());
    GrammarSyntaxEngine syntaxEngine = engine.getSyntaxEngine();
    syntaxEngine.setDelegate(new SyntaxDelegate());
    syntaxEngine.processSyntax();
    engine.parserCompleted();
    SDGenerator gen = new SDGenerator(engine);
    delegate.beginProcess();
    for (String name : engine.getRuleNames()) {
        delegate.processRule(name, gen);
    }
    delegate.endProcess();
}
Also used : SDGenerator(org.antlr.works.visualization.SDGenerator) GrammarSyntaxEngine(org.antlr.works.grammar.syntax.GrammarSyntaxEngine) GrammarEngine(org.antlr.works.grammar.engine.GrammarEngine) ATESyntaxEngineDelegate(org.antlr.works.ate.syntax.generic.ATESyntaxEngineDelegate) GrammarEngineDelegate(org.antlr.works.grammar.engine.GrammarEngineDelegate) GrammarEngineImpl(org.antlr.works.grammar.engine.GrammarEngineImpl)

Aggregations

GrammarEngine (org.antlr.works.grammar.engine.GrammarEngine)2 List (java.util.List)1 ATESyntaxEngineDelegate (org.antlr.works.ate.syntax.generic.ATESyntaxEngineDelegate)1 ElementImport (org.antlr.works.grammar.element.ElementImport)1 GrammarEngineDelegate (org.antlr.works.grammar.engine.GrammarEngineDelegate)1 GrammarEngineImpl (org.antlr.works.grammar.engine.GrammarEngineImpl)1 GrammarSyntaxEngine (org.antlr.works.grammar.syntax.GrammarSyntaxEngine)1 SDGenerator (org.antlr.works.visualization.SDGenerator)1