duangsuse::Echo
720 subscribers
4.31K photos
131 videos
583 files
6.54K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
我展开一下: (~ (. -> 'boys (' "Rikka" "ice1000" "pandecheng" "Yutta")) (. -> 'say-hello Macro<@args=[:name], @sexp=[:@, [:+, "", [:+, :name, " 女装哦 🌚"]]]>) (Macro<懒得写了....> boys say-hello) ) 好像不是最终的展开结果(那就是整个表达式的展开结果了)( 🌑 好像也未必在展开过程中的某一步有这个状态.... () 算是一个参考吧…
# 开始的设计书放学校了(
# 这不是最终能用的解析器,算是证明有这个能力吧

module Lime
# lime expression parser
# (()) => [[]] Lime sexp
# Lime sexp 以 ( 开始,以 ) 结束
# #t => true, #f => false Lime boolean
# Lime bool literal 以 # 开始,以 t|f 结束
# "" '' Lime string literal
# Lime String 以 ' 开始,以 " "|"'"|")" 结束, _ 被视为字符串中的空格
# Lime String 的另一种表达方式以 " 开始,以 " 结束, #{} 语法可以嵌入代码
# ^[0-9 ]$ lime integer
# Lime Integer 以 0-9 开始,以 ' ' 或 ')' 结束
def sexp(expr)
stack = [] # sexp stack
ast = [] # return value
status = 0 # parser status
temp = ""
# 0 = expecting symbol
# 1 = logging string
# 2 = logging double-quoted string
# 3 = logging integer
i = 0 # current character index
while i < expr.length
if status == 1
if expr[i] == ' ' or expr[i] == "'" or expr[i] == ')'
stack[-1] « temp.gsub('_', ' ')
temp = ""
end

temp += expr[i]
i += 1
next
end

if status == 2
temp += expr[i]
i += 1
next
end

if status == 3
temp += expr[i]
i += 1
next
end

unless /[0-9]/.match(expr[i]).nil?
end

case char
when '('
stack « []
when ')'
ast « stack[-1]
when '#'
when "'"
when '"'
when ' '
end
end
ast.first
end
end
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
所以我想写一个解析器,不过今天还是先睡觉吧...
这个解析器可以解析 (() (' #t) #f) 这样的表达式,虽然 Lime 不止是这样的.....
不过还是递归大概 好 一些
现在使用了 depth stack 来记录 s表达式深度, '(' 进入 sexp, ')' 结束 sexp
( ( ) )
( stack « []
( stack « [], now [[], []]
) ast « stack[-1] (stack 深度应该减小一个单位....
🌑 看来好像还是有差别,等等我再设计一下...
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Programmer Jokes
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Programmer Jokes
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Programmer Jokes
GeekApk 最近的静态页面、Blog程序、API服务器项目都需要重写
API 服务器需要重新设计以加入 RESTful API 和完全的功能
如果我能理解 OAuth 的话肯定会添加 OAuth 支持....
如果完全不使用 OAuth 而是自己再造个轮子也是可以的,而且我已经想好了
但是我还是希望能先考虑一下改进现在的身份验证方式
#backend 我觉得 flatpak 真的未必做得很用心....
就这个 CLI 工具来说,断点继传都没有
flatpak 已经做了很久了,它的作者真的爱它吗? 😶
rustup 都会有断点续传,所以「作者的国家下载得快不需要」这种说法不对
..... 忍不住开始怀疑作者的动机是不是和 GeekApk 的一样 —- 为了方便自己而做的