1 个不稳定版本

0.1.0 2023年11月21日

#634编程语言

MIT 许可证

28KB
668

Meador 语言编译器

Meador 是一种简单、定制的脚本语言,旨在教育目的设计。

语言描述

Meador 是一种静态类型语言,其语法类似于 JavaScript 和 Rust。它支持变量、函数和基本控制流结构。

支持的功能

  • 变量:您可以使用 let 关键字声明变量。
  • 函数:可以声明和调用函数。
  • 控制流:ifelsewhile 循环都受支持。
  • 运算符:支持基本的算术和比较运算符。
  • 错误处理:编译器提供详细的错误消息,包括错误的位置和上下文。

语法

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