您好,登錄后才能下訂單哦!
這篇文章主要介紹易語言怎么通過文本解析的方式把C代碼轉換成易代碼,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
常量數據表
.版本 2 .常量 c, "<文本長度: 759>", , '常量值是一段C代碼
C代碼轉易代碼
.版本 2 .支持庫 commobj .支持庫 iext2 .程序集 窗口程序集_啟動窗口 .程序集變量 k, 快速文本對象 .程序集變量 k2, 快速文本對象 .子程序 __啟動窗口_創建完畢 .局部變量 z, 字符格式 z.字體大小 = 8 z.字體名稱 = “微軟雅黑” d1.置默認字符格式 (z) d2.置默認字符格式 (z) d1.內容 = #c .子程序 替換_程序命名, 文本型 .參數 str, 文本型 .局部變量 替換到 .局部變量 位置1 .局部變量 位置2 .局部變量 s, 文本型, , "0" .局部變量 s2, 文本型, , "0" .局部變量 替換, 文本型, , "0" .局部變量 替換為, 文本型, , "0" .局部變量 參考數組, 文本型 .局部變量 i k.置文本 (str) 位置1 = k.尋找文本 (“void”, , 假) .如果真 (位置1 = -1) 返回 (str) .如果真結束 位置2 = k.尋找文本 (“{”, 位置1, 假) k2.置文本 (k.取文本 (位置1, 位置2 - 位置1)) k2.替換子文本 (#換行符, “”, , , 假) k2.替換子文本 (“void”, “.子程序”, , , 假) k2.替換子文本 (“,”, #換行符, , , 假) k2.替換子文本 (“(”, #換行符, , 1, 假) 位置1 = k2.倒找文本 (“)”, , 真) .如果真 (位置1 ≠ -1) k2.替換文本 (位置1, 1, “”) .如果真結束 str = “” s = k2.分割文本 (#換行符, ) .計次循環首 (取數組成員數 (s), i) s2 = 分割文本 (刪首尾空 (s [i]), “ ”, ) .如果 (取文本右邊 (s2 [2], 1) = “]”) s2 [2] = 文本_最右標識取左 (s2 [2], “[”) 參考數組 = “, 數組” .否則 參考數組 = “” .如果結束 .如果真 (取文本左邊 (s2 [2], 1) = “(”) s2 [2] = 文本_按前兩標識取中 (s2 [2], “(&”, “)”) 參考數組 = “, 參考 數組” .如果真結束 .如果真 (取文本左邊 (s2 [2], 1) = “&”) s2 [2] = 取文本右邊 (s2 [2], 取文本長度 (s2 [2]) - 1) 參考數組 = “, 參考” .如果真結束 .判斷開始 (s2 [1] = “float”) str = str + “.參數 ” + s2 [2] + “, 小數型” + 參考數組 + #換行符 .判斷 (s2 [1] = “int” 或 s2 [1] = “long”) str = str + “.參數 ” + s2 [2] + “, 整數型” + 參考數組 + #換行符 .判斷 (s2 [1] = “string”) str = str + “.參數 ” + s2 [2] + “, 文本型” + 參考數組 + #換行符 .判斷 (s2 [1] = “short”) str = str + “.參數 ” + s2 [2] + “, 短整數型” + 參考數組 + #換行符 .默認 str = str + s [i] + #換行符 .判斷結束 .計次循環尾 () 返回 (str) .子程序 替換_索引數字累加, 文本型 .參數 文本, 文本型 .局部變量 i1 .局部變量 i2 .局部變量 k0, 快速文本對象 k0.置文本 (文本) .循環判斷首 () i1 = k0.尋找文本 (“[”, i2, 真) .如果真 (i1 = -1) 跳出循環 () .如果真結束 i1 = i1 + 1 i2 = k0.尋找文本 (“]”, i1, 真) .如果真 (i2 = -1) 跳出循環 () .如果真結束 .判斷開始 (到整數 (k0.取文本 (i1, i2 - i1)) > 0) k0.替換文本 (i1, i2 - i1, 到文本 (到整數 (k0.取文本 (i1, i2 - i1)) + 1)) .判斷 (到字節集 (k0.取文本 (i1, i2 - i1)) = { 48 }) k0.替換文本 (i1, 1, “1”) .默認 .判斷結束 .循環判斷尾 (真) 返回 (k0.取文本 (, )) .子程序 替換_注釋, 文本型 .參數 文本, 文本型 .局部變量 i1 .局部變量 i2 k2.置文本 (文本) .循環判斷首 () i1 = k2.尋找文本 (“//”, i2, 真) .如果真 (i1 = -1) 跳出循環 () .如果真結束 i2 = k2.尋找文本 (#換行符, i1, 真) .如果真 (i2 = -1) 跳出循環 () .如果真結束 k2.替換文本 (i1, i2 - i1, “'” + k2.取文本 (i1 + 2, i2 - i1 - 2) + “;”) .循環判斷尾 (真) 返回 (k2.取文本 (, )) .子程序 替換_按行, 文本型 .參數 文本, 文本型 .局部變量 s, 文本型, , "0" .局部變量 f, 文本型, , "0" .局部變量 i s = 分割文本 (文本, #換行符, ) 文本 = “” .計次循環首 (取數組成員數 (s), i) s [i] = 刪首尾空 (s [i]) .判斷開始 (取文本左邊 (s [i], 6) = “float ”) f = 分割文本 (s [i], “float ”, ) 文本 = “.局部變量 ” + 文本_按前兩標識取中 (s [i], “float ”, “=”) + “,小數型” + #換行符 + 文本 + 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” + #換行符 .默認 文本 = 文本 + s [i] + #換行符 .判斷結束 .計次循環尾 () 返回 (文本) .子程序 替換_函數, 文本型 .參數 代碼, 文本型 .局部變量 i .局部變量 原, 文本型, , "0" .局部變量 到, 文本型, , "0" k2.置文本 (代碼) 原 = { “/”, “*”, “sqrtf”, “cosf”, “sinf” } 到 = { “÷”, “×”, “求平方根”, “求余弦”, “求正弦 ” } .計次循環首 (取數組成員數 (原), i) k2.替換子文本 (原 [i], 到 [i], , , 假) .計次循環尾 () 返回 (k2.取文本 (, )) .子程序 _轉換鈕_被單擊 .局部變量 s, 文本型 d2.內容 = 替換_程序命名 (文本_按標識取左 (d1.內容, “{”)) s = 文本_按兩邊標識取中 (d1.內容, “{”, “}”) s = 替換_注釋 (s) s = 替換_索引數字累加 (s) s = 子文本替換 (s, #換行符, “”, , , 真) s = 子文本替換 (s, “;”, #換行符, , , 真) s = 替換_按行 (s) s = 替換_函數 (s) d2.內容 = d2.內容 + s .子程序 文本_最右標識取左, 文本型, 公開 .參數 文本, 文本型 .參數 最右標識, 文本型 返回 (取文本左邊 (文本, 倒找文本 (文本, 最右標識, , 假) - 1)) .子程序 文本_按標識取左, 文本型, 公開 .參數 文本, 文本型 .參數 標識, 文本型 返回 (取文本左邊 (文本, 尋找文本 (文本, 標識, , 假))) .子程序 文本_按前兩標識取中, 文本型, 公開 .參數 文本, 文本型 .參數 標識_左, 文本型 .參數 標識_右, 文本型 .局部變量 i .局部變量 r, 快速文本對象 r.置文本 (文本) i = r.尋找文本 (標識_左, , 假) .如果真 (i = -1) 返回 (文本) .如果真結束 i = i + 取文本長度 (標識_左) 返回 (r.取文本 (i, r.尋找文本 (標識_右, i, 假) - i)) .子程序 文本_按兩邊標識取中, 文本型, 公開 .參數 文本, 文本型 .參數 標識_左, 文本型 .參數 標識_右, 文本型 .局部變量 i .局部變量 r, 快速文本對象 r.置文本 (文本) i = r.尋找文本 (標識_左, , 假) .如果真 (i = -1) 返回 (文本) .如果真結束 i = i + 取文本長度 (標識_左) 返回 (r.取文本 (i, r.倒找文本 (標識_右, , 假) - i))
運行結果:
以上是“易語言怎么通過文本解析的方式把C代碼轉換成易代碼”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。