Exemple #1
0
        void IParsingTreeNodeVisitor.VisitTerminal(IParsingTreeTerminal terminal)
        {
            CodeTokenType tt;

            var rn = _rules.Last;

            if (rn.Value == "name")
            {
                tt = CodeTokenType.Indentifier;
            }
            else if (rn.Value == "number")
            {
                tt = CodeTokenType.Number;
            }
            else if (rn.Value == "string" || rn.Value == "chars" || rn.Value == "charCode" || rn.Value == "anyChar")
            {
                tt = CodeTokenType.String;
            }
            else if (_keywords.Contains(rn.Value) || rn.Previous.Value == "qnumbers")
            {
                tt = CodeTokenType.Keyword;
            }
            else
            {
                tt = CodeTokenType.None;
            }

            this.AddToken(terminal, tt);
        }
Exemple #2
0
        private void AddToken(IParsingTreeTerminal term, CodeTokenType type)
        {
            var from = term.From;

            while (_lines.Count <= from.Line)
            {
                _lines.Add(new List <KeyValuePair <IParsingTreeTerminal, HighlightingColor> >());
            }

            _lines[from.Line].Add(new KeyValuePair <IParsingTreeTerminal, HighlightingColor>(term, _brushes[type]));

            _tokens.Add(new SyntaxHighlight.CodeToken()
            {
                Start     = _currReader.GetPosition(term.From),
                End       = _currReader.GetPosition(term.To),
                TokenType = type
            });
        }
Exemple #3
0
 void IParsingTreeNodeVisitor.VisitTerminal(IParsingTreeTerminal terminal)
 {
     PrintNode(terminal);
 }
Exemple #4
0
        void IParsingTreeNodeVisitor.VisitTerminal(IParsingTreeTerminal terminal)
        {
            var t = (ParsingTreeNode.Terminal)terminal;

            _currChild = new ParsingTreeNode.Terminal(t.GrammarNode, t.Location, _currChild, t.From, t.To, t.Content);
        }
Exemple #5
0
 void IParsingTreeNodeVisitor.VisitTerminal(IParsingTreeTerminal terminal)
 {
     this.Result = terminal;
 }