mirror of
https://github.com/ralsina/tartrazine.git
synced 2025-06-08 12:40:25 -03:00
19 lines
436 B
Crystal
19 lines
436 B
Crystal
require "../formatter"
|
|
|
|
module Tartrazine
|
|
class Json < Formatter
|
|
property name = "json"
|
|
|
|
def format(text : String, lexer : Lexer) : String
|
|
outp = String::Builder.new("")
|
|
format(text, lexer, outp)
|
|
outp.to_s
|
|
end
|
|
|
|
def format(text : String, lexer : Lexer, io : IO) : Nil
|
|
tokenizer = Tokenizer.new(lexer, text)
|
|
io << Tartrazine::Lexer.collapse_tokens(tokenizer.to_a).to_json
|
|
end
|
|
end
|
|
end
|