主权项 |
面向三维对象控制的脚本语言系统,其特征在于包括:语法定义文件:定义脚本语言语法规则,该语法规则覆盖对象参数设置、运动过程控制、漫游控制和场景设置,该语法规则存储在语法定义文件中;语法定义支持模块:对语法定义文件中存有的脚本语言语法规则进行解析,分离出终结符、非终结符和关键字,并对语法定义文件中的标识符进行识别,所述的脚本语言语法规则由终结符、非终结符和关键字组成,同时基于终结符、非终结符、关键字和识别出的语法定义文件中的标识符,把语法定义文件中的语法规则通过索引的形式映射到语法规则表,解析完成后分别形成终结符号表、非终结符号表、关键字表以及语法规则表,然后基于终结符号表和非终结符号表以及语法规则表再计算出每一个终结符、非终结符的first集以及非终结符的follow集,最后基于每个非终结符的first集和follow集以及语法规则表映射形成预测分析表,再将终结符、非终结符及每个非终结符的first集和follow集、关键字、语法规则表和预测分析表存放在解析结果文件中,供词法分析模块、语法分析模块和语义分析模块调用;词法分析模块:对用户按照语法定义文件中的脚本语言语法规则编写的脚本进行词法分析,通过调用解析结果文件检查脚本中的每一个单词是否符合语法定义规则,确定每个单词的属性是NUM、IDENTIFIER和STRING中的哪一种,并以单词串的形式输出至语法分析模块;语法语义分析模块:根据解析结果文件中的预测分析表,对词法分析模块输出的单词串进行语法分析,检查单词串中语句是否符合语法规则表中的语法规则,每分析完单词串的一个语句,判断该语句是否符合语法定义文件中的语法规则,如果不符合该语句的构成,该语句的构成包括终结符、非终结符和关键字,则报告脚本中存在错误,语法分析终止,如果符合便得到该语句的构成,则对该语句的构成进行语义分析,判断该语句的构成为终结符、非终结符和关键字中哪一种符号,并进行相应的存储;当所有的单词串中的所有语句进行语义分析完后,所有语句的构成形成语义分析树,各语句存放在语法分析树的节点中;语义解释模块:遍历语法语义分析模块形成的语义分析树,完成对该语义分析树中各节点中存放的语句的解释,将解释后的语句内容作为参数放置在事件等待链表中等待绘制引擎模块触发执行;绘制引擎模块:提供整个系统的运行框架,在用户请求时,加载词法分析模块、语法语义分析模块、语义解释模块对脚本进行词法分析、语法语义分析和语义解释;同时在该框架下检查事件等待链表中是否有达到该语句所描述事件的触发时刻,如果有,则解释执行该语句然后继续按照运行框架运行,如果没有,则继续按照运行框架运行。 |