private LiteralExpr TranslateLiteral(TokenLiteral l) { LiteralExpr m; if (l.OnBooleanValue) { m = LiteralExpr.CreateBooleanValue(l.BooleanValue); } else if (l.OnIntValue) { m = LiteralExpr.CreateIntValue(l.IntValue); } else if (l.OnRealValue) { m = LiteralExpr.CreateRealValue(l.RealValue); } else { throw new InvalidOperationException(); } Positions.Add(m, Positions[l]); return(m); }
/// <summary>字面量表达式</summary> public static Expr CreateLiteral(LiteralExpr Value) { return(new Expr { _Tag = ExprTag.Literal, Literal = Value }); }