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; }
public ValueListArgument(ProductionInstanceBuilder instanceBuilder, int index) : base(instanceBuilder, index) { }
public abstract Argument CreateArgument(ProductionInstanceBuilder instanceBuilder, int index);
protected Argument(ProductionInstanceBuilder instanceBuilder, int index) { InstanceBuilder = instanceBuilder; Index = index; ArgumentBuilder = InstanceBuilder.ArgumentBuilders[index]; }
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)); }