use of org.osate.aadl2.Prototype in project RapidView by Tencent.
the class DebugLib method getfuncname.
// Return the name info if found, or null if no useful information could be found.
static NameWhat getfuncname(DebugLib.CallFrame frame) {
if (!frame.f.isclosure())
return new NameWhat(frame.f.classnamestub(), "Java");
Prototype p = frame.f.checkclosure().p;
int pc = frame.pc;
int i = p.code[pc];
/* calling instruction */
LuaString tm;
switch(Lua.GET_OPCODE(i)) {
case Lua.OP_CALL:
case Lua.OP_TAILCALL:
/* get function name */
return getobjname(p, pc, Lua.GETARG_A(i));
case Lua.OP_TFORCALL:
/* for iterator */
return new NameWhat("(for iterator)", "(for iterator");
/* all other instructions can call only through metamethods */
case Lua.OP_SELF:
case Lua.OP_GETTABUP:
case Lua.OP_GETTABLE:
tm = LuaValue.INDEX;
break;
case Lua.OP_SETTABUP:
case Lua.OP_SETTABLE:
tm = LuaValue.NEWINDEX;
break;
case Lua.OP_EQ:
tm = LuaValue.EQ;
break;
case Lua.OP_ADD:
tm = LuaValue.ADD;
break;
case Lua.OP_SUB:
tm = LuaValue.SUB;
break;
case Lua.OP_MUL:
tm = LuaValue.MUL;
break;
case Lua.OP_DIV:
tm = LuaValue.DIV;
break;
case Lua.OP_MOD:
tm = LuaValue.MOD;
break;
case Lua.OP_POW:
tm = LuaValue.POW;
break;
case Lua.OP_UNM:
tm = LuaValue.UNM;
break;
case Lua.OP_LEN:
tm = LuaValue.LEN;
break;
case Lua.OP_LT:
tm = LuaValue.LT;
break;
case Lua.OP_LE:
tm = LuaValue.LE;
break;
case Lua.OP_CONCAT:
tm = LuaValue.CONCAT;
break;
default:
return null;
}
return new NameWhat(tm.tojstring(), "metamethod");
}
use of org.osate.aadl2.Prototype in project RapidView by Tencent.
the class FuncState method code.
int code(int instruction, int line) {
Prototype f = this.f;
this.dischargejpc();
/* put new instruction in code array */
if (f.code == null || this.pc + 1 > f.code.length)
f.code = LuaC.realloc(f.code, this.pc * 2 + 1);
f.code[this.pc] = instruction;
/* save corresponding line information */
if (f.lineinfo == null || this.pc + 1 > f.lineinfo.length)
f.lineinfo = LuaC.realloc(f.lineinfo, this.pc * 2 + 1);
f.lineinfo[this.pc] = line;
return this.pc++;
}
use of org.osate.aadl2.Prototype in project RapidView by Tencent.
the class FuncState method addk.
int addk(LuaValue v) {
if (this.h == null) {
this.h = new Hashtable();
} else if (this.h.containsKey(v)) {
return ((Integer) h.get(v)).intValue();
}
final int idx = this.nk;
this.h.put(v, new Integer(idx));
final Prototype f = this.f;
if (f.k == null || nk + 1 >= f.k.length)
f.k = realloc(f.k, nk * 2 + 1);
f.k[this.nk++] = v;
return idx;
}
use of org.osate.aadl2.Prototype in project RapidView by Tencent.
the class LexState method parlist.
/* }====================================================================== */
void parlist() {
/* parlist -> [ param { `,' param } ] */
FuncState fs = this.fs;
Prototype f = fs.f;
int nparams = 0;
f.is_vararg = 0;
if (this.t.token != ')') {
/* is `parlist' not empty? */
do {
switch(this.t.token) {
case TK_NAME:
{
/* param . NAME */
this.new_localvar(this.str_checkname());
++nparams;
break;
}
case TK_DOTS:
{
/* param . `...' */
this.next();
f.is_vararg = 1;
break;
}
default:
this.syntaxerror("<name> or " + LUA_QL("...") + " expected");
}
} while ((f.is_vararg == 0) && this.testnext(','));
}
this.adjustlocalvars(nparams);
f.numparams = fs.nactvar;
fs.reserveregs(fs.nactvar);
/* reserve register for parameters */
}
use of org.osate.aadl2.Prototype in project RapidView by Tencent.
the class LuaJC method compileAll.
public Hashtable compileAll(Reader script, String chunkname, String filename, Globals globals, boolean genmain) throws IOException {
final String classname = toStandardJavaClassName(chunkname);
final Prototype p = globals.compilePrototype(script, classname);
return compileProtoAndSubProtos(p, classname, filename, genmain);
}
Aggregations