public ProductionInstanceBuilderPool(ParserProduction production)
                {
                    _production = production;
                    _poolArray  = new ProductionInstanceBuilder[16];

                    for (var i = 0; i < _poolArray.Length; i++)
                    {
                        _poolArray[i] = new ProductionInstanceBuilder(_production, this);
                    }

                    _tail = _poolArray.Length - 1;
                }
                private void Resize()
                {
                    var len = _poolArray.Length;

                    Array.Resize(ref _poolArray, len * 2);

                    for (var i = 0; i < len; i++)
                    {
                        _poolArray[i] = new ProductionInstanceBuilder(_production, this);
                    }

                    _tail = len - 1;
                }
Example #3
0
 public ValueListArgument(ProductionInstanceBuilder instanceBuilder, int index) : base(instanceBuilder, index)
 {
 }
Example #4
0
 public abstract Argument CreateArgument(ProductionInstanceBuilder instanceBuilder, int index);
Example #5
0
 protected Argument(ProductionInstanceBuilder instanceBuilder, int index)
 {
     InstanceBuilder = instanceBuilder;
     Index           = index;
     ArgumentBuilder = InstanceBuilder.ArgumentBuilders[index];
 }
Example #6
0
 public override Argument CreateArgument(ProductionInstanceBuilder instanceBuilder, int index)
 {
     return(new ValueListArgument <TResult>(instanceBuilder, index));
 }
                public void Return(ProductionInstanceBuilder productionInstanceBuilder)
                {
                    productionInstanceBuilder.Busy = false;

                    _poolArray[++_tail] = productionInstanceBuilder;
                }
 public LexemeTokenArgument(ProductionInstanceBuilder instanceBuilder, int index) : base(instanceBuilder, index)
 {
 }
 public override Argument CreateArgument(ProductionInstanceBuilder instanceBuilder, int index)
 {
     return(new LexemeTokenArgument(instanceBuilder, index));
 }
 public override Argument CreateArgument(ProductionInstanceBuilder instanceBuilder, int index)
 {
     return(new ValueListArgument <Lexeme <TActualToken> >(instanceBuilder, index));
 }
                        public LexemeTextArgument(ProductionInstanceBuilder instanceBuilder, int index, string staticText) : base(instanceBuilder, index)
                        {
                            Text = staticText;

                            _static = staticText != null;
                        }
 public override Argument CreateArgument(ProductionInstanceBuilder instanceBuilder, int index)
 {
     return(new LexemeTextArgument(instanceBuilder, index, ArgumentBuilder.StaticLexemeText));
 }