溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

易語言怎么通過文本解析的方式把C代碼轉(zhuǎn)換成易代碼

發(fā)布時(shí)間:2021-06-16 15:50:36 來源:億速云 閱讀:194 作者:小新 欄目:編程語言

這篇文章主要介紹易語言怎么通過文本解析的方式把C代碼轉(zhuǎn)換成易代碼,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

常量數(shù)據(jù)表

.版本 2
.常量 c, "<文本長度: 759>", , '常量值是一段C代碼

C代碼轉(zhuǎn)易代碼

.版本 2
.支持庫 commobj
.支持庫 iext2
.程序集 窗口程序集_啟動(dòng)窗口
.程序集變量 k, 快速文本對象
.程序集變量 k2, 快速文本對象
.子程序 __啟動(dòng)窗口_創(chuàng)建完畢
.局部變量 z, 字符格式
z.字體大小 = 8
z.字體名稱 = “微軟雅黑”
d1.置默認(rèn)字符格式 (z)
d2.置默認(rèn)字符格式 (z)
d1.內(nèi)容 = #c
.子程序 替換_程序命名, 文本型
.參數(shù) str, 文本型
.局部變量 替換到
.局部變量 位置1
.局部變量 位置2
.局部變量 s, 文本型, , "0"
.局部變量 s2, 文本型, , "0"
.局部變量 替換, 文本型, , "0"
.局部變量 替換為, 文本型, , "0"
.局部變量 參考數(shù)組, 文本型
.局部變量 i
k.置文本 (str)
位置1 = k.尋找文本 (“void”, , 假)
.如果真 (位置1 = -1)
  返回 (str)
.如果真結(jié)束
位置2 = k.尋找文本 (“{”, 位置1, 假)
k2.置文本 (k.取文本 (位置1, 位置2 - 位置1))
k2.替換子文本 (#換行符, “”, , , 假)
k2.替換子文本 (“void”, “.子程序”, , , 假)
k2.替換子文本 (“,”, #換行符, , , 假)
k2.替換子文本 (“(”, #換行符, , 1, 假)
位置1 = k2.倒找文本 (“)”, , 真)
.如果真 (位置1 ≠ -1)
  k2.替換文本 (位置1, 1, “”)
.如果真結(jié)束
str = “”
s = k2.分割文本 (#換行符, )
.計(jì)次循環(huán)首 (取數(shù)組成員數(shù) (s), i)
  s2 = 分割文本 (刪首尾空 (s [i]), “ ”, )
  .如果 (取文本右邊 (s2 [2], 1) = “]”)
    s2 [2] = 文本_最右標(biāo)識取左 (s2 [2], “[”)
    參考數(shù)組 = “, 數(shù)組”
  .否則
    參考數(shù)組 = “”
  .如果結(jié)束
  .如果真 (取文本左邊 (s2 [2], 1) = “(”)
    s2 [2] = 文本_按前兩標(biāo)識取中 (s2 [2], “(&”, “)”)
    參考數(shù)組 = “, 參考 數(shù)組”
  .如果真結(jié)束
  .如果真 (取文本左邊 (s2 [2], 1) = “&”)
    s2 [2] = 取文本右邊 (s2 [2], 取文本長度 (s2 [2]) - 1)
    參考數(shù)組 = “, 參考”
  .如果真結(jié)束
  .判斷開始 (s2 [1] = “float”)
    str = str + “.參數(shù) ” + s2 [2] + “, 小數(shù)型” + 參考數(shù)組 + #換行符
  .判斷 (s2 [1] = “int” 或 s2 [1] = “l(fā)ong”)
    str = str + “.參數(shù) ” + s2 [2] + “, 整數(shù)型” + 參考數(shù)組 + #換行符
  .判斷 (s2 [1] = “string”)
    str = str + “.參數(shù) ” + s2 [2] + “, 文本型” + 參考數(shù)組 + #換行符
  .判斷 (s2 [1] = “short”)
    str = str + “.參數(shù) ” + s2 [2] + “, 短整數(shù)型” + 參考數(shù)組 + #換行符
  .默認(rèn)
    str = str + s [i] + #換行符
  .判斷結(jié)束
.計(jì)次循環(huán)尾 ()
返回 (str)
.子程序 替換_索引數(shù)字累加, 文本型
.參數(shù) 文本, 文本型
.局部變量 i1
.局部變量 i2
.局部變量 k0, 快速文本對象
k0.置文本 (文本)
.循環(huán)判斷首 ()
  i1 = k0.尋找文本 (“[”, i2, 真)
  .如果真 (i1 = -1)
    跳出循環(huán) ()
  .如果真結(jié)束
  i1 = i1 + 1
  i2 = k0.尋找文本 (“]”, i1, 真)
  .如果真 (i2 = -1)
    跳出循環(huán) ()
  .如果真結(jié)束
  .判斷開始 (到整數(shù) (k0.取文本 (i1, i2 - i1)) > 0)
    k0.替換文本 (i1, i2 - i1, 到文本 (到整數(shù) (k0.取文本 (i1, i2 - i1)) + 1))
  .判斷 (到字節(jié)集 (k0.取文本 (i1, i2 - i1)) = { 48 })
    k0.替換文本 (i1, 1, “1”)
  .默認(rèn)
  .判斷結(jié)束
.循環(huán)判斷尾 (真)
返回 (k0.取文本 (, ))
.子程序 替換_注釋, 文本型
.參數(shù) 文本, 文本型
.局部變量 i1
.局部變量 i2
k2.置文本 (文本)
.循環(huán)判斷首 ()
  i1 = k2.尋找文本 (“//”, i2, 真)
  .如果真 (i1 = -1)
    跳出循環(huán) ()
  .如果真結(jié)束
  i2 = k2.尋找文本 (#換行符, i1, 真)
  .如果真 (i2 = -1)
    跳出循環(huán) ()
  .如果真結(jié)束
  k2.替換文本 (i1, i2 - i1, “'” + k2.取文本 (i1 + 2, i2 - i1 - 2) + “;”)
.循環(huán)判斷尾 (真)
返回 (k2.取文本 (, ))
.子程序 替換_按行, 文本型
.參數(shù) 文本, 文本型
.局部變量 s, 文本型, , "0"
.局部變量 f, 文本型, , "0"
.局部變量 i
s = 分割文本 (文本, #換行符, )
文本 = “”
.計(jì)次循環(huán)首 (取數(shù)組成員數(shù) (s), i)
  s [i] = 刪首尾空 (s [i])
  .判斷開始 (取文本左邊 (s [i], 6) = “float ”)
    f = 分割文本 (s [i], “float ”, )
    文本 = “.局部變量 ” + 文本_按前兩標(biāo)識取中 (s [i], “float ”, “=”) + “,小數(shù)型” + #換行符 + 文本 + f [2] + #換行符
  .判斷 (尋找文本 (s [i], “*=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “*=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “*” + f [2] + #換行符
  .判斷 (尋找文本 (s [i], “/=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “/=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “/” + f [2] + #換行符
  .判斷 (尋找文本 (s [i], “+=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “+=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “+” + f [2] + #換行符
  .判斷 (尋找文本 (s [i], “-=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “-=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “-” + f [2] + #換行符
  .判斷 (取文本右邊 (s [i], 2) = “++”)
    f = 分割文本 (s [i], “++”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “+1” + #換行符
  .判斷 (取文本右邊 (s [i], 2) = “--”)
    f = 分割文本 (s [i], “--”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “-1” + #換行符
  .默認(rèn)
    文本 = 文本 + s [i] + #換行符
  .判斷結(jié)束
.計(jì)次循環(huán)尾 ()
返回 (文本)
.子程序 替換_函數(shù), 文本型
.參數(shù) 代碼, 文本型
.局部變量 i
.局部變量 原, 文本型, , "0"
.局部變量 到, 文本型, , "0"
k2.置文本 (代碼)
原 = { “/”, “*”, “sqrtf”, “cosf”, “sinf” }
到 = { “÷”, “×”, “求平方根”, “求余弦”, “求正弦 ” }
.計(jì)次循環(huán)首 (取數(shù)組成員數(shù) (原), i)
  k2.替換子文本 (原 [i], 到 [i], , , 假)
.計(jì)次循環(huán)尾 ()
返回 (k2.取文本 (, ))
.子程序 _轉(zhuǎn)換鈕_被單擊
.局部變量 s, 文本型
d2.內(nèi)容 = 替換_程序命名 (文本_按標(biāo)識取左 (d1.內(nèi)容, “{”))
s = 文本_按兩邊標(biāo)識取中 (d1.內(nèi)容, “{”, “}”)
s = 替換_注釋 (s)
s = 替換_索引數(shù)字累加 (s)
s = 子文本替換 (s, #換行符, “”, , , 真)
s = 子文本替換 (s, “;”, #換行符, , , 真)
s = 替換_按行 (s)
s = 替換_函數(shù) (s)
d2.內(nèi)容 = d2.內(nèi)容 + s
.子程序 文本_最右標(biāo)識取左, 文本型, 公開
.參數(shù) 文本, 文本型
.參數(shù) 最右標(biāo)識, 文本型
返回 (取文本左邊 (文本, 倒找文本 (文本, 最右標(biāo)識, , 假) - 1))
.子程序 文本_按標(biāo)識取左, 文本型, 公開
.參數(shù) 文本, 文本型
.參數(shù) 標(biāo)識, 文本型
返回 (取文本左邊 (文本, 尋找文本 (文本, 標(biāo)識, , 假)))
.子程序 文本_按前兩標(biāo)識取中, 文本型, 公開
.參數(shù) 文本, 文本型
.參數(shù) 標(biāo)識_左, 文本型
.參數(shù) 標(biāo)識_右, 文本型
.局部變量 i
.局部變量 r, 快速文本對象
r.置文本 (文本)
i = r.尋找文本 (標(biāo)識_左, , 假)
.如果真 (i = -1)
  返回 (文本)
.如果真結(jié)束
i = i + 取文本長度 (標(biāo)識_左)
返回 (r.取文本 (i, r.尋找文本 (標(biāo)識_右, i, 假) - i))
.子程序 文本_按兩邊標(biāo)識取中, 文本型, 公開
.參數(shù) 文本, 文本型
.參數(shù) 標(biāo)識_左, 文本型
.參數(shù) 標(biāo)識_右, 文本型
.局部變量 i
.局部變量 r, 快速文本對象
r.置文本 (文本)
i = r.尋找文本 (標(biāo)識_左, , 假)
.如果真 (i = -1)
  返回 (文本)
.如果真結(jié)束
i = i + 取文本長度 (標(biāo)識_左)
返回 (r.取文本 (i, r.倒找文本 (標(biāo)識_右, , 假) - i))

運(yùn)行結(jié)果:

易語言怎么通過文本解析的方式把C代碼轉(zhuǎn)換成易代碼

以上是“易語言怎么通過文本解析的方式把C代碼轉(zhuǎn)換成易代碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI