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

📄 glfrontend.rb

📁 ROBOCUP 仿真3D server 源码
💻 RB
字号:
# GLFrontEnd    -*- mode: ruby; ruby-indent-level: 4 -*-## The front end is responsible for parsing the glext-header filesrequire 'script/glextension.rb'module GLExtGen    class GLFrontEnd	attr_accessor :files		def initialize	    @files = []	end	# insert a tuple of scan arguments	def addFile (fileName, extensionExp, functionExp, extensionHash)	    files.concat([[fileName, Regexp.new(extensionExp), 				 Regexp.new(functionExp), extensionHash]])	end	# scan the files registered	def scanAll	    files.each { |item|		print "Digesting '" + item[0] + "'...\n"		scan(item[0], item[1], item[2], item[3]) 	    }	end	def scan (fileName, extensionExp, functionExp, extensionHash)            predefinedExp = Regexp.new("(.*)APIENTRY gl(.*) \\((.*)");	    currentExtension = nil	    File.open(fileName).each { |line|		if line =~ /^(\s*)(\/+)(.*) (gl\w+)/		    print "removing misleading line ", line		elsif md = predefinedExp.match(line)		    print "predefined fct gl", md[2], ":\n"		elsif md = extensionExp.match(line)		    extensionName = md[2]		    currentExtension = extensionHash[extensionName]		    # if we don't know the extension, we have to add it		    if currentExtension == nil			currentExtension = GLExtension.new(extensionName)			extensionHash[extensionName] = currentExtension		    end		    # at this point currentExtension has a valid 		    # GLExtension object ... always!		elsif md = functionExp.match(line)		    # add the function name to the current Extension		    functionName = md[2]		    if currentExtension != nil			currentExtension.addFunction(functionName)		    end		end	    }	end		def procize (functionName)	    "PFN"+functionName.upcase+"PROC"	end    endend

⌨️ 快捷键说明

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