日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 脚本引擎,GitHub - PassByYou888/zExpression: 脚本与编译器内部的语法引擎内核,也是一种op内核,zExpression可以轻松实现自己的脚本引擎...

發布時間:2024/7/5 编程问答 28 豆豆

zExpression 句法編譯器+解釋器,腳本引擎內核

技術體系解釋:

在編譯原理的技術體系中,凡是處理文本化的代碼前,都需要做一次預處理,其中我們常說的語法,語法糖,都是一種預處理程序

詞法:詞法是對文本關鍵字,數字,符號,進行分類整理,最后形成詞法樹,并且嚴格遵循順序化處理原則

申明:在預處理代碼中,申明部分,叫做申明樹,申明樹又依賴于詞法順序預處理,因為對詞法預處理是一種簡化手段

句法:在經過了申明預處理以后,是對代碼表達式的單行邏輯操作進行處理,這一步叫句法,取為zExpression句法編譯器是我從曾經撰寫的編譯器中特意剝離出來的解決方案,它可以獨立出來分發和使用,可以實用數字化預處理,圖形圖像,科學計算等等領域,也可以作為學習提高自己的手段

核心思路

實現zExpression采用的是對等復雜化原則,面向解決編譯器問題而編寫,復雜度相比于常規程序會高許多,因為解決了最終問題,代碼在命名和堆結構上也看不出漏洞,所以它是成熟句法解釋器方案

zExpression特點

完整的單步原子化操作

完整的符號優先級后處理

能預處理字面錯誤,并反饋錯誤發生在哪

能識別浮點和整數的自然數寫法

支持函數調用

支持自定義腳本語法

逆波蘭2.0符號優先級處理

支持安卓和蘋果各型號手機

完整的功能Demo,完整性能和解析準確性評估框架

在編譯以后,能形成原子化op代碼,可以通過stream高速載入并運行,不限制cpu類型

OP代碼框架可以輕松譯碼成ARMv7 ARMx64 x64 x86等平臺的機器碼

矩陣和向量表達式支持

平臺支持,test with Delphi 10.3 update 2 and FPC 3.0.4

Windows: delphi-CrossSocket(C/S OK), delphi-DIOCP(C/S OK), delphi-ICS(C/S OK), delphi-Indy(C/S OK),delphi+fpc Synapse(C/S OK)

Android:Indy(C/S OK), CrossSocket(Only Client)

IOS Device: Indy(C/S OK), CrossSocket(Only Client)

IOS Simulaor: n/a

OSX: Indy(C/S OK),ICS(未測試), CrossSocket(C/S OK)

Ubuntu16.04 x64 server: Indy(C/S OK), CrossSocket(C/S OK)

Ubuntu18.04 x86+x64 Desktop:only fpc3.0.4 Synapse(C/S OK)

Ubuntu18.04 x86+x64 Server:only fpc3.0.4 Synapse(C/S OK)

Ubuntu18.04 arm32+arm neon Server:only fpc3.0.4 Synapse(C/S OK)

Ubuntu18.04 arm32+arm neon desktop:only fpc3.0.4 compile ok,no test on run.

Ubuntu16.04 Mate arm32 desktop:only fpc3.0.4 compile ok, test passed

Raspberry Pi 3 Debian linux armv7 desktop,only fpc 3.0.4,test passed.

wince(arm eabi hard flaot),windows 10 IOT,only fpc 3.3.1,test passed.

CPU架構支持,test with Delphi 10.3 update 2 and FPC 3.0.4

MIPS(fpc-little endian), soft float, test pass on QEMU

intel X86(fpc-x86), soft float

intel X86(delphi+fpc), hard float,80386,PENTIUM,PENTIUM2,PENTIUM3,PENTIUM4,PENTIUMM,COREI,COREAVX,COREAVX2

intel X64(fpc-x86_64), soft float

intel X64(delphi+fpc), hard float,ATHLON64,COREI,COREAVX,COREAVX2

ARM(fpc-arm32-eabi,soft float):ARMV3,ARMV4,ARMV4T,ARMV5,ARMV5T,ARMV5TE,ARMV5TEJ

ARM(fpc-arm32-eabi,hard float):ARMV6,ARMV6K,ARMV6T2,ARMV6Z,ARMV6M,ARMV7,ARMV7A,ARMV7R,ARMV7M,ARMV7EM

ARM(fpc-arm64-eabi,hard float):ARMV8,aarch64

更新日志

2020-3

對注冊函數新增申明信息

修復函數前符號 -func(1+1)

修復函數后符號 func(1+1)-1

2019-7

矩陣表達式支持

// 構建3*3的variant矩陣,使用c語法表達式

procedure MatrixExp;

var

m: TExpressionValueMatrix;

begin

DoStatus('');

m := EvaluateExpressionMatrix(3, 3,

'"hello"+"-baby"/*備注:字符串聯合*/,true,false,' +

'1+1,2+2,3+3,' +

'4*4,4*5,4*6', tsC);

DoStatus(m);

end;

// 構建variant向量數組,使用pascal語法表達式

procedure MatrixVec;

var

v: TExpressionValueVector;

begin

DoStatus('');

v := EvaluateExpressionVector('0.1*(0.1+max(0.15,0.11)){備注內容},1,2,3,4,5,6,7,8,9', tsPascal);

DoStatus(v);

end;

2019-4

修復TextParsing備注編碼后的bug

OpCode新增回調調用類型(參考zAI工具鏈中的Script支持)

2018-9-29

新技術:新增文本探頭技術:可將螞蟻程序的編程復雜度降低50%

新技術:逐字符文本字符爬取性能提升%500

多平臺:全面支持多種IOT系統以及多處理器硬件架構

新Demo:新增一個FPC的Demo,該Demo不使用匿名函數

工藝:兼容基于FPC對IOT的支持:從底層到高級,大規模統一調整命名,此項調整會影響很多工程的代碼細節

// 本項目中的回調分為3種

// call: 直接指針回調,fpc+delphi有效

// method: 方法回調,會繼承一個方法宿主的地址,fpc+delphi有效

// proc: 匿名過程回調,只有delphi有效

// 如果本項調整對于改造現有工程有一定的工作量,請使用字符串批量處理工具

// 在任何有回調重載的地方,方法與函數,均需要在后綴曾加回調類型首字母說明

// 如

RunOp 變更為 RunOpP() // 后綴加P表示匿名類型回調

RunOp 變更為 RunOpM() // 后綴加M表示方法類型的回調

RunOp 變更為 RunOpC() // 后綴加C表示指針類型的回調

2018-7-6

大幅修正底層庫的命名規則

對fpc/86/64平臺支持,全部基礎庫支持Linux下的無故障編譯和運行

對fpc編譯器3.1.1全面支持

新增大小字節序支持

修復對32位fpc編譯器不認for用Int64的問題

修復字符串在fpc編譯器運行于linux發生異常的問題

新增pascal預編譯工具,將pascal代碼規范成c風格的全部統一大小寫,全面兼容Linux區分大小寫文件名的機制

2018-4-12

修復內核中的內存越界bug:該bug的癥狀為無故提示內存無法訪問,通過正常debug很難排除,這是是內存越界時所造成的bug

2018-3-1

在TPascalString內核中新增模糊字符串對比函數(SmithWaterman),優化與測試完成

2018-2-28

修復c轉義字符buf,感謝阿木qq345148965

將charPos的參數命名更改成了cOffset,并且加入const修飾符

2018-2-26

修復使用Release模式無法編譯問題

修復zExpression的切割分段不正確問題

小幅提升字符探頭的切割性能(splitToken,splitChar)

因為底層重寫了一個原子鎖,在很多record申明前加入了packed修飾符

2018-2-25

新增自定義表達式符號支持

新增自定義表達式符號的演示

2018-2-25

修復嵌套函數參數不能正確展開接口的問題

修復解析引擎的數字探頭不能識別16進制自然數和函數問題

新增一個賦值的demo范例,包含變量申明,靜態復用,動態復用,總共三部曲,請在范例演示中自行研究

修復字符串和數字匹配聯合的問題

支持c代碼風格0x16進制語法

2018-2-6

重寫了一次解析器內核,支持函數調用,從現在起,zExpression會不斷更新

使用zExpression有疑問請加互助qq群490269542,請不要直接聯系作者

by.qq600585

2017-6

總結

以上是生活随笔為你收集整理的android 脚本引擎,GitHub - PassByYou888/zExpression: 脚本与编译器内部的语法引擎内核,也是一种op内核,zExpression可以轻松实现自己的脚本引擎...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线碰 | 午夜久久久久久久 | 少妇高潮一69aⅹ | 大黑人交xxx极品hd | 国产永久精品 | 91自啪| 国产av天堂无码一区二区三区 | 91精品国产综合久久福利软件 | 中文字幕乱码无码人妻系列蜜桃 | 欧美激情午夜 | 国产成人无码一区二区在线播放 | 特大黑人巨交吊性xxxxhd | 欧美日韩中文字幕在线视频 | 91精品国产综合久久久密臀九色 | 国产永久视频 | 一级v片 | 小情侣高清国产在线播放 | 亚洲人成电影在线播放 | mm131美女大尺度私密照尤果 | 欧美黑人疯狂性受xxxxx喷水 | 青青草手机视频在线观看 | 国产精品久久久久毛片软件 | 草草影院最新网址 | 午夜xxxxx| 北条麻妃一区二区三区免费 | av一二三 | 日本中文字幕视频在线 | 啪视频在线观看 | 夜夜嗨一区二区三区 | 欧美久久久久久久久中文字幕 | 伊人精品在线观看 | av免费在线观看网址 | 午夜精品久久久久久久爽 | 国产精品一区在线看 | 日韩欧美成人网 | a级性生活视频 | 欧美一级做 | 777久久久精品一区二区三区 | 玖玖视频| 日本精品一区二区 | 久久都是精品 | 性高跟鞋xxxxhd国产电影 | 成人黄色免费在线观看 | 成人做爰免费视频免费看 | 亚洲在线免费观看 | 国产精品久久久久999 | av网在线观看 | 久久久久亚洲AV成人 | 色婷婷aⅴ一区二区三区 | 国产天堂在线观看 | 久久福利影视 | 国产在线第一页 | 片多多在线观看 | 亚洲精品一区二区三区蜜臀 | 国产精品三级在线观看 | 激情国产在线 | 综合网伊人 | 九色视频国产 | 国产一区二区在线观看视频 | 成人精品网址 | 91蜜桃网站 | 中文字幕视频观看 | 自宅警备员在线观看 | 无码人妻丰满熟妇区五十路百度 | 正在播放老肥熟妇露脸 | 性色av蜜臀av色欲av | 韩国三色电费2024免费吗怎么看 | japan粗暴video蹂躏 | 深夜视频在线免费观看 | 天天干在线观看 | 亚洲黄片一区二区 | 欧美自拍偷拍一区二区 | 欧美色图亚洲自拍 | 好屌妞视频这里只有精品 | 男ji大巴进入女人的视频 | 欧美精品在欧美一区二区少妇 | 国产亚洲精品久久久久久久久动漫 | 在线中文字幕播放 | 激情五月开心婷婷 | 在线免费观看黄色片 | 欧美性受xxxx黑人xyx | 原神女裸体看个够无遮挡 | 人人91| 国产+日韩+欧美 | 美女国产网站 | 99干99| 日韩中文字幕高清 | 亚洲欧美在线视频免费 | 亚洲三区av| 日韩精品在线观看一区二区三区 | 国产美女毛片 | 日本不卡视频在线观看 | 日本一区不卡在线观看 | 打屁屁日本xxxxx变态 | 国产亚洲精品久久久久久青梅 | 黄色网页免费 | 金瓶狂野欧美性猛交xxxx | 精品国产乱码一区二区三区99 | 日本免费福利视频 |