Antlr4.Automata.LexerATNFactory.StringLiteral C# (CSharp) Method

StringLiteral() public method

public StringLiteral ( TerminalAST stringLiteralAST ) : Handle
stringLiteralAST Antlr4.Tool.Ast.TerminalAST
return Handle
        public override Handle StringLiteral(TerminalAST stringLiteralAST)
        {
            string chars = stringLiteralAST.Text;
            ATNState left = NewState(stringLiteralAST);
            ATNState right;
            chars = CharSupport.GetStringFromGrammarStringLiteral(chars);
            if (chars == null)
            {
                g.tool.errMgr.GrammarError(ErrorType.INVALID_ESCAPE_SEQUENCE,
                        g.fileName, stringLiteralAST.Token);
                return new Handle(left, left);
            }

            int n = chars.Length;
            ATNState prev = left;
            right = null;
            for (int i = 0; i < n; i++)
            {
                right = NewState(stringLiteralAST);
                prev.AddTransition(new AtomTransition(right, chars[i]));
                prev = right;
            }
            stringLiteralAST.atnState = left;
            return new Handle(left, right);
        }