3个版本 (1个稳定版)

1.0.1 2024年2月11日
0.1.1 2024年1月16日
0.1.0 2024年1月16日

#471 in 开发工具

MIT/Apache

42KB
661

SiCompiler

这是一个简单的项目,用于检查您的SiCoMe程序中的语法错误。

您也可以在Crates.io上查看此项目。

🛠️ 安装

使用cargo

您必须已安装Rust

cargo install sicompiler

✏️ 使用方法

要使用sicompiler,您需要有一个.txt文件,在其中编写您的程序,以及一个包含有效指令的.rep文件。

执行

sicompiler --rep <REPERTOIRE_PATH> <INPUT_PATH>

参数

<INPUT_PATH>   The input path to compile
<REPERTOIRE_PATH> The repertoire of instructions
[OUTPUT_PATH]  The output path to write to [default: out.txt]

选项

-o, --out <OUTPUT_PATH>      The output path to write to [default: out.txt]
-r, --rep <REPERTOIRE_PATH>  The repertoire of instructions
-h, --help                   Print help
-V, --version                Print version

结果将是一个输出文件,其路径为您所写的路径或同一目录下的默认路径。

输入

0 0003  #Number 1
1 0003  #Number 2
3 0000  #Result

*** This is a 
multi-line comment ***

@
6
@

CRA
CRF
ADD 0001
ROR_F_ACC
SFZ
JMP 12  #F!=0

#-----F==0-----
CRA
CRF
ADD 0000
ROL_F_ACC
STA 0004
HALT

#-----F!=0-----
CRA
CRF
ADD 0001
ROL_F_ACC
STA 0004
HALT

输出

0 0003
1 0003
3 0000
@
6
@
CRA 
CRF 
ADD 0001
ROR_F_ACC 
SFZ 
JMP 12
CRA 
CRF 
ADD 0000
ROL_F_ACC 
STA 0004
HALT 
CRA 
CRF 
ADD 0001
ROL_F_ACC 
STA 0004
HALT 

📚 标准

[!重要] 这些标准可能随时更新。

此编译器符合最近编写的某些标准。

单行注释

单行注释将以#指定。

CRA 23 #One line comment

多行注释

多行注释将以开头和结尾的***指定。

CRA 23 
***Multi 
line 
comment***

程序结构

程序分为三个明显区分的部分,每部分之间由@字符分隔。

<variables declaration>
@
<start dir>
@
<sentences>

指令集结构

指令集是指令的集合,可以包含在SiCoMe程序中。

指令集的结构如下

$
<microprogram section> (Not implemented)
$
<valid instructions>

错误情况

  • 程序不遵循标准定义的结构。
  • 程序中的指令未在指令集中定义。
  • 指令的参数数量不正确。
  • 指令的参数不是十六进制。

📑 使用的库

💻 开发

如果您想合作并向项目添加新功能,您必须完成以下简单步骤。

合作

git clone [email protected]:Pacatro/sicompiler.git
cd sicompiler
cargo build

测试

该库包含对 TokenizerValidator 结构体的单元测试,以及仅有的两个集成测试。

要执行测试,您只需要运行以下命令

cargo test

🔑 许可证

MIT - 由 P4k0 创建。

依赖项

约 1.2–1.8MB
约 34K SLoC