#say #compiler #comments #big #language #proposal #ouf

app uff

一种让你经常说出“big ouf”的编程语言编译器

1 个不稳定版本

0.1.0 2022年11月22日

#32 in #say

WTFPL 许可协议

11KB
87

uff-lang

添加新提案

如何使用

  • 不要使用它。

但如果您真的坚持

uff.uff

should should be <<be>>
be should be <<should>>
say be should
the answer is 0
~> uff build uff.uff
~> bin/uff
should be

语法

exit_statement = "the" whitespace "answer" whitespace "is" whitespace ( integer | identifier ) .
assign_statement = identifier whitespace "should be" whitespace expression .
expression = ( integer | identifier | string | decimal_float ) .
string = "<<" /* any character */ ">>" .
identifier = (unicode_symobls | unicode_letter) { unicode_symobls | unicode_letter | unicode_digit } .
imaginary = ( decimal_float | integer ) "i" .
decimal_float = integer "." digits [ "e" integer ] .
integer = [ "-" ] digits .
digits = digit { ["_"] digit } .
digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 .
whitespace = whitespace_character { whitespace_character } .
whitespace_character = /* Unicode 13.0.0 Character Class: White_Space */ .
unicode_symobls = /* Unicode 13.0.0 Character Classes: Sm, Sc, Sk, So */ .
unicode_digit = /* Unicode 13.0.0 Characer Class: Nd */ | "_" .
unicode_letter = /* Unicode 13.0.0 Characer Classes: Lu, Ll, Lt, Lm, Lo */.

赋值

  • 应该是

注释 [提案]

  • ': 块注释
  • ": 行注释

退出

要退出程序,只需使用关键字: the answer is <><int64>。如果没有提供明确的退出代码,则使用 42

数据类型

字符串

字符串必须以 << 开头并以 >> 结尾。字符串中不允许使用 >>

complex128

2x float64,分为虚部和实部。

float64

int64

bigint

array[generic]

  • 访问: b@2b@-2 -- 对此语法不太确定

struct

这可能在 uff 中是一个有效的结构体。这也需要讨论。

bla struct {
    " This is a line comment
    pub {
       message string
       success bool
       data object
    }
}

异常

异常被称为心绞痛。

指针

泛型

tbd 作为关键字

CAT 模式

CAT 模式默认启用。程序表现得像一只猫。它有多个生命。

程序有多少个生命,取决于目标架构。

必需的关键字

这些应该是有效的关键字,但我不知道它们将用于什么

  • xd
  • uff
  • yeet

依赖项

~9–16MB
~192K SLoC