/*****************************************************************************/ private IExpression CreateValue(Token token) { switch (token.Type) { case Token.TokenType.Literal: return(new Value(token.Value)); case Token.TokenType.Number: return(new NumberValue(decimal.Parse(token.Value))); case Token.TokenType.Text: { var lval = token.Value.ToLower(); if (lval == "true") { return(new Value(true)); } if (lval == "false") { return(new Value(false)); } if (token.Value.StartsWith("$")) { if (token.Value.Contains(".")) { var index = token.Value.IndexOf("."); var varName = token.Value.Substring(1, index - 1); var parts = new MultiPartDataValue(new VariableValue(varName)); parts.AddPart(new DataValue(token.Value.Substring(index + 1))); return(parts); } return(new VariableValue(token.Value.Substring(1))); } return(new DataValue(token.Value.EnsureDoesNotStartWith("."))); } default: throw new Transformer.SyntaxException("Unknown token type"); } }