aboutsummaryrefslogtreecommitdiff
path: root/json.h
diff options
context:
space:
mode:
Diffstat (limited to 'json.h')
-rw-r--r--json.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/json.h b/json.h
new file mode 100644
index 0000000..215f716
--- /dev/null
+++ b/json.h
@@ -0,0 +1,38 @@
+#pragma src "/usr/doc/src/json"
+#pragma lib "json.a"
+
+enum{
+ JStksz= 32,
+};
+
+typedef enum{
+ JBool,
+ JNum,
+ JNil,
+ JObj,
+ JArr,
+ JStr,
+} Jtype;
+
+typedef struct{
+ Jtype type;
+ char *start;
+ char *end;
+ uint nsub;
+} Jtok;
+
+typedef struct{
+ uint ntok, mtok;
+ Jtok *tokens;
+ uint stktop;
+ uint tokstk[JStksz];
+} Jparser;
+
+void Jinit(Jparser *);
+void Jterm(Jparser *);
+
+int Jtokenise(Jparser *, char *);
+char *Jtokstr(Jtok *);
+
+int Jfind(Jparser *, uint, char *);
+uint Jnext(Jparser *, uint);