
Description="Lua (for LuaTeX)"

Keywords={
  { Id=1,
    List={"and", "break", "do", "else", "elseif", "end", "false", "for", "function", 
            "if", "in", "local", "nil", "not", "or", "repeat", "return", "then", 
            "true", "until", "while"},
  },
  { Id=2,
    List={"number", "string", "function", "userdata", "table", "assert", "call", 
        "collectgarbage", "copytagmethods", "dofile", "dostring", "error", "foreach", 
        "foreachi", "getglobal", "getn", "", "gettagmethod", "", "globals", "newtag", 
        "next", "print", "rawget", "rawset", "setglobal", "settag", "", "settagmethod", 
        "sort", "tag", "tonumber", "tostring", "tinsert", "tremove", "type", "", "abs", 
        "", "acos", "", "asin", "", "atan", "", "atan2", "ceil", "cos", "deg", "exp", 
        "floor", "log", "", "log10", "max", "min", "mod", "rad", "sin", "sqrt", "tan", 
        "frexp", "ldexp", "random", "randomseed", "openfile", "closefile", "readfrom", 
        "writeto", "appendto", "remove", "rename", "flush", "seek", "tmpname", "read", 
        "", "write", "clock", "date", "execute", "exit", "getenv", "setlocale", 
        "strbyte", "strchar", "strfind", "strlen", "strlower", "strrep", "strsub", 
        "strupper", "format", "gsub"},
  },
  { Id=4,
    Regex=[[(\w+)\s*\(]],
  },
}

Strings={
  Delimiter=[["|']],
}

IgnoreCase=false

Comments={
-- this differs from lua.lang
  { Block=false,
    Delimiter= { [[%]] },
  },
  { Block=true,
    Nested=false,
    Delimiter= { [[ \-\-\[\[ ]],[[ \]\] ]],}
  }
}

Operators=[[\(|\)|\{|\}|\[|\]|\,|\;|\.|\:|\&|<|>|\!|\=|\/|\*|\+|\-|\~|\#|\\|\%]]
