コード例 #1
0
ファイル: PrintPlugin.cs プロジェクト: neapolis/SambaPOS-3
        /// <summary>
        /// Parse the expression.
        /// </summary>
        /// <returns></returns>
        public override Expr Parse()
        {
            var printToken = _tokenIt.NextToken;
            var lineToken = _tokenIt.AdvanceAndGet<Token>();
            Expr lineExp = null;
            if (lineToken.Kind == TokenKind.Multi)
                lineExp = _parser.ParseInterpolatedExpression(lineToken);
            else
                lineExp = new ConstantExpr(new LString((string)lineToken.Value));

            var nameExp = _parser.ToIdentExpr(printToken.Token.Text, printToken);
            var exp = (FunctionCallExpr)_parser.ToFunctionCallExpr(nameExp, null, printToken);
            exp.ParamListExpressions.Add(lineExp);

            // Move past this plugin.
            _tokenIt.Advance();
            return exp;
        }
コード例 #2
0
ファイル: Visitor.cs プロジェクト: shuxingliu/SambaPOS-3
 /// <summary>
 /// Visits the condition expression tree
 /// </summary>
 /// <param name="exp"></param>
 public object VisitConstant(ConstantExpr exp)
 {
     return null;
 }
コード例 #3
0
ファイル: Execution.cs プロジェクト: shuxingliu/SambaPOS-3
        /// <summary>
        /// Evaluate a constant.
        /// </summary>
        /// <param name="val"></param>
        /// <returns></returns>
        public object VisitConstant(ConstantExpr expr)
        {
            var val = expr.Value;
            // 1. Null
            if (val == LObjects.Null)
                return val;

            if (val is LObject)
                return val;

            // 2. Actual value.
            var ltype = LangTypeHelper.ConvertToLangValue(val);
            return ltype;
        }
コード例 #4
0
ファイル: Exprs.cs プロジェクト: shuxingliu/SambaPOS-3
 /// <summary>
 /// Creates a variable expression with symbol scope, context, script refernce set.
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 public static Expr Const(LObject obj, TokenData token)
 {
     var exp = new ConstantExpr();
     exp.Value = obj;
     SetupContext(exp, token);
     return exp;
 }
コード例 #5
0
ファイル: Parser.cs プロジェクト: neapolis/SambaPOS-3
 /// <summary>
 /// Creates a variable expression with symbol scope, context, script refernce set.
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 public Expr ToConstExpr(LObject obj, TokenData token)
 {
     var exp = new ConstantExpr(obj);
     this.SetupContext(exp, token);
     return exp;
 }