Example #1
0
        public override InjectionValue VisitExpression([NotNull] injectionParser.ExpressionContext context)
        {
            var result = Visit(context.logicalOperand());

            foreach (var operation in context.logicalOperation())
            {
                var operand         = Visit(operation.logicalOperand());
                var logicalOperator = operation.logicalOperator();

                if (logicalOperator.AND() != null)
                {
                    result = result & operand;
                }
                else if (logicalOperator.OR() != null)
                {
                    result = result | operand;
                }
                else
                {
                    throw new NotImplementedException();
                }
            }

            return(result);
        }
Example #2
0
        public InjectionValue?EvaluateExpression(injectionParser.ExpressionContext expression)
        {
            if (currentContext == null)
            {
                return(null);
            }

            return(currentContext.Eval(expression));
        }
 public GlobalVariableDefinition(string name)
 {
     Name = name;
     InitialValueExpression = null;
 }
Example #4
0
 internal InjectionValue Eval(injectionParser.ExpressionContext expression)
 => interpreter.VisitExpression(expression);
 public GlobalVariableDefinition(string name, injectionParser.ExpressionContext initialValueExpression)
 {
     Name = name;
     this.InitialValueExpression = initialValueExpression;
 }