mirror of
https://github.com/github/semantic.git
synced 2024-11-29 11:02:26 +03:00
Terms annotated with ranges over a string can be printed to JSON.
This commit is contained in:
parent
c058e81183
commit
8c341fc129
@ -124,5 +124,21 @@ public protocol CofreeType {
|
|||||||
|
|
||||||
extension Cofree: CofreeType {}
|
extension Cofree: CofreeType {}
|
||||||
|
|
||||||
|
extension CofreeType where Self.Annotation == Range<String.Index> {
|
||||||
|
public func JSON(source: String) -> Doubt.JSON {
|
||||||
|
return unwrap.JSON(
|
||||||
|
ifLeaf: { _ in .String(source[extract]) },
|
||||||
|
ifRecur: {
|
||||||
|
[
|
||||||
|
"range": [
|
||||||
|
"offset": .Number(Double(source.startIndex.distanceTo($0.extract.startIndex))),
|
||||||
|
"length": .Number(Double($0.extract.count)),
|
||||||
|
],
|
||||||
|
"unwrap": $0.JSON(source)
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
import Prelude
|
import Prelude
|
||||||
|
Loading…
Reference in New Issue
Block a user