From 24e609189fa01d251146a34d17116738bb2f8d06 Mon Sep 17 00:00:00 2001 From: bringert Date: Tue, 12 Aug 2008 15:56:24 +0000 Subject: [PATCH] Started working on a JavaScript translator. --- lib/javascript/gflib.js | 24 ++++++++++++++++++++++++ lib/javascript/translator.html | 16 ++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 lib/javascript/translator.html diff --git a/lib/javascript/gflib.js b/lib/javascript/gflib.js index 15be18b3d..8d19f31b0 100644 --- a/lib/javascript/gflib.js +++ b/lib/javascript/gflib.js @@ -4,6 +4,30 @@ function GFGrammar(abstract, concretes) { this.concretes = concretes; } +/* Translates a string from any concrete syntax to all concrete syntaxes. + Uses the start category of the grammar. +*/ +GFGrammar.prototype.translate = function (input) { + var outputs = new Array(); + for (var c1 in this.concretes) { + var p = this.concretes[c1].parser; + if (p) { + var trees = p.parseString(input, this.abstract.startcat); + if (trees.length > 0) { + outputs[c1] = new Array(); + for (var c2 in this.concretes) { + outputs[c1][c2] = new Array(); + for (var i in trees) { + outputs[c1][c2][i] = this.concretes[c2].linearize(trees[i]); + } + } + } + } + } + return outputs; +} + + /* ------------------------------------------------------------------------- */ /* ----------------------------- LINEARIZATION ----------------------------- */ /* ------------------------------------------------------------------------- */ diff --git a/lib/javascript/translator.html b/lib/javascript/translator.html new file mode 100644 index 000000000..75ef2d079 --- /dev/null +++ b/lib/javascript/translator.html @@ -0,0 +1,16 @@ + + + + + + + + Web-based GF Translator + + +
+ + +
+ +