예제 #1
0
파일: Utils.cs 프로젝트: simplify9/Metadata
        public static IContentNode CreateValue(this DslToken token)
        {
            switch (token.TokenType)
            {
            case TokenType.DateTime: return(new ContentDateTime(DateTime.Parse(token.Value, null, DateTimeStyles.RoundtripKind)));

            case TokenType.String: return(new ContentText(token.Value.Substring(1, token.Value.Length - 2)));

            case TokenType.Number: return(new ContentNumber(decimal.Parse(token.Value)));

            case TokenType.Null: return(ContentNull.Singleton);

            case TokenType.TrueLiteral: return(new ContentBoolean(true));

            case TokenType.FalseLiteral: return(new ContentBoolean(false));

            default: throw new ParserException($"Unexpected token", token);
            }
        }
예제 #2
0
 public ParserException(string message, DslToken token)
     : base($"{message}{(token == null? string.Empty : $"(at character {token.Match.StartIndex}" )})")
예제 #3
0
 ConstantExpression CreateConstant(DslToken token)
 {
     return(new ConstantExpression(token.CreateValue()));
 }
예제 #4
0
파일: Utils.cs 프로젝트: simplify9/Metadata
 public static bool IsConstant(this DslToken token)
 {
     return(ConstantTokens.Contains(token.TokenType));
 }