public void ensureStartRuleExists(VirtualFile grammarFile) { PreviewState previewState = ANTLRv4PluginController.getInstance(project).getPreviewState(grammarFile); // if start rule no longer exists, reset display/state. if (previewState.g != ParsingUtils.BAD_PARSER_GRAMMAR && previewState.startRuleName != null) { Rule rule = previewState.g.getRule(previewState.startRuleName); if (rule == null) { previewState.startRuleName = null; inputPanel.resetStartRuleLabel(); } } }
public void updateParseTreeFromDoc(VirtualFile grammarFile) { ANTLRv4PluginController controller = ANTLRv4PluginController.getInstance(project); PreviewState previewState = controller.getPreviewState(grammarFile); LOG.info("updateParseTreeFromDoc " + grammarFile + " rule " + previewState.startRuleName); try { final String inputText = previewState.getEditor().getDocument().getText(); ParsingResult results = controller.parseText(grammarFile, inputText); if (results != null) { updateTreeViewer(previewState, results); } else if (previewState.startRuleName == null) { indicateNoStartRuleInParseTreePane(); } else { indicateInvalidGrammarInParseTreePane(); } } catch (IOException ioe) { ioe.printStackTrace(); } }