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."); }
public bool Visit(ComplexStringNode node) => node.CodeSections.All(IsContant);