Package org.luaj.vm2.ast

Examples of org.luaj.vm2.ast.Visitor


                // Traverse the directions table.
                LuaValue key = LuaValue.NIL;
                while (true) {

                    Varargs keyValue = directionsTable.next(key);
                    key = keyValue.arg1();
                    if (key.isnil()) {
                        break;
                    }
                    LuaValue directionTable = keyValue.arg(2);

                    int x = directionTable.get("x").checkint();
                    int y = directionTable.get("y").checkint();
                    int frameWidth = directionTable.get("frame_width").checkint();
                    int frameHeight = directionTable.get("frame_height").checkint();
View Full Code Here


        final int testCount        = tests.get("count").toint();
        final LuaValue provideFunc = tests.get("provide");
        final LuaValue runFunc     = tests.get("run");

        for (int i=1; i<testCount+1; i++) {
            final Varargs provideValue = provideFunc.invoke(valueOf(i));
            final LuaValue name = provideValue.arg(2);
            final String expected = provideValue.arg(3).checkjstring();

            Description testDescription = Description.createTestDescription(getClass(), name.toString());

            if (isIgnored(testDescription)) {
                notifier.fireTestIgnored(testDescription);
View Full Code Here

    }
   
    private void multiAssign(final List varsOrNames, List<Exp> exps) {
      final boolean[] needsTmpvarsMultiAssign = { false };
      if ( exps.size() > 1 ) {
        new Visitor() {
          public void visit(FuncBody body) {}
          public void visit(FieldExp exp) { needsTmpvarsMultiAssign[0] = true; }
          public void visit(FuncCall exp) { needsTmpvarsMultiAssign[0] = true; }
          public void visit(IndexExp exp) { needsTmpvarsMultiAssign[0] = true; }
          public void visit(MethodCall exp) { needsTmpvarsMultiAssign[0] = true; }
View Full Code Here

          singleVarOrNameAssign( varsOrNames.get(i), "NIL" );
      }
    }
   
    private void singleVarOrNameAssign(final Object varOrName, final String valu) {
      Visitor v = new Visitor() {
        public void visit(FieldExp exp) {
          outl(evalLuaValue(exp.lhs)+".set("+evalStringConstant(exp.name.name)+","+valu+");");
        }
        public void visit(IndexExp exp) {
          outl(evalLuaValue(exp.lhs)+".set("+evalLuaValue(exp.exp)+","+valu+");");
View Full Code Here

      return popWriter(x);
    }
   
    public String evalBoolean(Exp exp) {
      Writer x = pushWriter();
      exp.accept(new Visitor() {
        public void visit(UnopExp exp) {
          switch ( exp.op ) {
          case Lua.OP_NOT:
            String rhs = evalBoolean( exp.rhs );
            out( "true".equals(rhs)? "false":
View Full Code Here

      return popWriter(x);
    }
   
    public String evalNumber(Exp exp) {
      Writer x = pushWriter();
      exp.accept(new Visitor() {
        public void visit(UnopExp exp) {
          switch ( exp.op ) {
          case Lua.OP_LEN: out(evalLuaValue(exp.rhs)+".length()"); break;
          case Lua.OP_UNM: out("(-"+evalNumber(exp.rhs)+")"); break;
          default: out(evalLuaValue(exp)+".checkdouble()"); break;
View Full Code Here

    // functions that use themselves as upvalues require special treatment
    public void visit(LocalFuncDef stat) {
      final Name funcname = stat.name;
      final boolean[] isrecursive = { false };
      stat.body.accept( new Visitor() {
        public void visit(Name name) {
          if ( name.variable == funcname.variable ) {
            isrecursive[0] = true;
            name.variable.hasassignments = true;
          }
View Full Code Here

    packageLib = new PackageLib();
    globals.load(packageLib);
    //globals.load(new Bit32Lib()); // not needed for 5.1 compatibility 
    globals.load(new TableLib());
    globals.load(new StringLib());
    globals.load(new CoroutineLib());
    globals.load(new JseMathLib());
    globals.load(new JseIoLib());
    globals.load(new JseOsLib());
    globals.load(new LuajavaLib());
    globals.load(new DebugLib());
View Full Code Here

    globals.load(new CoroutineLib());
    globals.load(new JseMathLib());
    globals.load(new JseIoLib());
    globals.load(new JseOsLib());
    globals.load(new LuajavaLib());
    globals.load(new DebugLib());
    globals.load(new LuaBytesLib(this));
    globals.load(new LuaListLib(this));
    globals.load(new LuaMapLib(this));
    globals.load(new LuaStreamLib(this));
    LuaC.install();
View Full Code Here

        return table;
    }

    private LuaValue getUrl() {

        return new LibFunction() {
            /**
             *  $text, $which, $query = null, $proto = null
             */
            @Override public Varargs invoke(Varargs args) {
                return NIL;
View Full Code Here

TOP

Related Classes of org.luaj.vm2.ast.Visitor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.