简单多语言语法的GF在线编辑器

【GF在线编辑截图】

引言

传统上,GF公司语法在文本编辑器中创建,并在GF外壳。文本编辑器对GF语法,因此为GF新手用户提供的指导很少。此外语法作者必须自己下载并安装GF软件计算机。

相比之下简单多语言语法的GF在线编辑器可在线使用,使入门更容易。所有这些需要的是一个相当现代的web浏览器。甚至Android和iOS设备可以使用。

编辑还通过显示框架语法文件和提示如何填写部件。当新部件添加到语法,它会立即检查错误。

通过单击嵌入的编辑符号可以访问编辑操作在语法显示中:+=添加项目,×=删除项目,%=编辑项目。当鼠标悬停在项目上时会显示这些内容。在触摸设备上,悬停是在某些情况下,通过轻敲进行模拟,但底部也有一个按钮显示为“在触摸设备上启用编辑”,显示所有编辑符号。

尽管它的名字叫什么,但编辑器的核心运行在网络上浏览器,因此打开网页后,您可以继续编辑即使你是语法脱机语法编译和测试以及一些错误检查由GF服务器完成,脱机时不可用。

当前状态

目前,编辑器只支持GF语法的一小部分符号。对抽象语法进行了适当的错误检查,但尚未对具体语法进行错误检查语法。

使用此编辑器创建的语法始终包含一个用于抽象语法,每个具体语法对应一个文件。

抽象语法

支持的抽象语法对应于无上下文语法(无依赖类型)。抽象语法的定义限于可用的编辑操作:错误检查:

具体语法

目前,一种语言的具体语法L(左)仅限于可用的编辑操作:也,错误检查:

语法视图

编辑器支持三种查看语法的方法:

编译和测试语法

按下时编译按钮,语法将被编译使用GF,编辑未检测到的任何错误都将被报告。按下迷你吧测验打开语法进行测试之前的按钮分别在迷你吧或翻译测验中。

语法

虽然编辑器通常在浏览器中本地存储语法,但它也是可以在云中存储语法。语法可以存储在云中仅用于备份,或使它们可以从多个设备访问。

本地语法和云之间没有自动同步。相反,用户应该按[云上传]将语法上传到云端,然后按[云下载]从云端下载语法。在这两种情况下,完整的语法复制,目标位置的旧版本将被覆盖。删除语法时,本地副本和云中的副本已删除。

每个设备最初都被分配给自己的唯一云。因此,每个设备都可以有自己的语法集,这在其他设备上是不可用的。它是还可以合并云并在之间共享一组通用语法多个设备:将语法上传到云中时,此语法的链接云出现了。从其他设备访问此链接将导致要合并的两个设备。之后,从一个可以在其他设备上下载设备。任何数量的设备都可以加入同样的语法云也是这样。

注释虽然可以在多个设备,无法合并来自多个设备的并发编辑设备。如果相同的语法上传到来自多个设备的云,最后一次上传获胜。因此,电流该实现适合于单个用户在不同的设备,但不建议在多个用户之间共享语法。

阿尔索笔记每个语法都被赋予了唯一的身份第一次创建时。重命名语法不会更改其标识。这意味着名称更改与其他更改一样在设备之间传播。

公共文法

【2012年10月:这是一个实验特征那个将来可能会被不兼容的语法共享机制取代。]

语法云还包括一个公共语法列表。可以通过按发布按钮显示在列表中的语法旁边你的语法。

这个发布按钮创建复制你的语法。如果您继续编辑语法,更改将仅限于本地。您可以按发布按钮再次更新公共副本。

您可以按从公共列表中删除语法×公共列表中语法旁边的按钮。你可以删除其他用户发布的语法。

当您打开由其他用户发布的公共语法时复制属于语法被添加到语法列表中。任何更改都将在你自己的语法副本。如果你出版你的语法,它会单独出现在公共语法列表中。你不能覆盖其他用户发布的语法,即使它们具有相同的名称。

TODO:不建议发布继承自其他语法的语法。无法指明几个同名语法中的哪一个是被继承。

TODO:应该有一种方法来识别谁发布了语法和什么时候。也许发布按钮应该仅限于注册用户。。。

基于实例的语法写作

我们在2011年对此进行了试验。它目前不包括在内,但它可能会在未来版本中返回。。。

未来的工作

这个原型给出了基于web的GF语法编辑器的工作原理。虽然此编辑器是用JavaScript实现的,并在web浏览器中运行,我们不希望创建在web浏览器,但让编辑器与运行GF的服务器通信。

通过使用适当的API开发GF服务器,它应该可以扩展编辑器以支持更大的GF片段,进行适当的错误检查,并使现有的GF shell功能更加强大可从编辑器直接访问。

当前的语法云服务非常原始。特别是,它不是适合多个用户协作开发语法。

相关文件


上次修改时间:2012年10月9日星期二16:52:47 CEST
真实航向