public ClassCommand(string name, IList <IExpression> baseExpressions, ICommand body) { this.name = name; this.body = body; this.baseExpressions = baseExpressions; this.doc = CommandUtilities.GetDocString(this.body); }
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"); } } } }