MCPcopy Create free account
hub / github.com/Hiro420/NikkeTools / LConstantType50

Class LConstantType50

UnLuac/src/unluac/parse/LConstantType.java:23–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21}
22
23class LConstantType50 extends LConstantType {
24
25 @Override
26 public LObject parse(ByteBuffer buffer, BHeader header) {
27 int type = 0xFF & buffer.get();
28 if(header.debug) {
29 System.out.print("-- parsing <constant>, type is ");
30 switch(type) {
31 case 0:
32 System.out.println("<nil>");
33 break;
34 case 1:
35 System.out.println("<boolean>");
36 break;
37 case 3:
38 System.out.println("<number>");
39 break;
40 case 4:
41 System.out.println("<string>");
42 break;
43 default:
44 System.out.println("illegal " + type);
45 break;
46 }
47 }
48 switch(type) {
49 case 0:
50 return LNil.NIL;
51 case 1:
52 return header.bool.parse(buffer, header);
53 case 3:
54 return header.number.parse(buffer, header);
55 case 4:
56 return header.string.parse(buffer, header);
57 default:
58 throw new IllegalStateException();
59 }
60 }
61
62 @Override
63 public void write(OutputStream out, BHeader header, LObject object) throws IOException {
64 if(object instanceof LNil) {
65 out.write(0);
66 } else if(object instanceof LBoolean) {
67 out.write(1);
68 header.bool.write(out, header, (LBoolean)object);
69 } else if(object instanceof LNumber) {
70 out.write(3);
71 header.number.write(out, header, (LNumber)object);
72 } else if(object instanceof LString) {
73 out.write(4);
74 header.string.write(out, header, (LString)object);
75 } else {
76 throw new IllegalStateException();
77 }
78 }
79
80}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected