Plaster

common-lisp
CL-USER> (cl-tree-sitter:register-language :json "tree-sitter-json") :JSON CL-USER> (cl-tree-sitter:parse-string :json "{\"hi\":[1,2,null]}") (:DOCUMENT ((0 0) (17 0)) ((:OBJECT ((0 0) (17 0)) ((:PAIR ((1 0) (16 0)) (((:KEY :STRING) ((1 0) (5 0)) ((:STRING-CONTENT ((2 0) (4 0)) NIL))) ((:VALUE :ARRAY) ((6 0) (16 0)) ((:NUMBER ((7 0) (8 0)) NIL) (:NUMBER ((9 0) (10 0)) NIL) (:NULL ((11 0) (15 0)) NIL))))))))) CL-USER> (cl-tree-sitter:parse-string :java (alexandria:read-file-into-string "/home/death/lisp/cl-tree-sitter/libs/tree-sitter-java/examples/java-hg-test/DateTimeTest.java")) (:PROGRAM ((0 0) (0 15)) ((:PACKAGE-DECLARATION ((0 0) (27 0)) ((:SCOPED-IDENTIFIER ((8 0) (26 0)) ((:SCOPED-IDENTIFIER ((8 0) (19 0)) ((:IDENTIFIER ((8 0) (11 0)) NIL) (:IDENTIFIER ((12 0) (19 0)) NIL))) (:IDENTIFIER ((20 0) (26 0)) NIL))))) (:IMPORT-DECLARATION ((0 2) (24 2)) ((:IDENTIFIER ((7 2) (10 2)) NIL) (:IDENTIFIER ((11 2) (16 2)) NIL) (:IDENTIFIER ((17 2) (23 2)) NIL))) (:IMPORT-DECLARATION ((0 3) (22 3)) ((:IDENTIFIER ((7 3) (10 3)) NIL) (:IDENTIFIER ((11 3) (16 3)) NIL) (:IDENTIFIER ((17 3) (21 3)) NIL))) (:CLASS-DECLARATION ((0 5) (1 14)) ((:MODIFIERS ((0 5) (6 5)) NIL) ((:NAME :IDENTIFIER) ((13 5) (25 5)) NIL) ((:BODY :CLASS-BODY) ((26 5) (1 14)) ((:METHOD-DECLARATION ((4 7) (5 12)) ((:MODIFIERS ((4 7) (10 8)) ((:MARKER-ANNOTATION ((4 7) (9 7)) (((:NAME :IDENTIFIER) ((5 7) (9 7)) NIL))))) ((:TYPE :VOID-TYPE) ((11 8) (15 8)) NIL) ((:NAME :IDENTIFIER) ((16 8) (30 8)) NIL) ((:PARAMETERS :FORMAL-PARAMETERS) ((30 8) (32 8)) NIL) ((:BODY :BLOCK) ((33 8) (5 12)) ((:LOCAL-VARIABLE-DECLARATION-STATEMENT ((8 9) (71 9)) ((:LOCAL-VARIABLE-DECLARATION ((8 9) (70 9)) (((:TYPE :TYPE-IDENTIFIER) ((8 9) (16 9)) NIL) ((:DECLARATOR :VARIABLE-DECLARATOR) ((17 9) (70 9)) (((:NAME :IDENTIFIER) ((17 9) (21 9)) NIL) ((:VALUE :OBJECT-CREATION-EXPRESSION) ((24 9) (70 9)) (((:TYPE :TYPE-IDENTIFIER) ((28 9) (36 9)) NIL) ((:ARGUMENTS :ARGUMENT-LIST) ((36 9) (70 9)) ((:BINARY-EXPRESSION ((37 9) (48 9)) (((:LEFT :DECIMAL-INTEGER-LITERAL) ((37 9) (41 9)) NIL) ((:RIGHT :DECIMAL-INTEGER-LITERAL) ((44 9) (48 9)) NIL))) (:BINARY-EXPRESSION ((50 9) (69 9)) (((:LEFT :BINARY-EXPRESSION) ((50 9) (62 9)) (((:LEFT :BINARY-EXPRESSION) ((50 9) (57 9)) (((:LEFT :DECIMAL-INTEGER-LITERAL) ((50 9) (52 9)) NIL) ((:RIGHT :DECIMAL-INTEGER-LITERAL) ((55 9) (57 9)) NIL))) ((:RIGHT :DECIMAL-INTEGER-LITERAL) ((60 9) (62 9)) NIL))) ((:RIGHT :DECIMAL-INTEGER-LITERAL) ((65 9) (69 9)) NIL))))))))))))) (:LOCAL-VARIABLE-DECLARATION-STATEMENT ((8 10) (50 10)) ((:LOCAL-VARIABLE-DECLARATION ((8 10) (49 10)) (((:TYPE :TYPE-IDENTIFIER) ((8 10) (14 10)) NIL) ((:DECLARATOR :VARIABLE-DECLARATOR) ((15 10) (49 10)) (((:NAME :IDENTIFIER) ((15 10) (28 10)) NIL) ((:VALUE :METHOD-INVOCATION) ((31 10) (49 10)) (((:OBJECT :IDENTIFIER) ((31 10) (35 10)) NIL) ((:NAME :IDENTIFIER) ((36 10) (47 10)) NIL) ((:ARGUMENTS :ARGUMENT-LIST) ((47 10) (49 10)) NIL))))))))) (:EXPRESSION-STATEMENT ((8 11) (57 11)) ((:METHOD-INVOCATION ((8 11) (56 11)) (((:OBJECT :IDENTIFIER) ((8 11) (14 11)) NIL) ((:NAME :IDENTIFIER) ((15 11) (27 11)) NIL) ((:ARGUMENTS :ARGUMENT-LIST) ((27 11) (56 11)) ((:STRING-LITERAL ((28 11) (40 11)) NIL) (:IDENTIFIER ((42 11) (55 11)) NIL)))))))))))))))))