March 2014 update

This commit is contained in:
Ingy döt Net 2014-04-02 16:56:35 +00:00
parent 09687c4926
commit a25938f123
1846 changed files with 21876 additions and 5203 deletions

View file

@ -0,0 +1,16 @@
S_Expressions(Str){
Str := RegExReplace(Str, "s)(?<![\\])"".*?[^\\]""(*SKIP)(*F)|((?<![\\])[)(]|\s)", "`n$0`n")
Str := RegExReplace(Str, "`am)^\s*\v+") , Cnt := 0
loop, parse, Str, `n, `r
{
Cnt := A_LoopField=")" ? Cnt-1 : Cnt
Res .= tabs(Cnt) A_LoopField "`r`n"
Cnt := A_LoopField="(" ? Cnt+1 : Cnt
}
return Res
}
tabs(n){
loop, % n
Res .= "`t"
return Res
}

View file

@ -0,0 +1,6 @@
Str =
(
((data da\(\)ta "quot\\ed data" 123 4.5)
("data" (!@# (4.5) "(mo\"re" "data)")))
)
MsgBox, 262144, , % S_Expressions(Str)

View file

@ -1,5 +1,5 @@
import std.stdio, std.conv, std.algorithm, std.variant, std.uni,
std.functional;
std.functional, std.string;
alias Sexp = Variant;
@ -9,8 +9,8 @@ struct Symbol {
}
Sexp parseSexp(string txt) @safe pure /*nothrow*/ {
static bool isIdentChar(in char c) @safe pure /*nothrow*/ {
return c.isAlpha || "0123456789!@#-".canFind(c);
static bool isIdentChar(in char c) @safe pure nothrow {
return c.isAlpha || "0123456789!@#-".representation.canFind(c);
}
size_t pos = 0;