⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enumerate.lua

📁 脚本编程语言
💻 LUA
字号:
-- tolua: enumerate class-- Written by Waldemar Celes-- TeCGraf/PUC-Rio-- Jul 1998-- $Id: enumerate.lua,v 1.3 2000/01/24 20:41:15 celes Exp $-- This code is free software; you can redistribute it and/or modify it.-- The software provided hereunder is on an "as is" basis, and-- the author has no obligation to provide maintenance, support, updates,-- enhancements, or modifications. -- Enumerate class-- Represents enumeration-- The following fields are stored:--    {i} = list of constant namesclassEnumerate = {}classEnumerate.__index = classEnumeratesetmetatable(classEnumerate,classFeature)-- register enumerationfunction classEnumerate:register () local nspace = getnamespace(classContainer.curr) local i=1 while self[i] do  output(' tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');')  i = i+1 endend-- Print methodfunction classEnumerate:print (ident,close) print(ident.."Enumerate{") print(ident.." name = "..self.name) local i=1 while self[i] do  print(ident.." '"..self[i].."'("..self.lnames[i].."),")  i = i+1 end print(ident.."}"..close)end-- Internal constructorfunction _Enumerate (t) setmetatable(t,classEnumerate) append(t) appendenum(t) return tend-- Constructor-- Expects a string representing the enumerate bodyfunction Enumerate (n,b) local t = split(strsub(b,2,-2),',') -- eliminate braces local i = 1 local e = {n=0} while t[i] do  local tt = split(t[i],'=')  -- discard initial value  e.n = e.n + 1  e[e.n] = tt[1]  i = i+1 end -- set lua names i  = 1 e.lnames = {} while e[i] do  local t = split(e[i],'@')  e[i] = t[1]		if not t[2] then		 t[2] = applyrenaming(t[1])		end  e.lnames[i] = t[2] or t[1]  i = i+1 end 	e.name = n Typedef("int "..n) return _Enumerate(e)end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -