Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        private ExpBracket WarpExp(Exp exp)
        {
            if (exp is ExpBracket)
            {
                return(exp as ExpBracket);
            }
            ExpBracketWrapOne exp2 = new ExpBracketWrapOne(this.ExpContext, exp, true);

            return(exp2);
        }