duangsuse::Echo
412 subscribers
3.85K photos
105 videos
574 files
5.15K links
duangsuse技术相干订阅
这是 @duangsuse 与技术有关的发布频道
duangsuse 的另外有 throws 闲杂频道
@dsuset
转载频道 @dsusep
duangsuse 有coding,github,gitlab帐号和bilibili帐号

极小可能会有批评zf的消息 如有不适可以退出

suse的小站:https://piped.stream
ps 另有别名 popf.rip
ʕ•̀ω•́ʔ✧ 🐶🍎🏠生死🐜
(>ω<)岂因祸福避趋之 一鿕
Download Telegram
#blog #recommended #life #tw 下面推荐几篇 Web 开发者 Pan 的博文🌝
https://github.com/CASC-Lang/CASC
我会一如往常在频道里进行项目结构分析,然后用与 C# 相对的 Java (竟然不是 Kotlin... )进行一些并行的重写工作。
之所以用 #Java 写这样富于技巧的 #CE 编译器 程序,是因为我想常常新口味了…… 一些原来 Kotlin 里有的我也用 TypeScript 重写过

原项目是一个“能编译繁简体中文、甚至英语”的编译器,目标是对简体程序员可用。
ChAoS_UnItY (Chaos Unity) 开发,由 C# minisk-compiler.net 起意,后者是一个通俗的基础教程示范,也囊括对 IDE 等语言工具 暴露 parser 、 type checker 等“更远的”工作的示范。 #recommended

程式碼範例
一加二十一是二十二 == True
(1 + 9 - 7) 是 (一 加 九 減 七)
1 + 九 減 7

这个没啥,相关知识: 算符链 InfixPattern/«Lua设计与实现» 相关章节; 中文数值 NumUnit/han() #learn

https://github.com/CASC-Lang/CASC/releases/tag/v0.0.1 看了以后我 🤔了很久,发现连 () 都是“运算符”而且还是 "TP"(tech. preview) 后我头疼了(显然我必须改掉这些设计)
而且它的文档表达的 OUA(Operator Unacceptable, 不接受数学形式) 让我也晕了一下

build 没什么好说的, azure CI + dotnet SDK .NET 5.0, publish build artifacts, NUnit tests
其 build.cmd 就是 dotnet build src/+test-proj/

那么看下关键点——词法、语法、计算与类型转换、作用域和函数调用。

Lexer.cs: Whitespace char.IsWhiteSpace (为 " \t\n\r" 优化), Identifier/Keyword char.IsLetter,
整体是 _position, _kind:SyntaxKind 实现的,有趣的是 identifier text 是靠算 span 再 slice 取的,本身倾向流式 Peek(offset), Current, LookAhead=Peek(1), '\u0000' EOF 但不完全
第一个 readonly List<char> 无使用
写的是: 加 減 乘 除 點 開 閉 正 負 且 或 反(非,!) 是 不(是,!=) 赋(=)
开闭括号的我感觉有点奇怪。

加正+減負-
乘*除/
(){}
且 &&
或 ||
反!
!= 不是
是==
賦=
命名都像 SyntaxKind.BangEqualsToken(!=) .StarToken(*) .SlashToken(/) 这样
其中 ==, &&, ||, != 的需消歧义,但没有 lookahead 而是以状态机区分、「不是」「反」「赋」 都是别名

0123456789零一二三四五六七八九
壹貳參肆伍陆柒捌玖拾十百千萬億

靠外置 ReadNumberToken(); 读数
另外都做了 ReportBadCharacter 的错误记录工作
以上皆返回 SyntaxToken ,试用 SyntaxFacts.GetText 拿内文,如果则用当前 span 取 substring 。

Parser.cs:
CompilationUnit, Stmt, BlockStmt, VariableDeclaration, ExprStmt, VariableDeclaration, Expr, BlockStmt, Stmt, ExprStmt, Expr, Expr, AssignmentExpr, AssignmentExpr, AssignmentExpr, BinaryExpr, BinaryExpr, BinaryExpr, PrimaryExpr, BinaryExpr, PrimaryExpr, ParenthesizedExpr, BooleanExpr, NumberExpr, NameExpr, NumberExpr, ParenthesizedExpr, Expr, BooleanExpr, NameExpr

其中带 Binding(他没解释但估计是作用域上下文,但我很好奇为什么要给每个 Node 键一个 BoundedXXX) 支持的:
BlockStatement, ExpressionStatement, VariableDeclaration
LiteralExpression, VariableExpression, AssignmentExpression, UnaryExpression, BinaryExpression

感觉挺无聊的,还是开始重写吧 🤐
不对,把 Text/Stream, Binding, ChineseParser.cs 上的痛点先说下才能继续
架构的问题太大了,尤其是 Original/WithBinding AST, 这个绝对要想办法削掉

其实 Java 的基础面向对象结构绝对不比 C#,我不用 Lombok 但会争取 Kotlin 移植可能,作为休闲弄几天吧。
#bilibili #recommended #Python #code Matlab? https://b23.tv/BV16A411H7Cj
《把所有汉字叠加会看到什么?》
逆推出的相关知识均由三言 方提供。
2.视频由本人使用AE制作,汉字叠加动画用OC模拟(c4d 渲染器)生成。

#DontKnow 一个 OTF 装不下 Unicode 的所有汉字,要三个才够;
叠加汉字会得到■,所以必须加透明度才更有价值;

分析了楷体、仿宋、微软雅黑、唐诗宋词体、细报体等字体,有测试不同方块字结构和日文、韩文,分析了一下造字的基本知识,和汉字的结构。

开始还以为叠字动画是 Ae 手作的,第一秒后都是动画重复,没想到竟真的生成了每一个字的图片导入 c4d... 🌝明明只用一个位图也够精确的

#zhihu https://www.zhihu.com/question/394175264/answer/1221223455

原回答,下面相关代码要的自己 OCR 补上 main 函数。
感觉也挺麻烦的,需要分几次 filter 出特定结构的方块字,取得字形去叠加
#aop #security #recommended #DontKnow #Android 哇,之前早有闻大名的面向侧面编程 #reveng 框架 Frida (frida.re) 竟然这么能干,看来是我大意了,没注意示例😱
https://forum.90sec.com/t/topic/95

“Inject your own scripts into black box processes. Hook any function, spy on crypto APIs or trace private application code, no source code needed. Edit, hit save, and instantly see the results”
方便力,想到以前动态 inspect 执行情况和 Object 的 AndBug debugger ,Frida 的能力更有意思啊,同样能做函数断点
🧐收集各种开放性动态(frida,jdwp,oat_dexdump)、静态(r2,apktool,jad,smalivm)逆向工具,也挺多啊g