本申請(qǐng)涉及計(jì)算機(jī),具體地涉及一種編程語(yǔ)言編譯方法、一種編程語(yǔ)言編譯裝置、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)及一種終端設(shè)備。
背景技術(shù):
1、c++和st都是編程語(yǔ)言,其中,st語(yǔ)言對(duì)工業(yè)行為的支持靈活方便,使用st語(yǔ)言來(lái)實(shí)現(xiàn)工藝流程能夠提高開(kāi)發(fā)效率以及代碼可讀性。目前c++語(yǔ)言的編譯器很多,有g(shù)cc、tinyc等,還有集成編譯器到ide中的如visualstudio,而st語(yǔ)言的編譯器一般都集成在plc開(kāi)發(fā)軟件中。目前,工控行業(yè)的上位機(jī)基礎(chǔ)軟件和處理單元通常需要功能強(qiáng)大且性能高的c++語(yǔ)言來(lái)進(jìn)行主體框架的開(kāi)發(fā),但是現(xiàn)有的編譯器不支持c++中嵌入st語(yǔ)言,不能將c++和st語(yǔ)言放在一起編譯,因此,目前涉及內(nèi)部工藝流程處理的模塊也是用c++開(kāi)發(fā),導(dǎo)致內(nèi)部工藝流程代碼繁瑣而且可讀性不高。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例的目的是提供一種編程語(yǔ)言編譯方法、一種編程語(yǔ)言編譯裝置、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)及一種終端設(shè)備,以解決上述問(wèn)題。
2、為了實(shí)現(xiàn)上述目的,本申請(qǐng)第一方面提供一種編程語(yǔ)言編譯方法,包括:
3、響應(yīng)于文件編譯指令,獲取待編譯的第一程序文件;
4、在確定所述第一程序文件的文件標(biāo)識(shí)為指定文件標(biāo)識(shí)的情況下,通過(guò)正則表達(dá)式對(duì)所述第一程序文件的程序文本進(jìn)行語(yǔ)法匹配,獲得語(yǔ)法匹配結(jié)果;
5、若根據(jù)語(yǔ)法匹配結(jié)果確定所述第一程序文件的編寫(xiě)語(yǔ)言為第一程序語(yǔ)言,將所述第一程序文件轉(zhuǎn)換為基于第二程序語(yǔ)言的第二程序文件。
6、可選地,所述第一程序語(yǔ)言為st語(yǔ)言,所述第二程序語(yǔ)言為c++語(yǔ)言。
7、可選地,所述文件標(biāo)識(shí)為所述第一程序文件的文件名后綴標(biāo)識(shí)。
8、可選地,所述指定文件標(biāo)識(shí)為st語(yǔ)言程序文件的文件名后綴標(biāo)識(shí)。
9、可選地,通過(guò)正則表達(dá)式對(duì)所述第一程序文件的程序文本進(jìn)行語(yǔ)法匹配,獲得語(yǔ)法匹配結(jié)果,包括:
10、對(duì)所述第一程序文件的程序文本進(jìn)行關(guān)鍵詞掃描,獲得所述第一程序文件的至少一個(gè)關(guān)鍵詞;
11、基于提取到的關(guān)鍵詞,通過(guò)預(yù)設(shè)的正則表達(dá)式規(guī)則對(duì)所述第一程序文件進(jìn)行語(yǔ)法識(shí)別,獲得對(duì)所述第一程序文件的多個(gè)語(yǔ)法識(shí)別結(jié)果;
12、基于對(duì)所述第一程序文件的多個(gè)語(yǔ)法識(shí)別結(jié)果確定所述語(yǔ)法匹配結(jié)果。
13、可選地,所述語(yǔ)法識(shí)別結(jié)果包括語(yǔ)法識(shí)別結(jié)果為真或語(yǔ)法識(shí)別結(jié)果為假;基于對(duì)所述第一程序文件的多個(gè)語(yǔ)法識(shí)別結(jié)果確定所述語(yǔ)法匹配結(jié)果,包括:
14、獲取對(duì)所述第一程序文件的各個(gè)語(yǔ)法識(shí)別結(jié)果;
15、確定語(yǔ)法識(shí)別結(jié)果為真的語(yǔ)法識(shí)別結(jié)果占所有語(yǔ)法識(shí)別結(jié)果的比例;
16、若得到的比例不低于預(yù)設(shè)的比例閾值,確定所述第一程序文件的編寫(xiě)語(yǔ)言為第一程序語(yǔ)言,生成表征所述第一程序文件的編寫(xiě)語(yǔ)言為第一程序語(yǔ)言的語(yǔ)法匹配結(jié)果。
17、可選地,將所述第一程序文件轉(zhuǎn)換為基于第二程序語(yǔ)言的第二程序文件,包括:
18、對(duì)所述第一程序文件的程序文本進(jìn)行關(guān)鍵詞掃描,獲得所述第一程序文件的至少一個(gè)關(guān)鍵詞;
19、基于提取到的關(guān)鍵詞,通過(guò)預(yù)設(shè)的正則表達(dá)式規(guī)則對(duì)所述第一程序文件進(jìn)行語(yǔ)法識(shí)別,以對(duì)所述第一程序文件進(jìn)行程序的語(yǔ)句提??;
20、調(diào)用預(yù)設(shè)的語(yǔ)法匹配表,將從所述第一程序文件提取到的語(yǔ)句轉(zhuǎn)換為滿足第二程序語(yǔ)言語(yǔ)法的語(yǔ)句,得到轉(zhuǎn)換后的第二程序文件,其中,所述語(yǔ)法匹配表至少包括第一程序語(yǔ)言的不同語(yǔ)法與第二程序語(yǔ)言的不同語(yǔ)法的映射關(guān)系。
21、本申請(qǐng)第二方面,提供一種編程語(yǔ)言編譯裝置,包括:
22、文件獲取模塊,被配置為響應(yīng)于文件編譯指令,獲取待編譯的第一程序文件;
23、語(yǔ)法匹配模塊,被配置為在確定所述第一程序文件的文件標(biāo)識(shí)為指定文件標(biāo)識(shí)的情況下,通過(guò)正則表達(dá)式對(duì)所述第一程序文件的程序文本進(jìn)行語(yǔ)法匹配,獲得語(yǔ)法匹配結(jié)果;
24、語(yǔ)法轉(zhuǎn)換模塊,被配置為若根據(jù)語(yǔ)法匹配結(jié)果確定所述第一程序文件的編寫(xiě)語(yǔ)言為第一程序語(yǔ)言,將所述第一程序文件轉(zhuǎn)換為基于第二程序語(yǔ)言的第二程序文件。
25、本申請(qǐng)第三方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有當(dāng)被處理器執(zhí)行時(shí)使得處理器執(zhí)行如上述的編程語(yǔ)言編譯方法的計(jì)算機(jī)程序。
26、本申請(qǐng)第四方面,提供一種終端設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述的編程語(yǔ)言編譯方法。
27、本申請(qǐng)?zhí)峁┑膶?shí)施方式具有以下有益效果:
28、本申請(qǐng)通過(guò)在編譯器中封裝st語(yǔ)言檢測(cè)模塊和st語(yǔ)言轉(zhuǎn)c++模塊,從而通過(guò)在c++代碼中遷移st語(yǔ)言,實(shí)現(xiàn)了對(duì)c++和st語(yǔ)言一同編譯的效果。
29、本申請(qǐng)實(shí)施例或?qū)嵤┓绞降钠渌卣骱蛢?yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。
1.一種編程語(yǔ)言編譯方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的編程語(yǔ)言編譯方法,其特征在于,所述第一程序語(yǔ)言為st語(yǔ)言,所述第二程序語(yǔ)言為c++語(yǔ)言。
3.根據(jù)權(quán)利要求1所述的編程語(yǔ)言編譯方法,其特征在于,所述文件標(biāo)識(shí)為所述第一程序文件的文件名后綴標(biāo)識(shí)。
4.根據(jù)權(quán)利要求2所述的編程語(yǔ)言編譯方法,其特征在于,所述指定文件標(biāo)識(shí)為st語(yǔ)言程序文件的文件名后綴標(biāo)識(shí)。
5.根據(jù)權(quán)利要求1所述的編程語(yǔ)言編譯方法,其特征在于,通過(guò)正則表達(dá)式對(duì)所述第一程序文件的程序文本進(jìn)行語(yǔ)法匹配,獲得語(yǔ)法匹配結(jié)果,包括:
6.根據(jù)權(quán)利要求5所述的編程語(yǔ)言編譯方法,其特征在于,所述語(yǔ)法識(shí)別結(jié)果包括語(yǔ)法識(shí)別結(jié)果為真或語(yǔ)法識(shí)別結(jié)果為假;基于對(duì)所述第一程序文件的多個(gè)語(yǔ)法識(shí)別結(jié)果確定所述語(yǔ)法匹配結(jié)果,包括:
7.根據(jù)權(quán)利要求1所述的編程語(yǔ)言編譯方法,其特征在于,將所述第一程序文件轉(zhuǎn)換為基于第二程序語(yǔ)言的第二程序文件,包括:
8.一種編程語(yǔ)言編譯裝置,其特征在于,包括:
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有當(dāng)被處理器執(zhí)行時(shí)使得處理器執(zhí)行如權(quán)利要求1-7中任一項(xiàng)權(quán)利要求所述的編程語(yǔ)言編譯方法的計(jì)算機(jī)程序。
10.一種終端設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1-7中任一項(xiàng)權(quán)利要求所述的編程語(yǔ)言編譯方法。