|
|
|
@ -44,6 +44,7 @@ type Generator struct {
|
|
|
|
PackageName string
|
|
|
|
PackageName string
|
|
|
|
|
|
|
|
|
|
|
|
nestingLevel int
|
|
|
|
nestingLevel int
|
|
|
|
|
|
|
|
temporaryVar int
|
|
|
|
protocol *Protocol
|
|
|
|
protocol *Protocol
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -143,6 +144,8 @@ func (this *Generator) generateTypedef(name string, typ Type) (n int, err error)
|
|
|
|
name)
|
|
|
|
name)
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
this.push()
|
|
|
|
this.push()
|
|
|
|
|
|
|
|
nn, err = this.iprintf("var nn int\n")
|
|
|
|
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
nn, err = this.generateDecodeValue(typ, "this", "tag")
|
|
|
|
nn, err = this.generateDecodeValue(typ, "this", "tag")
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
nn, err = this.iprintf("return n, nil\n")
|
|
|
|
nn, err = this.iprintf("return n, nil\n")
|
|
|
|
@ -206,7 +209,7 @@ func (this *Generator) generateMessage(method uint16, message Message) (n int, e
|
|
|
|
nn, err = this.iprintf("\n// Decode decodes this message's tag and value.\n")
|
|
|
|
nn, err = this.iprintf("\n// Decode decodes this message's tag and value.\n")
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
nn, err = this.iprintf(
|
|
|
|
nn, err = this.iprintf(
|
|
|
|
"func(this *%s) Decode(encoder *tape.Decoder) (n int, err error) {\n",
|
|
|
|
"func(this *%s) Decode(decoder *tape.Decoder) (n int, err error) {\n",
|
|
|
|
this.resolveMessageName(message.Name))
|
|
|
|
this.resolveMessageName(message.Name))
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
this.push()
|
|
|
|
this.push()
|
|
|
|
@ -412,13 +415,13 @@ func (this *Generator) generateDecodeValue(typ Type, valueSource, tagSource stri
|
|
|
|
if typ.Signed {
|
|
|
|
if typ.Signed {
|
|
|
|
prefix = "ReadInt"
|
|
|
|
prefix = "ReadInt"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
nn, err := this.iprintf("*%s, nn, err = encoder.%s%d()\n", valueSource, prefix, typ.Bits)
|
|
|
|
nn, err := this.iprintf("*%s, nn, err = decoder.%s%d()\n", valueSource, prefix, typ.Bits)
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
nn, err = this.generateErrorCheck()
|
|
|
|
nn, err = this.generateErrorCheck()
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
case TypeFloat:
|
|
|
|
case TypeFloat:
|
|
|
|
// FP: <value: FloatN>
|
|
|
|
// FP: <value: FloatN>
|
|
|
|
nn, err := this.iprintf("%s, nn, err = encoder.ReadFloat%d(%s)\n", valueSource, typ.Bits)
|
|
|
|
nn, err := this.iprintf("%s, nn, err = decoder.ReadFloat%d(%s)\n", valueSource, typ.Bits)
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
nn, err = this.generateErrorCheck()
|
|
|
|
nn, err = this.generateErrorCheck()
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|