Beispiel #1
0
        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);
        }
Beispiel #2
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)
 {
 }