文件名称:Madness:递归下降到疯狂
文件大小:42KB
文件格式:ZIP
更新时间:2024-04-18 19:40:02
Swift
递归下降到疯狂 疯狂是一种Swift µframework,用于解析简单的无上下文语法中的字符串。 组合来自简单Swift表达式的解析器并进行解析: let digit = % ( " 0 " ... " 9 " ) <|> % ( " a " ... " f " ) <|> % ( " A " ... " F " ) let hex = digit + |> map { strtol ( join ( " " , $0 ), nil , 16 ) } parse ( % " 0x " *> hex, " 0xdeadbeef " ) // => 3,735,928,559 您的解析器可以直接生成自己的模型对象,从而使Madness非常适合在例如游乐场中进行语法实验。 有关使用Madness进行解析的一些示例,请参见Madness.playground 。 采用 乐兴 Madness
【文件预览】:
Madness-master
----.gitignore(102B)
----.travis.yml(2KB)
----MadnessTests()
--------NegationTests.swift(678B)
--------CollectionTests.swift(572B)
--------ReductionTests.swift(896B)
--------MapTests.swift(3KB)
--------Fixtures.swift(2KB)
--------CombinatorTests.swift(754B)
--------StringTests.swift(1KB)
--------AlternationTests.swift(3KB)
--------Info.plist(733B)
--------ErrorTests.swift(874B)
--------RepetitionTests.swift(6KB)
--------ConcatenationTests.swift(3KB)
--------ParserTests.swift(2KB)
--------IgnoreTests.swift(625B)
----Documentation()
--------Lambda Calculus.playground()
--------Colours.playground()
--------Collections.playground()
--------Subset of Common Markdown.playground()
----LICENSE(1KB)
----.gitmodules(123B)
----README.md(5KB)
----Cartfile.resolved(36B)
----Cartfile(37B)
----script()
--------cibuild(1KB)
--------validate-playground.sh(904B)
----Madness()
--------Combinator.swift(648B)
--------Negation.swift(534B)
--------Alternation.swift(2KB)
--------Repetition.swift(4KB)
--------String.swift(2KB)
--------Madness.h(223B)
--------Info.plist(911B)
--------Concatenation.swift(1KB)
--------Map.swift(2KB)
--------Error.swift(2KB)
--------Parser.swift(5KB)
--------SourcePos.swift(2KB)
--------Reduction.swift(885B)
----Carthage()
--------Checkouts()
----Madness.xcworkspace()
--------contents.xcworkspacedata(693B)
----Madness.xcodeproj()
--------xcshareddata()
--------project.xcworkspace()
--------project.pbxproj(39KB)