コード例 #1
0
        public override IMatched <Unit> Parse(ParseState state, Token[] tokens, ExpressionBuilder builder)
        {
            var source = tokens[2].Text;

            state.Colorize(tokens, Color.Whitespace, Color.Identifier);

            if (state.DefExpression(source).If(out var defExpression))
            {
                builder.Add(defExpression);
            }
            else
            {
                builder.Add(builder.Flags[ExpressionFlags.Comparisand] ? new PlaceholderSymbol($"-{source}") : new FieldSymbol(source));
            }

            return(Unit.Matched());
        }