public override int VisitLexerDescription(RegExpParser.LexerDescriptionContext context) { // PREORDER ACTIONS m_outputStream.WriteLine("digraph " + Path.GetFileNameWithoutExtension(m_outputFile) + "{\n"); string label = "LexerDescription_" + ms_ASTElementCounter.ToString(); //m_outputStream.WriteLine("\"{0}\"->\"{1}\";", m_PTPath.Peek(), label); ms_ASTElementCounter++; m_PTPath.Push(label); base.VisitLexerDescription(context); // POSTORDER ACTIONS m_PTPath.Pop(); m_outputStream.WriteLine("}"); m_outputStream.Close(); if (true) { Process process = new Process(); // Configure the process using the StartInfo properties. process.StartInfo.FileName = "dot.exe"; process.StartInfo.Arguments = "-Tgif " + m_outputFile + " -o" + Path.GetFileNameWithoutExtension(m_outputFile) + ".gif"; process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.Start(); process.WaitForExit();// Waits here for the process to exit. } return(0); }
/// <summary> /// Visit a parse tree produced by <see cref="RegExpParser.lexerDescription"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitLexerDescription([NotNull] RegExpParser.LexerDescriptionContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="RegExpParser.lexerDescription"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitLexerDescription([NotNull] RegExpParser.LexerDescriptionContext context) { }