1 个不稳定版本
0.1.0 | 2023年11月21日 |
---|
#634 在 编程语言
28KB
668 行
Meador 语言编译器
Meador 是一种简单、定制的脚本语言,旨在教育目的设计。
语言描述
Meador 是一种静态类型语言,其语法类似于 JavaScript 和 Rust。它支持变量、函数和基本控制流结构。
支持的功能
- 变量:您可以使用
let
关键字声明变量。 - 函数:可以声明和调用函数。
- 控制流:
if
、else
、while
循环都受支持。 - 运算符:支持基本的算术和比较运算符。
- 错误处理:编译器提供详细的错误消息,包括错误的位置和上下文。
语法
Meador 语言的语法定义如下
program = { statement+ ~ EOI }
int = { ("+" | "-")? ~ ASCII_DIGIT+ }
decimal = @{ int ~ "." ~ ASCII_DIGIT* }
ident = @{ ASCII_ALPHA ~ (ASCII_ALPHANUMERIC | "_")* }
statement = { variable_declaration | if_stmt | while_loop | code_block | function_call_stmt }
variable_declaration = { "let" ~ ident ~ "=" ~ expr ~ ";" }
while_loop = { "while" ~ expr ~ statement }
code_block = { "{" ~ statement* ~ "}"}
if_stmt = { "if" ~ expr ~ statement ~ ("else" ~ statement)? }
expr = { value ~ (bi_operator ~ value)* }
value = { parenthesis | decimal | int | boolean | function_call | ident }
boolean = { "true" | "false" }
parenthesis = { "(" ~ expr ~ ")" }
function_call = { ident ~ "(" ~ expr* ~ ")" }
function_call_stmt = { function_call ~ ";" }
bi_operator = {
"&&" | "||" |
"+" | "-" | "*" | "/" | "^" |
"==" | "<=" | ">=" | "!=" | "<" | ">"
}
依赖项
~2.3–3MB
~61K SLoC