Exemplo n.º 1
0
 public ClassCommand(string name, IList <IExpression> baseExpressions, ICommand body)
 {
     this.name            = name;
     this.body            = body;
     this.baseExpressions = baseExpressions;
     this.doc             = CommandUtilities.GetDocString(this.body);
 }
Exemplo n.º 2
0
        public DefCommand(string name, IList <ParameterExpression> parameterExpressions, ICommand body)
        {
            this.name = name;
            this.parameterExpressions = parameterExpressions;
            this.body = body;
            this.doc  = CommandUtilities.GetDocString(this.body);

            if (this.parameterExpressions != null)
            {
                bool hasdefault = false;

                foreach (var parexpr in this.parameterExpressions)
                {
                    if (parexpr.DefaultExpression != null)
                    {
                        hasdefault = true;
                    }
                    else if (hasdefault)
                    {
                        throw new SyntaxError("non-default argument follows default argument");
                    }
                }
            }
        }