WebAssembly 文本语法
wast(WebAssembly 文本格式)Sublime 语法定义
详情
安装
- 总数 2K
- Win 719
- Mac 512
- Linux 458
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | 6月22日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Mac | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
README
wast-sublime-syntax
WAST,是WebAssembly的文本格式,这是一个非常低级但易于人类读写和编写的基于堆栈的语言。它是一个s-表达式树,虽然通常指令也可以线性编写。
这是一个 WAST 的 Sublime 语法 定义。它需要 Sublime Text 3 或更高版本。
高亮示例
使用 Monokai、Propeller、Welded 和 Excelsior(来自 ES Sublime)主题分别
目前我还没有包括任何自定义主题。我可能会稍后添加一个可以按深度高亮 s-表达式的主题,因为我认为这将是一个有趣的实验。
符号
如果给出了名称,函数、全局变量和类型将出现在局部符号列表中,但如果它们是无名的(即只通过索引引用),则不会出现。
导出将出现在局部和全局符号列表中。
其他元功能
已经定义了注释,但目前还没有定义缩进。我还没有完全确定它应该是什么样子—在野外似乎有非常不同的 s-表达式格式化方法,而我还没有足够的上下文来确定选择哪一个。(欢迎反馈或 PR。)
作用域
以下提供了这些作用域。大部分都遵循 TextMate 约定,但在某些情况下增加了额外的精确度,并且在某些内容上,为了帮助提高与现有色彩方案的兼容性,会轻微滥用不太适用但常见的范围。特别是,我使用了 storage.type.constant
来强制某些本身不全是“常量”的东西具有不同的着色。
comment.block.wast
comment.line.wast
常量.字符.转义.字节.wast
常量.字符.转义.字符.wast
常量.数值.浮点.wast
常量.数值.整数.wast
实体.名称.导出.wast
实体.名称.函数.wast
实体.名称.内存.wast
实体.名称.模块.导入.wast
实体.名称.模块.wast
实体.名称.语句.wast
实体.名称.表.wast
实体.名称.类型.wast
无效.非法.wast
关键字.控制.条件.wast
关键字.控制.流.wast
关键字.声明.偏移.wast
关键字.操作符.赋值.wast
关键字.操作符.词.wast
关键字.其他.导出.wast
关键字.其他.导入.wast
关键字.其他.模块.wast
关键字.其他.偏移.wast
关键字.其他.起始.wast
元信息.块.条件.wast
元信息.块.循环.wast
元信息.块.wast
元信息.函数调用.wast
元信息.组.限制.wast
元信息.调用.wast
元信息.表达式.数据.wast
元信息.表达式.元素.wast
元信息.表达式.导出描述.wast
元信息.表达式.导出.wast
元信息.表达式.wast
元信息.表达式.函数.wast
元信息.表达式.函数类型.wast
元信息.表达式.全局.wast
元信息.表达式.全局类型.wast
元信息.表达式.导入.wast
元信息.表达式.指令.wast
元信息.表达式.局部.wast
元信息.表达式.内存.wast
元信息.表达式.模块.wast
元信息.表达式.偏移.wast
元信息.表达式.参数.wast
元信息.表达式.结果.wast
元信息.表达式.起始.begin.wast
元信息.表达式.表.wast
元信息.表达式.类型.wast
元信息.表达式.类型使用.wast
标点.定义.块.开始.wast
标点.定义.块.条件.开始.wast
标点.定义.块.条件.结束.wast
标点.定义.块.结束.wast
标点.定义.块.循环.开始.wast
标点.定义.块.循环.结束.wast
标点.定义.注释.开始.wast
标点.定义.注释.结束.wast
标点.定义.数据.开始.wast
标点.定义.数据.结束.wast
标点.定义.元素.开始.wast
标点.定义.元素.结束.wast
标点.定义.导出.开始.wast
标点.定义.导出.结束.wast
标点.定义.导出描述.开始.wast
标点.定义.导出描述.结束.wast
标点.定义.表达式.开始.wast
标点.定义.表达式.结束.wast
标点.定义.函数.开始.wast
标点.定义.函数.结束.wast
标点.定义.函数类型.开始.wast
标点.定义.函数类型.结束.wast
标点.定义.全局.开始.wast
标点.定义.全局.结束.wast
标点.定义.全局类型.开始.wast
标点.定义.全局类型.结束.wast
标点.定义.导入.开始.wast
标点.定义.导入.结束.wast
标点.定义.指令.开始.wast
标点.定义.指令.结束.wast
标点.定义.局部.开始.wast
标点.定义.局部.结束.wast
标点.定义.内存.开始.wast
标点.定义.内存.结束.wast
标点.定义.模块.开始.wast
标点.定义.模块.结束.wast
标点.定义.偏移.开始.wast
标点.定义.偏移.结束.wast
标点.定义.参数.开始.wast
标点.定义.参数.结束.wast
标点.定义.结果.开始.wast
标点.定义.结果.结束.wast
标点.定义.起始.开始.wast
标点.定义.起始.结束.wast
标点.定义.字符串.开始.wast
标点.定义.字符串.结束.wast
标点.定义.表.开始.wast
标点.定义.表.结束.wast
标点.定义.类型.开始.wast
标点.定义.类型.结束.wast
标点.定义.类型使用.开始.wast
标点.定义.类型使用.结束.wast
源.wast
存储.修饰符.可变.wast
存储.修饰符.结果.wast
存储.修饰符.类型.wast
存储.修饰符.wast
存储.类型.常量.wast
存储.类型.数据.wast
存储.类型.元素.wast
存储.类型.函数.wast
存储.类型.全局.wast
存储.类型.局部.wast
存储.类型.内存.wast
存储.类型.参数.wast
存储.类型.表.wast
存储.类型.类型.wast
字符串.引号.双.wast
支持函数.内存.wast
支持函数.数值.wast
支持函数.变量.wast
支持.类型.wast
变量.其他.索引.wast
变量.其他.读写.wast
变量.其他.wast
变量.参数.wast
限制
与大多数语言一样,Sublime Syntax和Text Mate语法定义可以在词法级别正确地模拟WAST,但换行符的无视阻止了某些构造的理想范围。
然而,在这种情况下,由此引起的问题并不多——实际上只有一个。每当“(”后面跟着一个关键字时,如果在它们之间有换行符或多行注释,这种语法定义将无法正确匹配该s表达式。由于在那个位置确实有换行符或注释会显得不寻常/难以阅读,我没有包括任何特殊的恢复逻辑,只有这个警告。
应用了一些高级句法约束,例如只允许一个启动字段,但许多其他良好形成性的约束并没有应用,即使在技术上可以用Sublime Syntax表达的情况下也是如此。