Make 'language term' just a custom mode

Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
2024-09-07 22:23:04 -07:00
parent bfc21c2928
commit ec0b05ab51
5 changed files with 66 additions and 37 deletions

View File

@@ -53,7 +53,10 @@ input[type="text"] {
<body>
<div id="elm"></div>
<script src="index.js"></script>
<script src="language.js"></script>
<script>
const objectLang = Elm.Bergamot.ObjectLanguage.init({});
(async () => {
var rulesResponse = await fetch("./demorules.bergamot");
var rules = await rulesResponse.text();
@@ -64,9 +67,8 @@ input[type="text"] {
node: document.getElementById('elm'),
flags: {
inputModes: {
"My Mode": { "custom": "mymode" },
"Language Term": { "custom": "langterm" },
"Query": "query",
"Language Term": "syntax",
},
inputRules: "PromptConverter @ prompt(type(empty, ?term, ?t)) <- input(?term);",
input: "type(empty, app(abs(x, number, var(x)), lit(1)), ?tau)",
@@ -74,9 +76,15 @@ input[type="text"] {
}
});
objectLang.ports.parsedString.subscribe(({ string, term }) => {
if (term !== null) {
const query = `type(empty, ${term}, ?tau)`;
app.ports.receiveConverted.send({ input: string, query });
}
});
app.ports.convertInput.subscribe(({ mode, input }) => {
console.log(input);
app.ports.receiveConverted.send({ input, query: `type(empty, lit(${input}), ?tau )` });
objectLang.ports.parseString.send(input);
});
})();
</script>