我试着这样做:
解析表单中的文本:
一些文字#{0,0,0}一些文字#{0,0,0}#{0,0,0}更多文字#{0,0,0}
进入一些数据结构的列表:
[内部"一些文本",外部(0,0,0),内部"一些文本",外部(0,0,0),外部(0,0,0),内部"更多文本",外部(0, 0,0)]
所以这些#{a,b,c} -bits应该变成与文本其余部分不同的东西.
我有这个代码:
module ParsecTest where
import Text.ParserCombinators.Parsec
import Monad
type Reference = (Int, Int, Int)
data Transc = Inside String | Outside Reference
deriving (Show)
text :: Parser Transc
text = do
x <- manyTill anyChar ((lookAhead reference) <|> (eof >> return (Inside "")));
return (Inside x)
transc = reference <|> text
alot :: Parser [Transc]
alot = do
manyTill transc eof
reference :: Parser Transc
reference = try (do{ char '#';
char …Run Code Online (Sandbox Code Playgroud) 我正在寻求为一个简短的演示实现一些概念验证演示,其中正在运行的代码知道当前正在执行的代码块的散列"值".例如:
function BBB(a) {
a = 2 * a;
print me.hash; --> "xxxxxxx" (value of BBB-syntax represenation)
return a;
}
function AAA(a, b, c) {
d = BBB(a);
print me.hash; --> "yyyyyyy" (value of AAA-Syntax representation, possibly dependant on value of BBB, but not necessary)
return d;
}
Run Code Online (Sandbox Code Playgroud)
我本能地转向LISPish语言,但还没有成功使用Scheme.而且我很长时间没有接触过Common LISP,我怀疑它可能会这样做(提示赞赏).它不一定非常快,或者一个受欢迎的平台,可以是最具学术性和最奇怪的平台.这只是一个演示.
有没有人知道一种语言/平台能够开箱即用或者修补相对较少?我更喜欢某种解析/树状的东西,而不是实际的源代码.
programming-languages functional-programming metaprogramming common-lisp