78 lines
2.7 KiB
JavaScript
78 lines
2.7 KiB
JavaScript
import * as $json from "../gleam_json/gleam/json.mjs";
|
|
import * as $int from "../gleam_stdlib/gleam/int.mjs";
|
|
import * as $io from "../gleam_stdlib/gleam/io.mjs";
|
|
import * as $list from "../gleam_stdlib/gleam/list.mjs";
|
|
import * as $definition from "./definition.mjs";
|
|
import { toList } from "./gleam.mjs";
|
|
import * as $mode from "./mode.mjs";
|
|
import * as $parser from "./parser.mjs";
|
|
|
|
function inline_to_json(inline) {
|
|
if (inline instanceof $definition.Text) {
|
|
let text = inline[0];
|
|
return $json.object(
|
|
toList([["type", $json.string("text")], ["value", $json.string(text)]]),
|
|
);
|
|
} else if (inline instanceof $definition.Push) {
|
|
let feeling = inline[0];
|
|
if (feeling instanceof $definition.Hirachy) {
|
|
let level = feeling[0];
|
|
return $json.object(
|
|
toList([["type", $json.string("hirachy")], ["value", $json.int(level)]]),
|
|
);
|
|
} else if (feeling instanceof $definition.Truth) {
|
|
let level = feeling[0];
|
|
return $json.object(
|
|
toList([["type", $json.string("truth")], ["value", $json.int(level)]]),
|
|
);
|
|
} else if (feeling instanceof $definition.Marking) {
|
|
let level = feeling[0];
|
|
return $json.object(
|
|
toList([["type", $json.string("marking")], ["value", $json.int(level)]]),
|
|
);
|
|
} else {
|
|
let level = feeling[0];
|
|
return $json.object(
|
|
toList([["type", $json.string("quote")], ["value", $json.int(level)]]),
|
|
);
|
|
}
|
|
} else {
|
|
let text = inline[0];
|
|
return $json.object(
|
|
toList([
|
|
["type", $json.string("pop")],
|
|
[
|
|
"value",
|
|
(() => {
|
|
if (text instanceof $mode.Hirachy) {
|
|
return $json.string("Hirachy");
|
|
} else if (text instanceof $mode.Truth) {
|
|
return $json.string("Truth");
|
|
} else if (text instanceof $mode.Marking) {
|
|
return $json.string("Marking");
|
|
} else {
|
|
return $json.string("Quote");
|
|
}
|
|
})(),
|
|
],
|
|
]),
|
|
);
|
|
}
|
|
}
|
|
|
|
function line_to_json(line) {
|
|
let inlines = line[0];
|
|
let _pipe = $json.array(inlines, inline_to_json);
|
|
return $json.to_string(_pipe);
|
|
}
|
|
|
|
export function main() {
|
|
let input = "ljiosfgdjiosdfgj\n @2! A slightly important statement !1 I believe is wrong, !- quoted inside another quote.\n !3 A slightly important statement I believe is wrong, quoted inside another quote.\n #3!2@2 A slightly important statement I believe is wrong, quoted inside another quote.\n\n !2@3 important trusted but @- important !5 more important !- 2 important and !- normal";
|
|
$io.print(line_to_json($parser.handler(input)));
|
|
return undefined;
|
|
}
|
|
|
|
export function testing(input) {
|
|
return line_to_json($parser.handler(input));
|
|
}
|