protected override void ParseUpvalues(Stream stream, BHeader header, LFunctionParseState s) { var upvalues = header.UpValue.ParseList(stream, header); s.LenUpvalues = upvalues.Length.AsInteger(); s.Upvalues = upvalues.AsArray(); }
protected virtual void ParseDebug(Stream stream, BHeader header, LFunctionParseState s) { if (header.Debug) { Console.WriteLine("-- beginning to parse source lines list"); } s.Lines = header.Integer.ParseList(stream, header); if (header.Debug) { Console.WriteLine("-- beginning to parse locals list"); } s.Locals = header.Local.ParseList(stream, header); if (header.Debug) { Console.WriteLine("-- beginning to parse upvalues list"); } var upvalNames = header.String.ParseList(stream, header); var count = upvalNames.Length.AsInteger(); for (int i = 0; i < count; i++) { s.Upvalues[i].Name = upvalNames[i].DeRef(); } }
public override void ParseUpvalues(BinaryReaderEx reader, BHeader header, LFunctionParseState s) { BList <LUpvalue> upvalues = header.Upvalue.ParseList(reader, header); s.LenUpvalues = upvalues.Length.AsInt(); s.Upvalues = upvalues.AsArray(new LUpvalue[s.LenUpvalues]); }
protected virtual void ParseUpvalues(Stream stream, BHeader header, LFunctionParseState s) { s.Upvalues = new LUpvalue[s.LenUpvalues]; for (int i = 0; i < s.LenUpvalues; i++) { s.Upvalues[i] = new LUpvalue(); } }
protected override void ParseMain(Stream stream, BHeader header, LFunctionParseState s) { s.LineBegin = header.Integer.Parse(stream, header).AsInteger(); s.LineEnd = header.Integer.Parse(stream, header).AsInteger(); s.LenParameter = stream.ReadByte(); s.VarArg = stream.ReadByte(); s.MaximumStackSize = stream.ReadByte(); this.ParseCode(stream, header, s); this.ParseConstants(stream, header, s); this.ParseUpvalues(stream, header, s); this.ParseDebug(stream, header, s); }
public override void ParseMain(BinaryReaderEx reader, BHeader header, LFunctionParseState s) { s.LineBegin = header.Integer.Parse(reader, header).AsInt(); s.LineEnd = header.Integer.Parse(reader, header).AsInt(); s.LenParameter = reader.ReadByte(); s.Vararg = reader.ReadByte(); s.MaximumStackSize = reader.ReadByte(); ParseCode(reader, header, s); ParseConstants(reader, header, s); ParseUpvalues(reader, header, s); ParseDebug(reader, header, s); }
public override LFunction parse(ByteBuffer buffer, BHeader header) { if (header.debug) { Console.WriteLine("-- beginning to parse function"); } if (header.debug) { Console.WriteLine("-- parsing name...start...end...upvalues...params...varargs...stack"); } LFunctionParseState s = new LFunctionParseState(); parse_main(buffer, header, s); return(new LFunction(header, s.code, s.locals.asArray(new LLocal[s.locals.length.asInt()]), s.constants.asArray(new LObject[s.constants.length.asInt()]), s.upvalues, s.functions.asArray(new LFunction[s.functions.length.asInt()]), s.maximumStackSize, s.lenUpvalues, s.lenParameter, s.vararg)); }
protected virtual void ParseConstants(Stream stream, BHeader header, LFunctionParseState s) { if (header.Debug) { Console.WriteLine("-- beginning to parse constants list"); } s.Constants = header.Constant.ParseList(stream, header); if (header.Debug) { Console.WriteLine("-- beginning to parse functions list"); } s.Functions = header.Function.ParseList(stream, header); }
protected virtual void ParseMain(Stream stream, BHeader header, LFunctionParseState s) { s.Name = header.String.Parse(stream, header); s.LineBegin = header.Integer.Parse(stream, header).AsInteger(); s.LineEnd = header.Integer.Parse(stream, header).AsInteger(); s.LenUpvalues = 0xFF & stream.ReadByte(); s.LenParameter = 0xFF & stream.ReadByte(); s.VarArg = 0xFF & stream.ReadByte(); s.MaximumStackSize = 0xFF & stream.ReadByte(); ParseCode(stream, header, s); ParseConstants(stream, header, s); ParseUpvalues(stream, header, s); ParseDebug(stream, header, s); }
protected virtual void ParseCode(Stream stream, BHeader header, LFunctionParseState s) { if (header.Debug) { Console.WriteLine("-- beginning to parse bytecode list"); } s.Length = header.Integer.Parse(stream, header).AsInteger(); s.Code = new int[s.Length]; for (int i = 0; i < s.Length; i++) { s.Code[i] = stream.ReadInt32(); if (header.Debug) { Console.WriteLine("-- parsed codepoint 0x{0:X}" + s.Code[i]); } } }
public override void ParseMain(BinaryReaderEx reader, BHeader header, LFunctionParseState s) { s.Name = header.String.Parse(reader, header); s.LineBegin = header.Integer.Parse(reader, header).AsInt(); s.LineEnd = 0; int lenUpvalues = reader.ReadByte(); s.Upvalues = new LUpvalue[lenUpvalues]; for (int i = 0; i < lenUpvalues; i++) { s.Upvalues[i] = new LUpvalue(); } s.LenParameter = reader.ReadByte(); s.Vararg = reader.ReadByte(); s.MaximumStackSize = reader.ReadByte(); ParseDebug(reader, header, s); ParseConstants(reader, header, s); ParseCode(reader, header, s); }
public override LFunction Parse(Stream stream, BHeader header) { if (header.Debug) { Console.WriteLine("-- beginning to parse function"); Console.WriteLine("-- parsing name...start...end...upvalues...params...varargs...stack"); } var s = new LFunctionParseState(); ParseMain(stream, header, s); return(new LFunction(header, s.Code, s.Locals.AsArray(), s.Constants.AsArray(), s.Upvalues, s.Functions.AsArray(), s.MaximumStackSize, s.LenUpvalues, s.LenParameter, s.VarArg)); }
protected internal override void parse_upvalues(ByteBuffer buffer, BHeader header, LFunctionParseState s) { BList <LUpvalue> upvalues = header.upvalue.parseList(buffer, header); s.lenUpvalues = upvalues.length.asInt(); s.upvalues = upvalues.asArray(new LUpvalue[s.lenUpvalues]); }
protected override void ParseDebug(Stream stream, BHeader header, LFunctionParseState s) { s.Name = header.String.Parse(stream, header); base.ParseDebug(stream, header, s); }
protected internal virtual void parse_main(ByteBuffer buffer, BHeader header, LFunctionParseState s) { s.name = [email protected](buffer, header); s.lineBegin = header.integer.parse(buffer, header).asInt(); s.lineEnd = header.integer.parse(buffer, header).asInt(); s.lenUpvalues = 0xFF & buffer.GetByte(); s.lenParameter = 0xFF & buffer.GetByte(); s.vararg = 0xFF & buffer.GetByte(); s.maximumStackSize = 0xFF & buffer.GetByte(); parse_code(buffer, header, s); parse_constants(buffer, header, s); parse_upvalues(buffer, header, s); parse_debug(buffer, header, s); }
protected internal virtual void parse_code(ByteBuffer buffer, BHeader header, LFunctionParseState s) { if (header.debug) { Console.WriteLine("-- beginning to parse bytecode list"); } s.length = header.integer.parse(buffer, header).asInt(); s.code = new int[s.length]; for (int i = 0; i < s.length; i++) { /*byte[] intByteArray = new byte[4]; * intByteArray[0] = Convert.ToByte(buffer.ReadByte()); * intByteArray[1] = Convert.ToByte(buffer.ReadByte()); * intByteArray[2] = Convert.ToByte(buffer.ReadByte()); * intByteArray[3] = Convert.ToByte(buffer.ReadByte());*/ s.code[i] = buffer.GetInt(); //BitConverter.ToInt32(intByteArray, 0);//buffer.getInt(); if (header.debug) { Console.WriteLine("-- parsed codepoint " + s.code[i].ToString("X8")); } } }
protected internal virtual void parse_constants(ByteBuffer buffer, BHeader header, LFunctionParseState s) { if (header.debug) { Console.WriteLine("-- beginning to parse constants list"); } s.constants = header.constant.parseList(buffer, header); if (header.debug) { Console.WriteLine("-- beginning to parse functions list"); } s.functions = header.function.parseList(buffer, header); }
protected internal virtual void parse_debug(ByteBuffer buffer, BHeader header, LFunctionParseState s) { if (header.debug) { Console.WriteLine("-- beginning to parse source lines list"); } s.lines = header.integer.parseList(buffer, header); if (header.debug) { Console.WriteLine("-- beginning to parse locals list"); } s.locals = header.local.parseList(buffer, header); if (header.debug) { Console.WriteLine("-- beginning to parse upvalues list"); } BList <LString> upvalueNames = [email protected](buffer, header); for (int i = 0; i < upvalueNames.length.asInt(); i++) { s.upvalues[i].name = upvalueNames.get(i).deref(); } }
protected internal override void parse_debug(ByteBuffer buffer, BHeader header, LFunctionParseState s) { s.name = [email protected](buffer, header); base.parse_debug(buffer, header, s); }
public override void ParseDebug(BinaryReaderEx reader, BHeader header, LFunctionParseState s) { s.Name = header.String.Parse(reader, header); ParseDebug(reader, header, s); }
protected internal virtual void parse_upvalues(ByteBuffer buffer, BHeader header, LFunctionParseState s) { s.upvalues = new LUpvalue[s.lenUpvalues]; for (int i = 0; i < s.lenUpvalues; i++) { s.upvalues[i] = new LUpvalue(); } }