Пример #1
0
        /// <summary>
        /// Parse the given input into a description of a sequence diagram.
        /// </summary>
        /// <param name="input">The input string</param>
        /// <returns></returns>
        public static (SequenceDiagramViewModel SequenceDiagram, string Error) Parse(string input)
        {
            var inputStream = new CaseInsensitiveInputStream(input);
            var lexer       = new SequenceLexer(inputStream);
            var tokenStream = new CommonTokenStream(lexer);
            var parser      = new SequenceParser(tokenStream);

            // Report errors to the console (for now)
            var error         = new StringBuilder();
            var errorListener = new StringErrorListener(error);

            lexer.AddErrorListener(errorListener);
            parser.AddErrorListener(errorListener);

            // Generate SequenceDiagramViewModel out of parsed result
            StartContext    startContext = parser.start();
            SequenceVisitor visitor      = new SequenceVisitor(errorListener);

            visitor.Visit(startContext);

            return(visitor.SequenceDiagram, error.ToString());
        }
Пример #2
0
 public SequenceVisitor(StringErrorListener errorListener)
 {
     m_errorListener = errorListener;
 }