Exemplo n.º 1
0
        protected sunLoop PushLoop(sunContext context, sunLoopFlags flags)
        {
            var name = context.PopNameLabel();

            if (name == null)
            {
                return(context.Loops.Push(flags));
            }
            return(context.Loops.Push(name.Label.Value, flags));
        }
Exemplo n.º 2
0
        sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context)
        {
            var symbol = context.MustResolveCallable(this);
            var flags  = sunExpressionFlags.Calls;

            if ((symbol.Modifiers & sunSymbolModifiers.Constant) == 0)
            {
                flags |= sunExpressionFlags.Dynamic;
            }
            return(flags);
        }
Exemplo n.º 3
0
        static sunExpressionFlags AnalyzeExpression(sunContext context, sunExpression expression)
        {
            var flags = sunExpressionFlags.None;

            foreach (var operand in expression.OfType <sunOperand>())
            {
                var term = operand.Term as sunTerm;
                if (term != null)
                {
                    flags |= term.GetExpressionFlags(context);
                }
            }
            return(flags);
        }
Exemplo n.º 4
0
 sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context)
 {
     return(AnalyzeExpression(context, this));
 }
Exemplo n.º 5
0
 sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context)
 {
     return(sunExpressionFlags.Augments);
 }
Exemplo n.º 6
0
 public sunExpressionFlags Analyze(sunContext context)
 {
     return(AnalyzeExpression(context, this));
 }
Exemplo n.º 7
0
 sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context)
 {
     return(Condition.Analyze(context) | TrueBody.Analyze(context) | FalseBody.Analyze(context));
 }
Exemplo n.º 8
0
 public sunCompiler()
 {
     mContext = new sunContext();
     mParser  = new sunParser();
 }
Exemplo n.º 9
0
 sunExpressionFlags sunTerm.GetExpressionFlags(sunContext context)
 {
     return(sunExpressionFlags.Literals);
 }