mirror of
https://github.com/ralsina/tartrazine.git
synced 2025-08-02 13:59:51 +00:00
19 lines
444 B
Crystal
19 lines
444 B
Crystal
require "../formatter"
|
|
|
|
module Tartrazine
|
|
class Json < Formatter
|
|
property name = "json"
|
|
|
|
def format(text : String, lexer : BaseLexer) : String
|
|
outp = String::Builder.new("")
|
|
format(text, lexer, outp)
|
|
outp.to_s
|
|
end
|
|
|
|
def format(text : String, lexer : BaseLexer, io : IO) : Nil
|
|
tokenizer = lexer.tokenizer(text)
|
|
io << Tartrazine::RegexLexer.collapse_tokens(tokenizer.to_a).to_json
|
|
end
|
|
end
|
|
end
|