private void ParseNew(Exp firstExp) { var expType = firstExp as ExpTypeUnsure; tape.MoveNext(); Exp nextExp = AnalyCurrent(); if ((nextExp is ExpBracket)) { var bracketexp = nextExp as ExpBracket; AnalyNewExp(expType, bracketexp); } else if ((nextExp is ExpVarBase) || nextExp is ExpLiteral) { var bracketexp = new ExpBracketWrapOne(this.expContext, nextExp, false); //bracketexp.SetContextExp(this.expContext); bracketexp.AnalyRet(); AnalyNewExp(expType, bracketexp); } else { ExpBracket bracket = new ExpBracketWrapOne(this.expContext, firstExp, false); //bracket.SetContextExp(this.expContext); bracket.AnalyRet(); newExpList.Add(bracket); ParseExp(nextExp); } }
private void ParseAsArg(Exp subExp) { ExpBracket bracket = new ExpBracketWrapOne(this.expContext, subExp, false); //bracket.SetContextExp(this.expContext); Exp exp2 = bracket.Analy(); newExpList.Add(exp2); tape.MoveNext(); }
private ExpBracket WarpExp(Exp exp) { if (exp is ExpBracket) { return(exp as ExpBracket); } ExpBracketWrapOne exp2 = new ExpBracketWrapOne(this.ExpContext, exp, true); return(exp2); }