public StatementNode Parse(Parser parser, Token token)
    {
        if (token.Kind == TokenKind.@string)
        {
            return(new StringNode(token.Representation, token));
        }

        if (token is ComplexStringToken complexString)
        {
            var node = new ComplexStringNode(complexString, new List <ValueNode>());

            foreach (var section in complexString.CodeSections)
            {
                node.AddSection(new Parser(new Consumer <Token>(section)).ConsumeValue());
            }

            return(node);
        }

        throw new ArgumentException(nameof(token) + " needs to be a string.");
    }
Exemple #2
0
 public bool Visit(ComplexStringNode node)
 => node.CodeSections.All(IsContant);