https://github.com/dhakehurst/net.akehurst.language/blob/efafa3e57f89ddea2f81ca3080121f2e70cce9e0/net.akehurst.language/agl-processor/src/commonMain/kotlin/processor/Agl.kt#L57
草,学到了,原来 Kotlin/Multiplatform 重载要这么用
草,学到了,原来 Kotlin/Multiplatform 重载要这么用
GitHub
dhakehurst/net.akehurst.language
Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc) - dhakehurst/net.akehurst.language
https://github.com/dhakehurst/net.akehurst.language/blob/efafa3e57f89ddea2f81ca3080121f2e70cce9e0/net.akehurst.language/agl-processor/src/commonMain/kotlin/processor/LanguageProcessorDefault.kt#L94
草,觉得可以学习一下,自带补齐方法
草,觉得可以学习一下,自带补齐方法
override fun expectedAt(goalRuleName: String, inputText: CharSequence, position: Int, desiredDepth: Int): List<CompletionItem>
override fun expectedAt(inputText: CharSequence, position: Int, desiredDepth: Int): List<CompletionItem>GitHub
dhakehurst/net.akehurst.language
Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc) - dhakehurst/net.akehurst.language
https://github.com/dhakehurst/net.akehurst.language/blob/efafa3e57f89ddea2f81ca3080121f2e70cce9e0/net.akehurst.language/agl-processor/src/commonMain/kotlin/parser/scannerless/ScannerlessParser.kt#L130
看到这里我被宏大的一个
看到这里我被宏大的一个
fun 给震惊到了,忽然想到为什么 ParserKt 不能 lazy 处理 SourceLocation 的问题,才记起 ParserKt 的输入是纯 Feed<T> 流,不可能回溯……GitHub
dhakehurst/net.akehurst.language
Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc) - dhakehurst/net.akehurst.language
https://github.com/dhakehurst/net.akehurst.language/blob/efafa3e57f89ddea2f81ca3080121f2e70cce9e0/net.akehurst.language/agl-processor/src/commonMain/kotlin/parser/scannerless/InputFromCharSequence.kt
看到这个“新”Parser lib 我就知道 ParserKt 的设计是有多不容易了……
遇到 parser 既没有 lexer/parser 又没有 TERMINAL/NON-TERMINAL 还不强调scannerless因为它本身概念上就不存在scanner这…… 虽然和 Haskell 系的 Parserc 差不多,但更 Kotlin 一些
如今又得重构了……
看到这个“新”Parser lib 我就知道 ParserKt 的设计是有多不容易了……
遇到 parser 既没有 lexer/parser 又没有 TERMINAL/NON-TERMINAL 还不强调scannerless因为它本身概念上就不存在scanner这…… 虽然和 Haskell 系的 Parserc 差不多,但更 Kotlin 一些
如今又得重构了……
GitHub
dhakehurst/net.akehurst.language
Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc) - dhakehurst/net.akehurst.language
https://github.com/dhakehurst/net.akehurst.kotlin.kt2ts #Kotlin #TypeScript #dev #tools 🤔 第一次知道可以这么干
看来 ParserKt 的 Kotlin/JS document 要靠这个人的实践经验了
看来 ParserKt 的 Kotlin/JS document 要靠这个人的实践经验了
GitHub
GitHub - dhakehurst/net.akehurst.kotlin.kt2ts: Typescript definition file generator for kotlin (js) classes
Typescript definition file generator for kotlin (js) classes - dhakehurst/net.akehurst.kotlin.kt2ts
https://github.com/dhakehurst/net.akehurst.language/blob/efafa3e57f89ddea2f81ca3080121f2e70cce9e0/net.akehurst.language/agl-processor/src/commonMain/kotlin/parser/sppt/SharedPackedParseTreeDefault.kt
这一系列操作…… 很算法啊
一般类似 ANTLR 一样的工具也会有 rewrite/action 的选择吧,可这个几乎只有 SPPT(shared packed parse tree) 一样……
ParserKt 是纯递归下降解析组合子,所以没有 YaCC 系的 Parser-Tree 说法,只有内部递归的调用树和临时的 Fold 对象,没有这种……
这一系列操作…… 很算法啊
一般类似 ANTLR 一样的工具也会有 rewrite/action 的选择吧,可这个几乎只有 SPPT(shared packed parse tree) 一样……
ParserKt 是纯递归下降解析组合子,所以没有 YaCC 系的 Parser-Tree 说法,只有内部递归的调用树和临时的 Fold 对象,没有这种……
GitHub
dhakehurst/net.akehurst.language
Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc) - dhakehurst/net.akehurst.language
#Math 如何看待《华裔教授发现二次方程「极简」解法:丢掉公式,全球教科书可能都要改了》? - 王ruo宇的回答 - 知乎
https://www.zhihu.com/question/359765958/answer/930330106
https://www.zhihu.com/question/359765958/answer/930330106
Zhihu
如何看待《华裔教授发现二次方程「极简」解法:丢掉公式,全球教科书可能都要改了》? - 知乎
对于全球几十亿人口来说,二次公式是必须记下来的一个复杂公式(可能也是唯一的一个),这也是我们必须学…
你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了 - 机器之心的文章 - 知乎
https://zhuanlan.zhihu.com/p/112650761 #PLT #Python
https://zhuanlan.zhihu.com/p/112650761 #PLT #Python
知乎专栏
你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了
用文言文写的官方编程教程《文言陰符》,类似 pip 那样的包管理工具「文淵閣」,还有文言编程开源 IDE「文言齋」,文言编程语言已经这么成熟了?机器之心报道,参与:思、Jamin。机器之心曾介绍过 CMU 计算机专业…
./gui_crop_select.py ~/视频/IMG_6302.MP4
./extract_subtitles.py -crop '593(85,287)[481,38]' --crop-debug -filter-code '~cvInGrayRange(it, 0xcc, 0xff)' -lang chi_sim --chunk-size 1000 --use-sharp ~/视频/IMG_6302.MP4 现场来提取一个字幕时轴^
./timeline_ops.py merge frames/timeline_IMG_6302.MP4.txt 0.25|./timeline_ops.py to-lrc 25 srt>test.srt