Click here to Skip to main content
15,879,326 members
Articles / Programming Languages / Lua

ObjectScript: A new programming language

Rate me:
Please Sign up or sign in to vote.
4.24/5 (6 votes)
9 Oct 2012MIT9 min read 66.5K   107   21  
The ObjectScript is a new programing language that mixes benefits of JavaScript, Lua, and PHP. The ObjectScript has syntax from JavaScript, multiple results from Lua, OOP from PHP and much more.
[FILE] ../../examples-os/add_user_module.os
[1] for(var i, s in ["123", "12w", 1234, " df", "    "]){

begin function
  begin locals, total 6
    0 _E
    1 _G
  end locals
  begin scope
    begin locals 4
      2 i
      3 s
      4 #func
      5 #valid
    end locals
    new local var i (2 0)

    new local var s (3 0)

    new local var #func (4 0 temp)

    new local var #valid (5 0 temp)

    begin code list
      begin set local var
        begin call method
          begin array 5
            begin set auto index
              push const string "123"
            end set auto index
            ,
            begin set auto index
              push const string "12w"
            end set auto index
            ,
            begin set auto index
              push const number 1234
            end set auto index
            ,
            begin set auto index
              push const string " df"
            end set auto index
            ,
            begin set auto index
              push const string "    "
            end set auto index
          end array
          begin params 1
            push const string "__iter"
          end params ret values 1
        end call method ret values 1
      end set local var #func (4 0 temp)

      begin loop
        begin set local var
          begin set local var
            begin set local var
              begin call
                get local var #func (4 0 temp)
                begin params 0
                end params ret values 0
              end call ret values 3
            end set local var s (3 0)
          end set local var i (2 0)
        end set local var #valid (5 0 temp)

        begin if
          begin bool exp
            begin logic not
              get local var #valid (5 0 temp)
            end logic not
          end bool exp
          begin then
            break
          end then
        end if ret values 0


[2] print("my.isdigit("..s..") = "my.isdigit(s)" my.hash("..s..") = "my.hash(s))

        begin scope
          begin call method
            get local var _E (0 0)
            begin params 5
              push const string "print"
              ,
              begin operator ..
                begin operator ..
                  push const string "my.isdigit("
                  get local var s (3 0)
                end operator ..
                push const string ") = "
              end operator ..
              ,
              begin call method
                get env var my
                begin params 2
                  push const string "isdigit"
                  ,
                  get local var s (3 0)
                end params ret values 2
              end call method ret values 1
              ,
              begin operator ..
                begin operator ..
                  push const string " my.hash("
                  get local var s (3 0)
                end operator ..
                push const string ") = "
              end operator ..
              ,
              begin call method
                get env var my
                begin params 2
                  push const string "hash"
                  ,
                  get local var s (3 0)
                end params ret values 2
              end call method ret values 1
            end params ret values 5
          end call method ret values 0
        end scope ret values 0
      end loop ret values 0
    end code list ret values 0
  end scope ret values 0

  begin code list
    begin return
      get local var _E (0 0)
    end return values 1
  end code list ret values 0
end function

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions