Examples of LuaString


Examples of org.luaj.vm2.LuaString

          BaseLib.loadStream( baselib.STDIN, "stdin" ):
          BaseLib.loadFile( args.checkjstring(1) );
      }
      case 6: // "loadstring", // ( string [,chunkname] ) -> chunk | nil, msg
      {
        LuaString script = args.checkstring(1);
        String chunkname = args.optjstring(2, "string");
        return BaseLib.loadStream(script.toInputStream(),chunkname);
      }
      case 7: // "pcall", // (f, arg1, ...) -> status, result1, ...
      {
        LuaValue func = args.checkvalue(1);
        LuaThread.onCall(this);
        try {
          return pcall(func,args.subargs(2),null);
        } finally {
          LuaThread.onReturn();
        }
      }
      case 8: // "xpcall", // (f, err) -> result1, ...       
      {
        LuaThread.onCall(this);
        try {
          return pcall(args.arg1(),NONE,args.checkvalue(2));
        } finally {
          LuaThread.onReturn();
        }
      }
      case 9: // "print", // (...) -> void
      {
        LuaValue tostring = LuaThread.getGlobals().get("tostring");
        for ( int i=1, n=args.narg(); i<=n; i++ ) {
          if ( i>1 ) baselib.STDOUT.write( '\t' );
          LuaString s = tostring.call( args.arg(i) ).strvalue();
          int z = s.indexOf((byte)0, 0);
          baselib.STDOUT.write( s.m_bytes, s.m_offset, z>=0? z: s.m_length );
        }
        baselib.STDOUT.println();
        return NONE;
      }
View Full Code Here

Examples of org.luaj.vm2.LuaString

   *
   * This function may receive optional options after the module name, where
   * each option is a function to be applied over the module.
   */
  public Varargs module(Varargs args) {
    LuaString modname = args.checkstring(1);
    int n = args.narg();
    LuaValue value = LOADED.get(modname);
    LuaValue module;
    if ( ! value.istable() ) { /* not found? */
     
 
View Full Code Here

Examples of org.luaj.vm2.LuaString

    int b, e=(-1);
    do {
      e = fname.indexOf(_DOT, b=e+1 );
      if ( e < 0 )
        e = fname.m_length;
      LuaString key = fname.substring(b, e);
      LuaValue val = table.rawget(key);
      if ( val.isnil() ) { /* no such field? */
        LuaTable field = new LuaTable(); /* new table for field */
        table.set(key, field);
        table = field;
View Full Code Here

Examples of org.luaj.vm2.LuaString

   *
   * If there is any error loading or running the module, or if it cannot find any loader for
   * the module, then require signals an error.
   */ 
  public LuaValue require( LuaValue arg ) {
    LuaString name = arg.checkstring();
    LuaValue loaded = LOADED.get(name);
    if ( loaded.toboolean() ) {
      if ( loaded == _SENTINEL )
        error("loop or previous error loading module '"+name+"'");
      return loaded;
View Full Code Here

Examples of org.luaj.vm2.LuaString

    args.checkstring(1);
    return varargsOf(NIL, valueOf("dynamic libraries not enabled"), valueOf("absent"));
  }

  LuaValue loader_preload( Varargs args ) {
    LuaString name = args.checkstring(1);
    LuaValue preload = PACKAGE.get(_PRELOAD).checktable();
    LuaValue val = preload.get(name);
    return val.isnil()?
      valueOf("\n\tno field package.preload['"+name+"']"):
      val;
View Full Code Here

Examples of org.luaj.vm2.LuaString

    public Object coerce(LuaValue value) {
      if ( value.isnil() )
        return null;
      if ( targetType == TARGET_TYPE_STRING )
        return value.tojstring();
      LuaString s = value.checkstring();
      byte[] b = new byte[s.m_length];
      s.copyInto(0, b, 0, b.length);
      return b;
    }
View Full Code Here

Examples of org.luaj.vm2.LuaString

   * Note that numerical codes are not necessarily portable across platforms.
   *
   * @param args the calling args
   */
  static Varargs byte_( Varargs args ) {
    LuaString s = args.checkstring(1);
    int l = s.m_length;
    int posi = posrelat( args.optint(2,1), l );
    int pose = posrelat( args.optint(3,posi), l );
    int n,i;
    if (posi <= 0) posi = 1;
    if (pose > l) pose = l;
    if (posi > pose) return NONE;  /* empty interval; return no values */
    n = (int)(pose -  posi + 1);
    if (posi + n <= pose/* overflow? */
        error("string slice too long");
    LuaValue[] v = new LuaValue[n];
    for (i=0; i<n; i++)
      v[i] = valueOf(s.luaByte(posi+i-1));
    return varargsOf(v);
  }
View Full Code Here

Examples of org.luaj.vm2.LuaString

   *
   * This function does not accept string values containing embedded zeros,
   * except as arguments to the q option.
   */
  static Varargs format( Varargs args ) {
    LuaString fmt = args.checkstring( 1 );
    final int n = fmt.length();
    Buffer result = new Buffer(n);
    int arg = 1;
    int c;
   
    for ( int i = 0; i < n; ) {
      switch ( c = fmt.luaByte( i++ ) ) {
      case '\n':
        result.append( "\n" );
        break;
      default:
        result.append( (byte) c );
        break;
      case L_ESC:
        if ( i < n ) {
          if ( ( c = fmt.luaByte( i ) ) == L_ESC ) {
            ++i;
            result.append( (byte)L_ESC );
          } else {
            arg++;
            FormatDesc fdsc = new FormatDesc(args, fmt, i );
            i += fdsc.length;
            switch ( fdsc.conversion ) {
            case 'c':
              fdsc.format( result, (byte)args.checkint( arg ) );
              break;
            case 'i':
            case 'd':
              fdsc.format( result, args.checkint( arg ) );
              break;
            case 'o':
            case 'u':
            case 'x':
            case 'X':
              fdsc.format( result, args.checklong( arg ) );
              break;
            case 'e':
            case 'E':
            case 'f':
            case 'g':
            case 'G':
              fdsc.format( result, args.checkdouble( arg ) );
              break;
            case 'q':
              addquoted( result, args.checkstring( arg ) );
              break;
            case 's': {
              LuaString s = args.checkstring( arg );
              if ( fdsc.precision == -1 && s.length() >= 100 ) {
                result.append( s );
              } else {
                fdsc.format( result, s );
              }
            }  break;
View Full Code Here

Examples of org.luaj.vm2.LuaString

   *
   * For this function, a '^' at the start of a pattern does not work as an anchor,
   * as this would prevent the iteration.
   */
  static Varargs gmatch( Varargs args ) {
    LuaString src = args.checkstring( 1 );
    LuaString pat = args.checkstring( 2 );
    return new GMatchAux(args, src, pat);
  }
View Full Code Here

Examples of org.luaj.vm2.LuaString

   *       local t = {name="lua", version="5.1"}
   *       x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t)
   *       --> x="lua-5.1.tar.gz"
   */
  static Varargs gsub( Varargs args ) {
    LuaString src = args.checkstring( 1 );
    final int srclen = src.length();
    LuaString p = args.checkstring( 2 );
    LuaValue repl = args.arg( 3 );
    int max_s = args.optint( 4, srclen + 1 );
    final boolean anchor = p.length() > 0 && p.charAt( 0 ) == '^';
   
    Buffer lbuf = new Buffer( srclen );
    MatchState ms = new MatchState( args, src, p );
   
    int soffset = 0;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.