#language #syntax #s-expr #tokenizer #expression-language #comments #earl

earl-lang-syntax

Earl 语言的一个简单的分词器和解析器

2 个版本 (1 个稳定版本)

1.0.0 2020 年 8 月 28 日
0.1.0 2020 年 8 月 28 日

#18#expression-language

MIT 许可证

69KB
2K SLoC

Earl 语法

Earl 语法是一种类似于 s-expression 的语言。它支持列表,但不支持 s-expression 中的成对元素。

S-expressions 和 Earl 语法的区别主要在于多行字符串和嵌套注释。

您可以在文本两侧使用足够多的分号来注释掉任何文本,例如 ;;;(...);;;,您可以使用足够多的双引号在字符串中放置任何内容,例如 """".text here."""

描述

字符串

字符串以双引号 " 开头。

字符串以 n(一个或多个)" 开头,后跟任何不包括 . 和可能 , 的字符,然后是字符串的主体,最后以 ., 和 n 个 " 结尾。

示例:

"Hello world!"

".Hello world!."

".Hello
world."

""""",
This is a multi-line string,
."""
the continues on here.
,"""""

; A raw string could look like this.
"r.C\User\Name\My Documents\script.js"

注释

单行注释以 ; 开头,直到行尾(或文件末尾)

(嵌套)多行注释以 n 个 ; 开头,后跟 (,然后是某些文本,然后是 ),后跟 n 个 ;

示例:

; This is a single-line comment

;( This is a
  ;( nesting );
  multi-line comment );

;;( this is also a ;( nesting ); multi-line comment );;

无运行时依赖