两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

代碼提示信息的生成方法及裝置與流程

文檔序號:11215918閱讀:537來源:國知局
本發(fā)明涉及信息
技術(shù)領(lǐng)域
:,尤其涉及一種代碼提示信息生成方法及裝置。
背景技術(shù)
::近年來,集成開發(fā)環(huán)境(integrateddevelopmentenvironment,ide)已經(jīng)成為程序設(shè)計(jì)和開發(fā)的主流工具,隨著程序設(shè)計(jì)語言復(fù)雜度的不斷提高,ide中的代碼提示功能的應(yīng)用也越來越廣泛,其中,程序開發(fā)人員可以根據(jù)代碼提示信息進(jìn)行后續(xù)輸入,代碼提示功能能夠減輕程序開發(fā)人員記憶語法規(guī)則以及語言要素的名稱的負(fù)擔(dān)、降低程序開發(fā)人員輸入的字符量和出錯率,提升程序開發(fā)的效率。目前,在進(jìn)行代碼提示時(shí),首先把所有的語言要素的名稱作為代碼提示信息顯示給程序開發(fā)人員,然后根據(jù)程序開發(fā)人員持續(xù)輸入的內(nèi)容進(jìn)行代碼提示信息的過濾。然而,由于代碼提示信息中大部分的信息不是程序開發(fā)人員需要的,例如,在結(jié)構(gòu)化查詢語言(structuredquerylanguage,sql)中,程序開發(fā)人員輸入insert語句,現(xiàn)有代碼提示信息的顯示界面示意圖,如圖5所示,當(dāng)程序開發(fā)人員持續(xù)輸入in時(shí),現(xiàn)有過濾后的代碼提示信息的顯示界面示意圖,如圖6所示,在圖5和圖6中的信息不是程序開發(fā)人員需要的,程序開發(fā)人員在實(shí)際的開發(fā)過程中幾乎不會選擇這些信息,顯示這些信息會給程序開發(fā)人員造成干擾,導(dǎo)致生成的代碼提示信息的精確度較低,同時(shí)顯示這些不必要的代碼提示信息會造成系統(tǒng)資源的浪費(fèi)。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明實(shí)施例提供一種代碼提示信息的生成方法及裝置,主要目的是解決生成的代碼提示信息的精確度較低的技術(shù)問題。與此同時(shí),本發(fā)明實(shí)施例還提供一種代碼提示信息的生成方法及裝置, 主要目的是解決由于顯示的代碼提示信息中存在大量無用信息,造成顯示代碼提示信息時(shí)存在系統(tǒng)資源浪費(fèi)的問題。為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:一方面,本發(fā)明提供一種代碼提示信息的顯示方法,包括:接收當(dāng)前程序開發(fā)過程中通過操作界面獲取的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;根據(jù)所述輸入內(nèi)容信息和與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息并進(jìn)行輸出。另一方面,本發(fā)明提供一種代碼提示信息的顯示裝置,包括:獲取單元,用于獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;所述獲取單元,還用于獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;生成單元,用于根據(jù)所述輸入內(nèi)容信息和與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。借由上述技術(shù)方案,本發(fā)明實(shí)施例提供的技術(shù)方案至少具有下列優(yōu)點(diǎn):本發(fā)明實(shí)施例提供的一種代碼提示信息的生成方法及裝置。首先,獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;根據(jù)所述輸入內(nèi)容信息和與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。與目前首先把所有的語言要素的名稱作為代碼提示信息顯示給程序開發(fā)人員,然后根據(jù)程序開發(fā)人員持續(xù)輸入的內(nèi)容進(jìn)行代碼提示信息的過濾相比,本發(fā)明實(shí)施例通過根據(jù)所述輸入內(nèi)容信息和與所述輸入狀態(tài)信息對 應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息,能夠提升代碼提示信息的精確度率,同時(shí)能夠避免由于在代碼提示信息中顯示大量無用信息而造成的系統(tǒng)資源的浪費(fèi)。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。附圖說明通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1示出了本發(fā)明實(shí)施例提供的一種代碼提示信息的生成方法的流程圖;圖2示出了本發(fā)明實(shí)施例提供的另一種代碼提示信息的生成方法的流程圖;圖3示出了本發(fā)明實(shí)施例提供的一種代碼提示信息的生成裝置的結(jié)構(gòu)示意圖;圖4示出了本發(fā)明實(shí)施例提供的另一種代碼提示信息的生成裝置的結(jié)構(gòu)示意圖;圖5示出了現(xiàn)有代碼提示信息的顯示界面示意圖;圖6示出了現(xiàn)有過濾后的代碼提示信息的顯示界面示意圖;圖7示出了本發(fā)明實(shí)施例代碼提示信息的顯示界面示意圖;圖8示出了本發(fā)明實(shí)施例提供的程序開發(fā)過程中代碼提示的方法流程圖。具體實(shí)施方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開 而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。本發(fā)明實(shí)施例提供的一種代碼提示信息的生成方法,如圖1所示,所述方法包括:101、獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息。其中,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息。所述輸入內(nèi)容信息可以包括輸入的語句信息和光標(biāo)位置信息,如輸入的語句信息為insert。所述輸入語言環(huán)境信息可以為程序開發(fā)過程中所使用的程序設(shè)計(jì)語言,如結(jié)構(gòu)化查詢語言(structuredquerylanguage,sql)、c語言等。程序設(shè)計(jì)語言一般是上下文無關(guān)文法定義的,所述上下文無關(guān)文法是形式語言理論中一種重要的變換文法,用來描述上下文無關(guān)語言,即程序設(shè)計(jì)語言中某一語句信息或者語句信息是否出現(xiàn)在特定位置上不依賴于上下文。對于本發(fā)明實(shí)施例,用戶通常在集成開發(fā)環(huán)境對應(yīng)的文本編輯器中輸入語句信息進(jìn)行程序開發(fā),因此,程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息為通過文本編輯器獲取的輸入狀態(tài)信息,步驟101具體可以為:獲取當(dāng)前集成開發(fā)環(huán)境對應(yīng)的文本編輯器中的輸入狀態(tài)信息。102、獲取與輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則。其中,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則。所述預(yù)置文法規(guī)則可以為上下文無關(guān)文法規(guī)則。由于相同語句信息的不同語言對應(yīng)的上下文無關(guān)文法規(guī)則不同,如語句信息為賦值語句,在java語言和c語言中賦值語句對應(yīng)的上下文無關(guān)文法規(guī)則不同;相同語言的不同語句信息對應(yīng)的上下文無關(guān)文法規(guī)則不同,如insert語句在sql語言中存在對應(yīng)的上下文無關(guān)文法規(guī)則,但是在c語言中不存在對應(yīng)的上下文無關(guān)文法規(guī)則。因此在程序開發(fā)過程中不同輸入狀態(tài)信息對應(yīng)不同的上下文無關(guān)文法規(guī)則。103、根據(jù)輸入內(nèi)容信息與輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與 輸入內(nèi)容信息對應(yīng)的代碼提示信息。其中,與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息可以為與所述輸入內(nèi)容信息相關(guān)的代碼提示信息。所述代碼提示信息用于對用戶后續(xù)輸入的內(nèi)容進(jìn)行提示,通過代碼提示信息可以提升代碼編寫速度和減少拼寫和語法錯誤,從而提升程序開發(fā)的效率。對于本發(fā)明實(shí)施例,具體可以根據(jù)預(yù)置文法規(guī)則中保存的不同語句信息之間的關(guān)聯(lián)關(guān)系和所述輸入內(nèi)容信息,推導(dǎo)出與所述輸入內(nèi)容信息相關(guān)的內(nèi)容信息,然后將與所述輸入內(nèi)容信息相關(guān)的內(nèi)容信息確定為所述輸入內(nèi)容信息相關(guān)的代碼提示信息。例如,當(dāng)前的輸入語言環(huán)境為sql語言,當(dāng)前的輸入內(nèi)容信息為“insert”,則根據(jù)insert在sql語言中的上下文無關(guān)文法規(guī)則,生成與“insert”相關(guān)的內(nèi)容信息,如“insertoverwritedirectory”、“insertoverwritelocaldirectory”等,然后將與“insert”相關(guān)的內(nèi)容信息確定為與“insert”對應(yīng)的代碼提示信息。其中,insert在sql語言中的上下文無關(guān)文法規(guī)則中保存有“insert”與“insertoverwritedirectory”、“insertoverwritelocaldirectory”等語句信息之間的關(guān)聯(lián)關(guān)系。本發(fā)明實(shí)施例通過根據(jù)所述輸入內(nèi)容信息和與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息相關(guān)的內(nèi)容信息,然后將與所述輸入內(nèi)容信息相關(guān)的內(nèi)容信息確定為所述輸入內(nèi)容信息對應(yīng)的代碼提示信息,能夠提升代碼提示信息顯示的精確度,同時(shí)能夠避免由于在代碼提示信息中顯示大量無用信息而造成的系統(tǒng)資源的浪費(fèi)。本發(fā)明實(shí)施例提供的一種代碼提示信息的生成方法。首先,獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;根據(jù)與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。與目前首先把所有的語言要素的名稱作為代碼提示信息顯示給程序開發(fā)人員,然后根據(jù)程序開發(fā)人 員持續(xù)輸入的內(nèi)容進(jìn)行代碼提示信息的過濾相比,本發(fā)明實(shí)施例通過根據(jù)所述輸入內(nèi)容信息和與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息,能夠提升代碼提示信息的精確度率,同時(shí)能夠避免由于在代碼提示信息中顯示大量無用信息而造成的系統(tǒng)資源的浪費(fèi)。本發(fā)明實(shí)施例提供的另一種代碼提示信息的生成方法,如圖2所示,所述方法包括:201、獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息。其中,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息。所述輸入內(nèi)容信息和所述輸入語言環(huán)境信息的相應(yīng)描述可以參照圖1所述實(shí)施例的對應(yīng)描述,在此不再贅述。202、檢測輸入內(nèi)容信息是否包含預(yù)置信息。其中,所述預(yù)置信息可以為特殊分割字符信息,如“,”、“(”等,也可以為觸發(fā)字符,在此不進(jìn)行限定。203、若輸入內(nèi)容信息包含預(yù)置信息,則執(zhí)行獲取與輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則。其中,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則。所述預(yù)置文法規(guī)則可以為上下文無關(guān)文法規(guī)則。所述上下文無關(guān)文法規(guī)則的相應(yīng)描述可以參照圖1所述實(shí)施例的對應(yīng)描述,在此不再贅述。204、獲取與預(yù)置文法規(guī)則對應(yīng)的有限狀態(tài)機(jī)。其中,所述有限狀態(tài)機(jī)保存有不同語句信息之間的轉(zhuǎn)換規(guī)則。所述有限狀態(tài)機(jī)是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。對于本發(fā)明實(shí)施例,在步驟204之前,所述方法還可以包括:將所述預(yù)置文法規(guī)則解析轉(zhuǎn)換成一個有限狀態(tài)機(jī),具體可以通過文法規(guī)則識別器將所述預(yù)置文法規(guī)則解析轉(zhuǎn)換成一個有限狀態(tài)機(jī),所述文法規(guī)則識別器具體可以為開源語法分析器(antlr-anothertoolforlanguagerecognition,antlr),生成編譯器的編譯器(yetanothercompilercompiler,yacc)等。205、根據(jù)輸入內(nèi)容信息和有限狀態(tài)機(jī)中不同語句信息之間的轉(zhuǎn)換規(guī)則,生成輸入內(nèi)容信息對應(yīng)的后續(xù)輸入內(nèi)容信息對應(yīng)的后跟符號集合。其中,所述后跟符號集合包括所述轉(zhuǎn)換規(guī)則的文法產(chǎn)生式集合、所述文法產(chǎn)生式集合對應(yīng)的非終結(jié)符集合和所述文法產(chǎn)生式集合對應(yīng)的起始終結(jié)符集合。所述后續(xù)輸入內(nèi)容信息可以為與所述輸入內(nèi)容信息相關(guān)的內(nèi)容信息。對于本發(fā)明實(shí)施例,步驟205具體可以為:首先將所述輸入內(nèi)容信息解析轉(zhuǎn)化為所述有限狀態(tài)機(jī)中的輸入內(nèi)容信息,具體可以通過語法解析器將所述輸入內(nèi)容信息解析轉(zhuǎn)化為所述有限狀態(tài)機(jī)中的輸入內(nèi)容信息;然后通過狀態(tài)轉(zhuǎn)換分析器根據(jù)所述有限狀態(tài)機(jī)中的輸入內(nèi)容信息和所述有限狀態(tài)機(jī)中的轉(zhuǎn)換規(guī)則,生成所述輸入內(nèi)容信息對應(yīng)的后續(xù)輸入內(nèi)容信息對應(yīng)的后跟符號集合。在本發(fā)明實(shí)施例中,為了描述方便,將所述有限狀態(tài)機(jī)中的輸入內(nèi)容信息記為s;將所述后跟符號集合記為follow(s);將所述轉(zhuǎn)換規(guī)則的文法產(chǎn)生式集合記為rule(s);將所述文法產(chǎn)生式對應(yīng)的非終結(jié)符集合記為n(s);和所述文法產(chǎn)生式對應(yīng)的起始終結(jié)符集合e(s)。例如,用戶在sql開發(fā)環(huán)境中的輸入內(nèi)容信息為“insert[i]”,其中,[i]代表當(dāng)前光標(biāo)位置”,將所述輸入內(nèi)容信息解析轉(zhuǎn)化為所述有限狀態(tài)機(jī)中的輸入內(nèi)容信息“insert”,根據(jù)“insert”和所述有限狀態(tài)機(jī)中不同語句信息之間的轉(zhuǎn)換規(guī)則,可以生成follow(s)={n(s)、e(s)、rule(s)},其中,n(s)={insertclause}e(s)={insert}rule(s)={{kw_insertkw_overwritedestinationifnotexists?},{kw_insertkw_intokw_table?tableorpartition(lparencolumnnamelistrparen)?}}206、將非終結(jié)符集合中的非終結(jié)符對應(yīng)的文法展開式與起始終結(jié)符集合中的起始終結(jié)符的文法展開式進(jìn)行關(guān)聯(lián)。其中,非終結(jié)符對應(yīng)的文法展開式是表示非終結(jié)符對應(yīng)的文法產(chǎn)生式 展開為終結(jié)符序列的結(jié)果。對于本發(fā)明實(shí)施例,步驟206具體可以為:當(dāng)所述非終結(jié)符對應(yīng)的文法展開式與所述起始終結(jié)符的文法展開式相等時(shí),將所述起始終結(jié)符的文法展開式確定為后續(xù)輸入內(nèi)容信息的提示候選信息。需要說明的是,在步驟206之前,所述方法還可以包括:獲取所述非終結(jié)符對應(yīng)的起始終結(jié)符集合中的起始終結(jié)符對應(yīng)的文法產(chǎn)生式;將所述文法產(chǎn)生式中的所有的非終結(jié)符循環(huán)展開直至消除所有的非終結(jié)符后的結(jié)果,確定為所述非終結(jié)符對應(yīng)的文法展開式。在此記所述非終結(jié)符對應(yīng)的文法展開式為template(n),為了說明獲取template(n)的過程,在此根據(jù)insert進(jìn)行舉例,如下所示,其中,insertclause為非終結(jié)符,insertclause對應(yīng)的文法產(chǎn)生式為rule1、rule2:insertclause:rule1|rule2;rule1={kw_insertkw_overwritedestinationifnotexists?};rule2={kw_insertkw_intokw_table?tableorpartition(lparencolumnnamelistrparen)?};在rule1中的非終結(jié)符為destination、由于在sql語言中destination應(yīng)的文法產(chǎn)生式為rule3、rule4:destination:rule3|rule4;rule3={(kw_local)?kw_directorystringliteraltablerowformat?tablefileformat?};rule4={kw_tabletableorpartition};ifnotexists,stringliteral,tablerowformat,tablefileformat等文法產(chǎn)生式的定義,不進(jìn)行詳細(xì)的描述,但是不影響說明生成template(n)的過程。非終結(jié)符destination的起始終結(jié)符first集合={directory、localdirectory、table};所述非終結(jié)符destination的first集中的起始終結(jié)符directory、localdirectory對應(yīng)的文法產(chǎn)生式均為rule3,展開后為directory、localdirectory,所述非終結(jié)符destination的first集中的起始終結(jié)符table的文法產(chǎn)生式均為rule4,展開式為table;非終結(jié)符insertclause的first集合={insert};由于非終結(jié)符insertclause對應(yīng)的first集合中的起始終結(jié)符為insert且所述e(s)相等,insert對應(yīng)的文法產(chǎn)生式為rule1、rule2,將rule1中的非終結(jié)符destination循環(huán)展開直至消除所有的非終結(jié)符后的結(jié)果為:template1=insertoverwritedirectorytemplate2=insertoverwritelocaldirectorytemplate3=insertoverwritetable將rule2中的非終結(jié)符destination循環(huán)展開直至消除所有的非終結(jié)符后的結(jié)果為:tempalte4=insertintotemplate5=insertintotable因此,得到的如下文法展開式即為后續(xù)輸入內(nèi)容信息的提示候選信息:template1=insertoverwritedirectorytemplate2=insertoverwritelocaldirectorytemplate3=insertoverwritetabletempalte4=insertintotemplate5=insertintotable。207、根據(jù)關(guān)聯(lián)結(jié)果,生成與輸入內(nèi)容信息對應(yīng)的代碼提示信息。對于本發(fā)明實(shí)施例,步驟207具體可以為:根據(jù)所述起始終結(jié)符和所述提示候選信息,確定為與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。進(jìn)一步地,在根據(jù)所述起始終結(jié)符和所述提示候選信息,確定為與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息之前,所述方法還可以包括:獲取所述輸入狀態(tài)信息對應(yīng)的歷史輸入狀態(tài)信息,根據(jù)所述歷史輸入狀態(tài)信息,對所述起始終結(jié)符和所述提示候選信息進(jìn)行排序。具體地,可以根據(jù)所述提示候選信息和起始終結(jié)符在歷史輸入狀態(tài)信息中出現(xiàn)的次數(shù)或者優(yōu)先級進(jìn)行排序,在此不進(jìn)行限定。例如,得到的所述提示候選信息為:template1=insertoverwritedirectorytemplate2=insertoverwritelocaldirectorytemplate3=insertoverwritetabletempalte4=insertintotemplate5=insertintotable??梢詫ι鲜鎏崾竞蜻x信息和起始終結(jié)符insert進(jìn)行排序,排序后的順序?yàn)椋篿nsertinsertintoinsertintotableinsertintooverwritetableinsertintooverwritedirectoryinsertintooverwritelocaldirectory即為與所述insert對應(yīng)的代碼提示信息。208、輸出與輸入內(nèi)容信息對應(yīng)的代碼提示信息。對于本發(fā)明實(shí)施例,步驟208具體可以為:將與輸入內(nèi)容信息對應(yīng)的代碼提示信息發(fā)送給當(dāng)前集成開發(fā)環(huán)境對應(yīng)的文本編輯器,然后由所述文本編輯器顯示與輸入內(nèi)容信息對應(yīng)的代碼提示信息。例如,生成與“insert”對應(yīng)的代碼提示信息如下:insertinsertintoinsertintotableinsertintooverwritetableinsertintooverwritedirectoryinsertintooverwritelocaldirectory所述代碼提示信息的顯示界面示意圖,如圖7所示,代碼提示信息的顯示界面可以為文本編輯器的顯示界面。對于本發(fā)明實(shí)施例,在步驟208之后,所述方法還可以包括:接收所述代碼提示信息對應(yīng)的信息選擇指令,其中,所述信息選擇指令用于指示從所述代碼提示信息中選擇信息;根據(jù)所述信息更新所述輸入內(nèi)容信息。例如,程序開發(fā)人員根據(jù)所述信息選擇指令選擇的信息為:insertintotable,則可以用insertintotable更新當(dāng)前輸入內(nèi)容信息insert。進(jìn)一步地,在所述根據(jù)所述信息更新所述輸入內(nèi)容信息之后,所述方法還可以包括:將所述信息保存到所述歷史輸入狀態(tài)信息中。通過將所述信息保存到所述歷史輸入狀態(tài)信息可以方便后續(xù)對所述起始終結(jié)符和所述提示候選信息進(jìn)行排序。對于本發(fā)明實(shí)施例,具體的應(yīng)用場景可以如下所示,但不限于此,包括:程序開發(fā)過程中代碼提示的方法,如圖8所示:步驟1:當(dāng)用戶在sql開發(fā)環(huán)境對應(yīng)的文本編輯器中輸入insert語句時(shí),代碼提示信息生成裝置通過文本編輯器獲取insert語句。步驟2:代碼提示信息生成裝置通過文法規(guī)則識別器對insert語句對應(yīng)的上下文無關(guān)法規(guī)則進(jìn)行識別,將insert語句對應(yīng)的上下文無關(guān)法則解析轉(zhuǎn)換成一個有限狀態(tài)機(jī),其中,insert語句對應(yīng)的上下文無關(guān)法規(guī)則,如圖7所示。步驟3:代碼提示信息生成裝置通過狀態(tài)轉(zhuǎn)換分析器根據(jù)所述有限狀態(tài)機(jī)中的輸入內(nèi)容信息和所述有限狀態(tài)機(jī)中的轉(zhuǎn)換規(guī)則,生成insert語句對應(yīng)的后續(xù)輸入內(nèi)容信息對應(yīng)的后跟符號集合follow(s)。步驟4:代碼提示信息生成裝置獲取follow(s)。步驟5:代碼提示信息生成裝置根據(jù)所述insert語句和所述follow(s),生成與insert語句對應(yīng)的后續(xù)輸入內(nèi)容信息的提示候選信息,如下所示:template1=insertoverwritedirectorytemplate2=insertoverwritelocaldirectorytemplate3=insertoverwritetabletempalte4=insertintotemplate5=insertintotable。步驟6:代碼提示信息生成裝置根據(jù)歷史狀態(tài)信息對上述提示候選信息和insert語句進(jìn)行排序。步驟7:代碼提示信息生成裝置將排序后的上述提示候選信息和insert語句確定為insert語句對應(yīng)代碼提示信息。步驟8:輸出insert語句對應(yīng)代碼提示信息,如圖9所示。步驟9:當(dāng)用戶從如圖9所示的代碼提示信息中選擇insertinto語句時(shí),獲取insertinto語句并用insertinto語句更新文本編輯器中的insert語句。步驟10:將insertinto語句保存到歷史狀態(tài)信息中。本發(fā)明實(shí)施例提供的另一種代碼提示信息的生成方法。首先,獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;根據(jù)與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。與目前首先把所有的語言要素的名稱作為代碼提示信息顯示給程序開發(fā)人員,然后根據(jù)程序開發(fā)人員持續(xù)輸入的內(nèi)容進(jìn)行代碼提示信息的過濾相比,本發(fā)明實(shí)施例通過根據(jù)所述輸入內(nèi)容信息與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息,能夠提升代碼提示信息的精確度率,同時(shí)能夠避免由于在代碼提示信息中顯示大量無用信息而造成的系統(tǒng)資源的浪費(fèi)。進(jìn)一步地,作為圖1所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供一種代碼提示信息的生成裝置,如圖3所示,所述裝置可以包括:獲取單元31、生成單元32。獲取單元31,用于獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息。所述獲取單元31,還用于獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則。生成單元32,用于根據(jù)與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。需要說明的是,該裝置實(shí)施例與前述方法實(shí)施例對應(yīng),為便于閱讀,本裝置實(shí)施例不再對前述方法實(shí)施例中的細(xì)節(jié)內(nèi)容進(jìn)行逐一贅述,但應(yīng)當(dāng)明確,本實(shí)施例中的裝置能夠?qū)?yīng)實(shí)現(xiàn)前述方法實(shí)施例中的全部內(nèi)容。本發(fā)明實(shí)施例提供的一種代碼提示信息的生成裝置。首先,獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;根據(jù)與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。與目前首先把所有的語言要素的名稱作為代碼提示信息顯示給程序開發(fā)人員,然后根據(jù)程序開發(fā)人員持續(xù)輸入的內(nèi)容進(jìn)行代碼提示信息的過濾相比,本發(fā)明實(shí)施例通過根據(jù)與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息,能夠提升代碼提示信息的精確度率,同時(shí)能夠避免由于在代碼提示信息中顯示大量無用信息而造成的系統(tǒng)資源的浪費(fèi)。進(jìn)一步地,作為圖2所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供另一種代碼提示信息的生成裝置,如圖4所示,所述裝置可以包括:獲取單元41、生成單元42。獲取單元41,用于獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息。所述獲取單元41,還用于獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則。生成單元42,用于根據(jù)所述輸入內(nèi)容信息和與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。進(jìn)一步地,所述裝置還包括:輸出單元43。所述輸出單元43,用于輸出與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。進(jìn)一步地,所述裝置還包括:檢測單元44。所述檢測單元44,用于檢測所述輸入內(nèi)容信息是否包含預(yù)置信息,其中,所述預(yù)置信息為特殊分割字符信息。所述獲取單元41,具體用于若所述輸入內(nèi)容信息包含預(yù)置信息,則執(zhí)行所述獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則。進(jìn)一步地,所述生成單元41包括:獲取模塊、生成模塊、關(guān)聯(lián)模塊和生成模塊。獲取模塊,用于獲取與所述預(yù)置文法規(guī)則對應(yīng)的有限狀態(tài)機(jī),其中,所述有限狀態(tài)機(jī)保存有不同語句信息之間的轉(zhuǎn)換規(guī)則。生成模塊,用于根據(jù)所述輸入內(nèi)容信息和所述轉(zhuǎn)換規(guī)則,生成所述輸入內(nèi)容信息對應(yīng)的后續(xù)輸入內(nèi)容信息對應(yīng)的后跟符號集合,其中,所述后跟符號集合包括所述轉(zhuǎn)換規(guī)則的文法產(chǎn)生式集合、所述文法產(chǎn)生式對應(yīng)的非終結(jié)符集合和所述文法產(chǎn)生式對應(yīng)的起始終結(jié)符集合。關(guān)聯(lián)模塊,用于將所述非終結(jié)符集合中的非終結(jié)符對應(yīng)的文法展開式與所述起始終結(jié)符集合中的起始終結(jié)符的文法展開式進(jìn)行關(guān)聯(lián)。生成模塊,用于根據(jù)關(guān)聯(lián)結(jié)果,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。所述關(guān)聯(lián)模塊,具體用于當(dāng)所述非終結(jié)符對應(yīng)的文法展開式與所述起始終結(jié)符的文法展開式相等時(shí),將所述起始終結(jié)符的文法展開式確定為后續(xù)輸入內(nèi)容信息的提示候選信息。所述生成模塊,具體用于根據(jù)所述起始終結(jié)符和所述提示候選信息,確定為與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。所述生成單元42還包括:確定模塊。所述獲取模塊,用于獲取所述非終結(jié)符對應(yīng)的起始終結(jié)符集合中的起始終結(jié)符對應(yīng)的文法產(chǎn)生式。所述確定模塊,用于將所述文法產(chǎn)生式中的所有的非終結(jié)符循環(huán)展開直至消除所有的非終結(jié)符后的結(jié)果,確定為所述非終結(jié)符對應(yīng)的文法展開式。所述獲取模塊,還用于獲取所述輸入狀態(tài)信息對應(yīng)的歷史輸入狀態(tài)信息。所述排序模塊,用于根據(jù)所述歷史輸入狀態(tài)信息,對所述起始終結(jié)符和所述提示候選信息進(jìn)行排序。所述確定模塊,用于將排序后的所述起始終結(jié)符和所述提示候選信息,確定為與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。進(jìn)一步地,所述裝置還包括:接收單元45和更新單元46。接收單元45,用于接收所述代碼提示信息對應(yīng)的信息選擇指令,其中,所述信息選擇指令用于指示從所述代碼提示信息中選擇信息。更新單元46,用于根據(jù)所述信息更新所述輸入內(nèi)容信息。進(jìn)一步地,所述裝置還包括:保存單元47。保存單元,用于將所述信息保存到所述歷史輸入狀態(tài)信息中。需要說明的是,該裝置實(shí)施例與前述方法實(shí)施例對應(yīng),為便于閱讀,本裝置實(shí)施例不再對前述方法實(shí)施例中的細(xì)節(jié)內(nèi)容進(jìn)行逐一贅述,但應(yīng)當(dāng)明確,本實(shí)施例中的裝置能夠?qū)?yīng)實(shí)現(xiàn)前述方法實(shí)施例中的全部內(nèi)容。本發(fā)明實(shí)施例提供的另一種代碼提示信息的生成裝置。首先,獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;根據(jù)所述輸入內(nèi)容信息與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。與目前首先把所有的語言要素的名稱作為代碼提示信息顯示給程序開發(fā)人員,然后根據(jù)程序開發(fā)人員持續(xù)輸入的內(nèi)容進(jìn)行代碼提示信息的過濾相比,本發(fā)明實(shí)施例通過根據(jù)與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息,能夠提升代碼提示信息的精確度率,同時(shí)能夠避免由于在代碼提示信息中顯示大量無用信息而造成的系統(tǒng)資源的浪費(fèi)。所述代碼提示信息的顯示裝置包括處理器和存儲器,上述獲取單元、生成單元、輸出單元、檢測單元、更新單元、保存單元等均作為程序單元存儲在存儲器中,由處理器執(zhí)行存儲在存儲器中的上述程序單元來實(shí)現(xiàn)相應(yīng)的功能。處理器中包含內(nèi)核,由內(nèi)核去存儲器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個或以上,通過調(diào)整內(nèi)核參數(shù)來解決在對圖表中被選中的圖形進(jìn) 行顯示時(shí)存在顯示卡頓的問題。存儲器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram),存儲器包括至少一個存儲芯片。本申請還提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時(shí),適于執(zhí)行初始化有如下方法步驟的程序代碼:獲取當(dāng)前程序開發(fā)過程對應(yīng)的輸入狀態(tài)信息,所述輸入狀態(tài)信息包括輸入內(nèi)容信息和輸入語言環(huán)境信息;獲取與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,所述預(yù)置文法規(guī)則保存有不同語句信息之間的關(guān)聯(lián)關(guān)系,不同輸入狀態(tài)信息對應(yīng)不同的預(yù)置文法規(guī)則;根據(jù)所述輸入內(nèi)容信息與所述輸入狀態(tài)信息對應(yīng)的預(yù)置文法規(guī)則,生成與所述輸入內(nèi)容信息對應(yīng)的代碼提示信息。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本申請是參照根據(jù)本申請實(shí)施例的代碼提示信息的顯示方法、裝置、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存 儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。在一個典型的配置中,計(jì)算設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。存儲器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。存儲器是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲器(sram)、動態(tài)隨機(jī)存取存儲器(dram)、其他類型的隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。以上僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
津市市| 华亭县| 池州市| 娄烦县| 广宁县| 张家界市| 平远县| 迁西县| 兴海县| 水城县| 绍兴市| 大田县| 峨眉山市| 台江县| 德江县| 日土县| 黄冈市| 饶平县| 巴东县| 安西县| 望谟县| 芦溪县| 临洮县| 浦县| 吴江市| 金湖县| 黄石市| 绍兴市| 长治县| 安徽省| 扎鲁特旗| 基隆市| 会泽县| 芮城县| 民乐县| 将乐县| 清徐县| 松原市| 黔西| 安远县| 石首市|