3个版本 (1个稳定版)
1.0.1 | 2024年2月11日 |
---|---|
0.1.1 | 2024年1月16日 |
0.1.0 | 2024年1月16日 |
#471 in 开发工具
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
测试
该库包含对 Tokenizer
和 Validator
结构体的单元测试,以及仅有的两个集成测试。
要执行测试,您只需要运行以下命令
cargo test
🔑 许可证
MIT - 由 P4k0 创建。
依赖项
约 1.2–1.8MB
约 34K SLoC