欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

代碼生成方法及系統(tǒng)的制作方法

文檔序號(hào):6432282閱讀:121來源:國知局
專利名稱:代碼生成方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種代碼生成方法及系統(tǒng)。
背景技術(shù)
傳統(tǒng)的代碼生成工具主要分為兩大類,一類是以微軟公司的Virtual Studio提供的MFC編譯環(huán)境、采用可視圖形界面的操作模式,通過內(nèi)置的圖形解析模塊,將用戶搭建的圖形界面按照內(nèi)置的圖形解析模塊轉(zhuǎn)換為C++代碼,通過編譯鏈接生成對(duì)應(yīng)的應(yīng)用程序, 業(yè)界稱為“所見即所得”模式。該模式的好處是利用MFC集成編譯環(huán)境,降低了對(duì)程序員的入門要求,能夠更快地將產(chǎn)品推向市場,但是缺點(diǎn)也非常明顯,首先是內(nèi)置的圖形解析模塊解析模式為固定模式,用戶只能根據(jù)MFC內(nèi)置的解析方法來進(jìn)行代碼生成,因而無法快速響應(yīng)用戶不同需求,代碼生成規(guī)則無法進(jìn)行配置,代碼生成手段過于單一,在代碼生成模式的靈活性方面有重大缺陷。因此,在進(jìn)行大型軟件開發(fā)和滿足高品質(zhì)軟件產(chǎn)品的代碼需求方面存在先天不足,故限制了 MFC的使用和推廣,因而目前業(yè)界的大型軟件開發(fā)均沒有使用MFC的案例。另一類是愛立信APG40、美國IMAG公司的ASmc為代表的代碼轉(zhuǎn)換工具,用于復(fù)雜通信協(xié)議的數(shù)據(jù)解碼,通過提取通信協(xié)議中的關(guān)鍵字段,利用腳本進(jìn)行規(guī)則匹配,可以很好地解決ASN. 1類型的通信協(xié)議編解碼程序的代碼生成。該類型代碼生成工具的特點(diǎn)是通過導(dǎo)入不同的通信協(xié)議描述文件,增加了代碼生成工具的靈活性和適用范圍,缺陷主要在于代碼生成規(guī)則依然不能進(jìn)行實(shí)時(shí)配置,對(duì)新協(xié)議規(guī)范無法兼容,代碼生成工具升級(jí)維護(hù)成本過高,因此推廣困難??梢姡瑹o論是上述哪種代碼生成工具,在生成代碼時(shí)都存在代碼生成規(guī)則較為固定,無法滿足用戶對(duì)代碼生成規(guī)則進(jìn)行靈活配置的需求。

發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種代碼生成方法及系統(tǒng),以至少解決上述現(xiàn)有技術(shù)的代碼生成工具在生成代碼時(shí)不夠靈活的問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種代碼生成方法,包括獲取用戶使用解釋性語言配置的代碼生成規(guī)則和流程控制規(guī)則;使用流程控制規(guī)則解析用戶輸入的數(shù)據(jù)控制流程,獲得流程控制源文件;根據(jù)流程控制源文件和用戶輸入的數(shù)據(jù)源文件,使用代碼生成規(guī)則生成代碼。根據(jù)本發(fā)明的另一方面,提供了一種代碼生成系統(tǒng),包括第一獲取模塊,用于獲取用戶使用解釋性語言配置的代碼生成規(guī)則和流程控制規(guī)則;數(shù)據(jù)流程解析引擎,用于使用流程控制規(guī)則解析用戶輸入的數(shù)據(jù)控制流程,獲得流程控制源文件;生成模塊,用于根據(jù)流程控制源文件和用戶輸入的數(shù)據(jù)源文件,使用代碼生成規(guī)則生成代碼。通過本發(fā)明,采用解釋性語言配置代碼生成規(guī)則和流程控制規(guī)則,充分利用了解釋性語言解釋執(zhí)行的特點(diǎn),使得用戶可以根據(jù)需求,在代碼生成過程中靈活配置代碼生成
4規(guī)則和流程控制規(guī)則,生成符合用戶需求的代碼文件,從而解決了現(xiàn)有技術(shù)的代碼生成工具在生成代碼時(shí)不夠靈活的問題,進(jìn)而達(dá)到了增強(qiáng)代碼生成工具靈活性的效果。


此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)本發(fā)明實(shí)施例一的一種代碼生成方法的步驟流程圖;圖2是根據(jù)本發(fā)明實(shí)施例二的一種代碼生成方法的步驟流程圖;圖3是根據(jù)本發(fā)明實(shí)施例三的一種代碼生成方法的步驟流程圖;圖4是根據(jù)本發(fā)明實(shí)施例四的一種代碼生成系統(tǒng)的結(jié)構(gòu)框圖;圖5是根據(jù)本發(fā)明實(shí)施例五的一種代碼生成系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。實(shí)施例一參照圖1,示出了根據(jù)本發(fā)明實(shí)施例一的一種代碼生成方法的步驟流程圖。本實(shí)施例的代碼生成方法包括以下步驟步驟S102 獲取用戶使用解釋性語言配置的代碼生成規(guī)則和流程控制規(guī)則;本實(shí)施例中,代碼生成規(guī)則和流程控制規(guī)則由用戶使用解釋性語言編寫,根據(jù)需要靈活配置。解釋性語言如腳本語言無須編譯,可解釋執(zhí)行,便于用戶實(shí)時(shí)、動(dòng)態(tài)對(duì)代碼生成規(guī)則和流程控制規(guī)則進(jìn)行配置。步驟S104 使用流程控制規(guī)則解析用戶輸入的數(shù)據(jù)控制流程,獲得流程控制源文件;本步驟中,對(duì)用戶輸入的數(shù)據(jù)控制流程,使用解釋性語言編寫的流程控制規(guī)則進(jìn)行解析,獲取流程控制源文件,以對(duì)生成的代碼的流程進(jìn)行控制。步驟S106 根據(jù)流程控制源文件和用戶輸入的數(shù)據(jù)源文件,使用代碼生成規(guī)則生成代碼。本步驟中,使用解釋性語言編寫的代碼生成規(guī)則,對(duì)流程控制源文件和用戶輸入的數(shù)據(jù)源文件進(jìn)行解析和轉(zhuǎn)化,最終生成代碼。相關(guān)技術(shù)中,代碼生成工具在生成代碼時(shí)不夠靈活。通過本實(shí)施例,采用解釋性語言配置代碼生成規(guī)則和流程控制規(guī)則,充分利用了解釋性語言解釋執(zhí)行的特點(diǎn),使得用戶可以根據(jù)需求,在代碼生成過程中靈活配置代碼生成規(guī)則和流程控制規(guī)則,生成符合用戶需求的代碼文件,從而解決了現(xiàn)有技術(shù)的代碼生成工具在生成代碼時(shí)不夠靈活的問題,進(jìn)而達(dá)到了增強(qiáng)代碼生成工具靈活性的效果。實(shí)施例二參照圖2,示出了根據(jù)本發(fā)明實(shí)施例二的一種代碼生成方法的步驟流程圖。本實(shí)施例的代碼生成方法包括以下步驟步驟S202 用戶使用解釋性語言配置代碼生成規(guī)則和流程控制規(guī)則。
本步驟中,用戶可以通過輸入界面,如用戶接口 UI界面,使用解釋性語言編寫輸入代碼生成規(guī)則和流程控制規(guī)則。當(dāng)然,該代碼生成規(guī)則和流程控制規(guī)則也可以是預(yù)先設(shè)置好的,在本次代碼生成中可以進(jìn)行重復(fù)使用或可以進(jìn)行編輯的。步驟S204 用戶輸入數(shù)據(jù)控制流程和數(shù)據(jù)源文件。本步驟中,用戶可以通過UI界面輸入數(shù)據(jù)控制流程和數(shù)據(jù)源文件。但不限于此, 在實(shí)際使用中,用戶也可以采用其它任意適當(dāng)方式輸入數(shù)據(jù)控制流程和數(shù)據(jù)源文件。其中,數(shù)據(jù)控制流程主要包括代碼數(shù)據(jù)處理流程、輸入輸出參數(shù)、和代碼調(diào)用順序。數(shù)據(jù)控制流程可以包括上述全部,也可以包括其中之一或部分。步驟S206 使用流程控制規(guī)則解析用戶輸入的數(shù)據(jù)控制流程,獲得流程控制源文件。本步驟中,在用戶輸入數(shù)據(jù)控制流程后,系統(tǒng)使用解釋性語言編寫的流程控制規(guī)則對(duì)數(shù)據(jù)控制流程進(jìn)行解析,獲得流程控制源文件。其中,流程控制源文件可以包括函數(shù)名、函數(shù)調(diào)用信息、和函數(shù)實(shí)現(xiàn)。函數(shù)實(shí)現(xiàn)可以以空函數(shù)預(yù)先填充。步驟S208 通過基于正則表達(dá)式的源文件數(shù)據(jù)驅(qū)動(dòng)引擎,對(duì)數(shù)據(jù)源文件和流程控制文件進(jìn)行匹配,獲取數(shù)據(jù)源文件的關(guān)鍵信息和流程控制文件的關(guān)鍵信息。源文件數(shù)據(jù)驅(qū)動(dòng)引擎主要用于對(duì)數(shù)據(jù)源文件和流程控制源文件的解析,其通過解釋性語言的正則表達(dá)式功能,對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配,提取關(guān)鍵信息,進(jìn)而交由后續(xù)流程進(jìn)行處理。其中,對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配的關(guān)鍵是采用正則表達(dá)式, 對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行關(guān)鍵字的提取和匹配,正則表達(dá)式(regular expression)就是用一個(gè)“字符串”來描述一個(gè)特征,然后去驗(yàn)證另一個(gè)“字符串”是否符合這個(gè)特征。比如,表達(dá)式“ab+”描述的特征是“一個(gè)'a'和任意個(gè)'b' ”,那么'ab' , ‘ abb',‘ abbbbbbbbbb'都符合這個(gè)特征。當(dāng)查找到符合預(yù)期的關(guān)鍵字時(shí), 也就是匹配成功,則將關(guān)鍵信息進(jìn)行提取。其中,關(guān)鍵信息包含函數(shù)名、函數(shù)調(diào)用信息、函數(shù)中數(shù)據(jù)類型的組成、以及函數(shù)輸入?yún)?shù)和輸出參數(shù)。關(guān)鍵信息的作用是為后續(xù)生成代碼使用,代碼的組成分成兩類(1)數(shù)據(jù)結(jié)構(gòu)包括函數(shù)類型,參數(shù)類型,結(jié)構(gòu)體變量構(gòu)成,類結(jié)構(gòu);(2)算法包括輸入輸出參數(shù)順序,函數(shù)調(diào)用順序。步驟S210 根據(jù)數(shù)據(jù)源文件的關(guān)鍵信息和流程控制文件的關(guān)鍵信息,使用代碼生成規(guī)則生成代碼。本步驟中,若系統(tǒng)中配置有默認(rèn)的待生成的代碼語言類型(如JAVA),則可以將數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息進(jìn)行轉(zhuǎn)化,按照默認(rèn)的代碼語言類型風(fēng)格生成代碼。優(yōu)選地,可以提前配置不同的待生成的代碼語言類型,如在步驟S202中配置,則在生成代碼時(shí),按照不同的代碼語言類型風(fēng)格生成不同類型的代碼。優(yōu)選地,可以根據(jù)不同的待生成的代碼語言類型,配置編寫不同的代碼生成規(guī)則, 則在生成代碼時(shí),按照不同的代碼語言類型風(fēng)格,選擇相對(duì)應(yīng)的代碼生成規(guī)則生成代碼。優(yōu)選地,還可以使用解釋性語言自帶的語法檢查工具對(duì)生成的代碼進(jìn)行有效性檢查,以提高代碼生成效率和正確性。
通過本實(shí)施例,用戶可以通過“所見即所得”的用戶界面輸入解釋性語言編寫的代碼生成規(guī)則和流程控制規(guī)則,進(jìn)而使用該代碼生成規(guī)則和流程控制規(guī)則對(duì)用戶輸入的數(shù)據(jù)控制流程和數(shù)據(jù)源文件進(jìn)行解析,進(jìn)而生成所需的代碼,從而有效解決了現(xiàn)有技術(shù)的代碼生成工具在生成代碼時(shí)不夠靈活的問題,達(dá)到了增強(qiáng)代碼生成工具靈活性的效果。實(shí)施例三參照圖3,示出了根據(jù)本發(fā)明實(shí)施例三的一種代碼生成方法的步驟流程圖。本實(shí)施例的代碼生成方法包括以下步驟步驟S302 用戶通過UI界面進(jìn)行輸入,輸入項(xiàng)包括配置代碼生成規(guī)則、流程控制規(guī)則、和欲生成的代碼語言類型。然后,利用提供的圖形模型對(duì)欲生成的代碼數(shù)據(jù)處理流程、輸入輸出參數(shù)、代碼調(diào)用順序進(jìn)行描述和控制,在UI界面上完成對(duì)生成代碼的描述,即在“所見即所得”的顯示模式下進(jìn)行上述輸入(即輸入數(shù)據(jù)控制流程和數(shù)據(jù)源文件)。步驟S304 通過讀取配置的流程控制規(guī)則,選擇對(duì)應(yīng)的流程控制解析模式。其中,流程控制規(guī)則采用解釋性語言進(jìn)行編寫,由于是非編譯性語言,因此可以做到進(jìn)行實(shí)時(shí)更改和重新配置,以適應(yīng)不同用戶的需求。步驟S306 根據(jù)讀取的流程控制規(guī)則,對(duì)用戶輸入的數(shù)據(jù)控制流程進(jìn)行解析。其中,主要解析項(xiàng)為輸入輸出參數(shù),函數(shù)調(diào)用順序等信息。步驟S308 生成流程控制源文件。其中,該流程控制源文件描述了用戶準(zhǔn)備生成代碼的整體架構(gòu)和控制流程,包括函數(shù)名,函數(shù)調(diào)用信息,函數(shù)實(shí)現(xiàn)以空函數(shù)預(yù)先填充。步驟S310 獲取數(shù)據(jù)源文件。其中,數(shù)據(jù)源文件也可動(dòng)態(tài)實(shí)時(shí)配置,是代碼生成中的具體信息部分。數(shù)據(jù)源文件中包含了生成代碼中具體數(shù)據(jù)結(jié)構(gòu)的構(gòu)成,數(shù)據(jù)類型等。步驟S312 解析數(shù)據(jù)源文件和流程控制源文件。本步驟中,通過解釋性語言的正則表達(dá)式功能,對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配,提取關(guān)鍵信息。步驟S314 選擇對(duì)應(yīng)的代碼生成規(guī)則。該代碼生成規(guī)則也采用解釋性語言進(jìn)行描述,因此可以對(duì)描述規(guī)則進(jìn)行動(dòng)態(tài)更改,將數(shù)據(jù)源文件和流程控制源文件中的關(guān)鍵信息進(jìn)行轉(zhuǎn)化。系統(tǒng)中攜帶有多種語言工具,在根據(jù)代碼語言類型生成代碼時(shí),若存在多個(gè)相應(yīng)的代碼生成規(guī)則,則可以按照不同的語言類型風(fēng)格,選擇不同的代碼生成規(guī)則進(jìn)行轉(zhuǎn)化;若僅存在一個(gè)代碼生成規(guī)則,則可以交由該代碼生成規(guī)則進(jìn)行判斷選擇,進(jìn)而調(diào)用不同的語言生成工具生成不同語言類型的代碼。步驟S316 按照選擇的代碼生成規(guī)則進(jìn)行代碼生成,并且進(jìn)行代碼有效性檢查。在進(jìn)行代碼有效性檢查時(shí),可以利用解釋性語言(如PERL腳本語言)自帶的語法檢查工具進(jìn)行基本的語法校驗(yàn),以提高代碼生成工具代碼轉(zhuǎn)換的效率和正確性。步驟S318 根據(jù)用戶選擇的代碼語言類型,生成對(duì)應(yīng)類型的代碼文件,提示用戶代碼生成完畢。通過本實(shí)施例,數(shù)據(jù)流程控制規(guī)則、代碼生成規(guī)則以及數(shù)據(jù)源文件都可以使用解釋性語言進(jìn)行動(dòng)態(tài)地配置和更改,大大增強(qiáng)了代碼生成工具的靈活性,便于代碼生成工具
7的升級(jí)和維護(hù),降低了軟件的后期使用成本。實(shí)施例四參照圖4,示出了根據(jù)本發(fā)明實(shí)施例四的一種代碼生成系統(tǒng)的結(jié)構(gòu)框圖。本實(shí)施例的代碼生成系統(tǒng)包括第一獲取模塊402,用于獲取用戶使用解釋性語言配置的代碼生成規(guī)則和流程控制規(guī)則;數(shù)據(jù)流程解析引擎404,用于使用流程控制規(guī)則解析用戶輸入的數(shù)據(jù)控制流程,獲得流程控制源文件;生成模塊406,用于根據(jù)流程控制源文件和用戶輸入的數(shù)據(jù)源文件,使用代碼生成規(guī)則生成代碼。優(yōu)選地,生成模塊406包括源文件數(shù)據(jù)驅(qū)動(dòng)引擎4062,用于通過正則表達(dá)式,對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配,獲取數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息;模式匹配模塊4064,用于根據(jù)數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息,使用代碼生成規(guī)則生成代碼。其中,源文件數(shù)據(jù)驅(qū)動(dòng)引擎4062對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配的關(guān)鍵是采用正則表達(dá)式,對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行關(guān)鍵字的提取和匹配,當(dāng)查找到符合預(yù)期的關(guān)鍵字時(shí),也就是匹配成功,則將關(guān)鍵信息進(jìn)行提取。關(guān)鍵信息包含函數(shù)名、 函數(shù)調(diào)用信息、函數(shù)中數(shù)據(jù)類型的組成、以及函數(shù)輸入?yún)?shù)和輸出參數(shù)。優(yōu)選地,代碼生成規(guī)則包括多個(gè),生成模塊406包括第二獲取模塊4066,用于獲取用戶配置的待生成的代碼語言類型;代碼生成模塊4068,用于根據(jù)數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息,以及獲取的代碼語言類型,使用相應(yīng)的代碼生成規(guī)則生成代碼。優(yōu)選地,本實(shí)施例的代碼生成系統(tǒng)還包括檢查模塊408,用于使用解釋性語言自帶的語法檢查工具,對(duì)生成的代碼進(jìn)行有效性檢查。優(yōu)選地,數(shù)據(jù)控制流程包括以下至少之一代碼數(shù)據(jù)處理流程、輸入輸出參數(shù)、代碼調(diào)用順序。優(yōu)選地,流程控制源文件包括函數(shù)名、函數(shù)調(diào)用信息、和函數(shù)實(shí)現(xiàn),其中,函數(shù)實(shí)現(xiàn)以空函數(shù)預(yù)先填充。本實(shí)施例實(shí)現(xiàn)的方法可以參照前述實(shí)施例的相關(guān)描述,并具有上述實(shí)施例的有益效果,在此不再贅述。通過本實(shí)施例,采用解釋性語言配置代碼生成規(guī)則和流程控制規(guī)則,充分利用了解釋性語言解釋執(zhí)行的特點(diǎn),使得用戶可以根據(jù)需求,在代碼生成過程中靈活配置代碼生成規(guī)則和流程控制規(guī)則,生成符合用戶需求的代碼文件,從而解決了現(xiàn)有技術(shù)的代碼生成工具在生成代碼時(shí)不夠靈活的問題,進(jìn)而達(dá)到了增強(qiáng)代碼生成工具靈活性的效果。實(shí)施例五參照圖5,示出了根據(jù)本發(fā)明實(shí)施例五的一種代碼生成系統(tǒng)的結(jié)構(gòu)框圖。本實(shí)施例的代碼生成系統(tǒng),包括UI輸入模塊502、數(shù)據(jù)流程解析引擎504、源文件數(shù)據(jù)驅(qū)動(dòng)引擎506、模式匹配模塊508、代碼生成模塊510。其中UI輸入模塊502,主要用于提供UI界面接收用戶輸入,包括配置信息輸入接口和界面顯示模塊。其中,通過配置信息輸入接口輸入的信息主要包含代碼生成規(guī)則、流程控制規(guī)則、生成的代碼語言類型。其中代碼生成規(guī)則影響代碼的數(shù)據(jù)結(jié)構(gòu),流程控制規(guī)則影響代碼的算法,生成的代碼語言類型決定生成的代碼語言規(guī)范格式,比如生成C還是JAVA語言;界面顯示模塊主要用于接收和顯示用戶對(duì)輸入?yún)?shù)的控制,用戶通過界面顯示模塊,可以對(duì)配置信息輸入接口的參數(shù)進(jìn)行修改和查看。用戶通過UI輸入模塊502,首先使用解釋性語言配置代碼生成規(guī)則、流程控制規(guī)則、及欲生成的代碼語言類型,然后利用提供的圖形模型對(duì)欲生成的代碼數(shù)據(jù)處理流程,輸入輸出參數(shù),代碼調(diào)用順序進(jìn)行描述和控制,即輸入數(shù)據(jù)控制流程及數(shù)據(jù)源文件。并且,在用戶輸入后,獲取用戶輸入的上述信息,包括代碼生成規(guī)則、流程控制規(guī)則、欲生成的代碼語言類型、數(shù)據(jù)控制流程及數(shù)據(jù)源文件(相當(dāng)于實(shí)施例四中的第一獲取模塊402)。數(shù)據(jù)流程解析引擎504,主要用于解析用戶通過UI輸入模塊502輸入的代碼數(shù)據(jù)處理流程,輸入輸出參數(shù),代碼調(diào)用順序等信息,即通過輸入的流程控制規(guī)則解析輸入的數(shù)據(jù)控制流程。流程控制規(guī)則可以通過解釋性語言如腳本語言進(jìn)行動(dòng)態(tài)設(shè)置,從而達(dá)到對(duì)不同需求,不同語言類型的支持,解析完畢后生成流程控制源文件。源文件數(shù)據(jù)驅(qū)動(dòng)引擎506,主要用于對(duì)數(shù)據(jù)源文件和流程控制源文件的解析,其通過解釋性語言的正則表達(dá)式功能,對(duì)數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配,提取關(guān)鍵信息,進(jìn)而交由模式匹配模塊508進(jìn)行處理。模式匹配模塊508,主要功能是根據(jù)用戶配置的代碼生成規(guī)則,欲生成的代碼語言類型,選擇對(duì)應(yīng)的匹配模式來匹配源文件數(shù)據(jù)驅(qū)動(dòng)引擎下發(fā)的數(shù)據(jù)源文件和流程控制源文件關(guān)鍵信息,傳遞給代碼生成模塊510進(jìn)行代碼生成。代碼生成模塊510,該模塊為多語言類型的代碼生成模塊,其按照模式匹配模塊 508傳下來的代碼生成配置信息,將數(shù)據(jù)源文件的關(guān)鍵信息轉(zhuǎn)化為代碼,根據(jù)流程控制源文件的關(guān)鍵信息來生成代碼調(diào)用流程,從而完成代碼的生成。通過本實(shí)施例提供的上述基于腳本控制的動(dòng)態(tài)可視代碼生成系統(tǒng),包含了流程控制規(guī)則配置腳本,數(shù)據(jù)源文件,代碼生成規(guī)則配置腳本,對(duì)數(shù)據(jù)流程控制規(guī)則和代碼生成規(guī)則以及數(shù)據(jù)源文件都可以進(jìn)行動(dòng)態(tài)的配置和更改,從而大大增強(qiáng)了該代碼生成工具的靈活性,對(duì)于代碼生成工具的升級(jí)和維護(hù),降低軟件的后期使用成本上具有明顯的優(yōu)勢。從以上的描述中,可以看出,本發(fā)明基于目前業(yè)界兩類主流的代碼生成工具存在的缺陷,提供了一種基于腳本控制的動(dòng)態(tài)可視代碼生成方法及系統(tǒng),利用腳本語言的正則表達(dá)式構(gòu)造了數(shù)據(jù)流程解析引擎,源文件數(shù)據(jù)驅(qū)動(dòng)引擎。從而可以通過實(shí)時(shí)修改腳本語言, 利用數(shù)據(jù)流程解析引擎,解析UI可視圖形界面,動(dòng)態(tài)生成數(shù)據(jù)源文件和流程控制源文件, 配置基于正則表達(dá)式的源文件數(shù)據(jù)驅(qū)動(dòng)引擎,完成對(duì)數(shù)據(jù)源文件和流程控制源文件動(dòng)態(tài)生成代碼的流程。本發(fā)明利用了腳本語言為解釋執(zhí)行的特點(diǎn),可以實(shí)現(xiàn)實(shí)時(shí),動(dòng)態(tài)修改匹配規(guī)則,從而極大提高了代碼生成工具的靈活性。同時(shí),利用基于正則表達(dá)式的動(dòng)態(tài)代碼生成方法,可以極大提高代碼生成工具的魯棒性和效率,可以實(shí)時(shí)針對(duì)源文件的數(shù)據(jù)特征,修正源文件數(shù)據(jù)驅(qū)動(dòng)引擎,從而降低了維護(hù)代碼生成工具的成本,由于可生成代碼的多樣性,也擴(kuò)展了代碼生成工具的應(yīng)用范圍。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種代碼生成方法,其特征在于,包括獲取用戶使用解釋性語言配置的代碼生成規(guī)則和流程控制規(guī)則; 使用所述流程控制規(guī)則解析所述用戶輸入的數(shù)據(jù)控制流程,獲得流程控制源文件; 根據(jù)所述流程控制源文件和所述用戶輸入的數(shù)據(jù)源文件,使用所述代碼生成規(guī)則生成代碼。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述流程控制源文件和所述用戶輸入的數(shù)據(jù)源文件,使用所述代碼生成規(guī)則生成代碼的步驟包括通過基于正則表達(dá)式的源文件數(shù)據(jù)驅(qū)動(dòng)引擎,對(duì)所述數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配,獲取所述數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息;根據(jù)所述數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息,使用所述代碼生成規(guī)則生成代碼。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述代碼生成規(guī)則包括多個(gè),所述使用所述代碼生成規(guī)則生成代碼的步驟包括獲取所述用戶配置的待生成的代碼語言類型; 根據(jù)所述代碼語言類型選擇相應(yīng)的代碼生成規(guī)則生成代碼。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)控制流程包括以下至少之一代碼數(shù)據(jù)處理流程、輸入輸出參數(shù)、代碼調(diào)用順序。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述流程控制源文件包括函數(shù)名、函數(shù)調(diào)用信息、和函數(shù)實(shí)現(xiàn),其中,所述函數(shù)實(shí)現(xiàn)以空函數(shù)預(yù)先填充。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括使用所述解釋性語言自帶的語法檢查工具,對(duì)生成的所述代碼進(jìn)行有效性檢查。
7.一種代碼生成系統(tǒng),其特征在于,包括第一獲取模塊,用于獲取用戶使用解釋性語言配置的代碼生成規(guī)則和流程控制規(guī)則; 數(shù)據(jù)流程解析引擎,用于使用所述流程控制規(guī)則解析所述用戶輸入的數(shù)據(jù)控制流程, 獲得流程控制源文件;生成模塊,用于根據(jù)所述流程控制源文件和所述用戶輸入的數(shù)據(jù)源文件,使用所述代碼生成規(guī)則生成代碼。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述生成模塊包括源文件數(shù)據(jù)驅(qū)動(dòng)引擎,用于通過正則表達(dá)式,對(duì)所述數(shù)據(jù)源文件和流程控制源文件進(jìn)行匹配,獲取所述數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息;模式匹配模塊,用于根據(jù)所述數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息, 使用所述代碼生成規(guī)則生成代碼。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述代碼生成規(guī)則包括多個(gè),所述生成模塊包括第二獲取模塊,用于獲取所述用戶配置的待生成的代碼語言類型; 代碼生成模塊,用于根據(jù)所述數(shù)據(jù)源文件的關(guān)鍵信息和流程控制源文件的關(guān)鍵信息, 以及獲取的所述代碼語言類型,使用相應(yīng)的代碼生成規(guī)則生成代碼。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括檢查模塊,用于使用所述解釋性語言自帶的語法檢查工具,對(duì)生成的所述代碼進(jìn)行有效性檢查。
全文摘要
本發(fā)明公開了一種代碼生成方法及系統(tǒng),其中,代碼生成方法包括獲取用戶使用解釋性語言配置的代碼生成規(guī)則和流程控制規(guī)則;使用流程控制規(guī)則解析用戶輸入的數(shù)據(jù)控制流程,獲得流程控制源文件;根據(jù)流程控制源文件和用戶輸入的數(shù)據(jù)源文件,使用代碼生成規(guī)則生成代碼。通過本發(fā)明,解決了現(xiàn)有技術(shù)的代碼生成工具在生成代碼時(shí)不夠靈活的問題,進(jìn)而達(dá)到了增強(qiáng)代碼生成工具靈活性的效果。
文檔編號(hào)G06F9/44GK102289375SQ20111025879
公開日2011年12月21日 申請日期2011年9月2日 優(yōu)先權(quán)日2011年9月2日
發(fā)明者張麗娜 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
兴义市| 故城县| 东港市| 扬中市| 池州市| 板桥市| 科尔| 成都市| 乐都县| 乐昌市| 扎鲁特旗| 安庆市| 哈巴河县| 逊克县| 大新县| 内黄县| 五大连池市| 桃园县| 大田县| 濮阳县| 怀安县| 紫云| 汉源县| 军事| 金阳县| 大新县| 唐海县| 安乡县| 吴桥县| 浦东新区| 新乡市| 台前县| 吉林省| 大荔县| 潮安县| 达拉特旗| 东至县| 察隅县| 木兰县| 苍梧县| 玉龙|