public static ILanguageExpression Translate(GMacExpressionBasicGenerator langExprGen, ParseTreeNode node)
        {
            var context = langExprGen.Context;

            context.PushState(node);

            var translator = new GMacExpressionAtomicFunctionGenerator();// new GMacExpressionAtomicFunctionGenerator(langExprGen);

            translator.SetContext(langExprGen);
            translator.Translate();

            context.PopState();

            var result = translator._generatedExpression;

            //MasterPool.Release(translator);

            return(result);
        }
Ejemplo n.º 2
0
        public static ILanguageExpression Translate(GMacSymbolTranslatorContext context, ParseTreeNode node)
        {
            context.PushState(node);

            var translator = new GMacExpressionGenerator();//new GMacExpressionGenerator(context);

            var basicExprGen = new GMacExpressionBasicGenerator();

            basicExprGen.SetContext(context);

            translator.SetContext(basicExprGen);
            translator.Translate();

            context.PopState();

            var result = translator._generatedExpression;

            //MasterPool.Release(basicExprGen);
            //MasterPool.Release(translator);

            return(result);
        }
        //public override void ResetOnAcquire()
        //{
        //    base.ResetOnAcquire();

        //    _generatedExpression = null;
        //    BasicExpressionGenerator = null;
        //}


        private void SetContext(GMacExpressionBasicGenerator basicExprGen)
        {
            SetContext(basicExprGen.Context);
            BasicExpressionGenerator = basicExprGen;
        }