HobbyOSs / opennask

nask clone assembly, it can boot tiny OS with Linux
https://github.com/HobbyOSs/opennask/wiki/%E5%8B%95%E4%BD%9C%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF
GNU General Public License v3.0
20 stars 3 forks source link

opennaskの実装をbnfcの生成コードで置き換え(1) #40

Closed hangingman closed 3 years ago

hangingman commented 3 years ago

ref #32

確認

DB 0x02 # comment

DB 0x03 ; comment

DB "hello"

DB WORD 3*3:0x30


- ファイル
```bash
./build/src/nask_parse --scan ./src/bnfc/test.txt test.img

Parse Successful!

[Abstract Syntax]
(Prog [(MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(HexFactor "0x01")])]), (MnemoArg [(ImmExp [(HexFactor "0x02")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(HexFactor "0x02")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(HexFactor "0x03")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(StringFactor "hello")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(RangeExp [WordDataType] (MulExp (ImmExp [(NumberFactor 3)]) (ImmExp [(NumberFactor 3)])) (ImmExp [(HexFactor "0x30")]))])])])

Parse Successful!

[Abstract Syntax] (Prog [(MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(HexFactor "0x01")])]), (MnemoArg [(ImmExp [(HexFactor "0x02")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(HexFactor "0x02")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(HexFactor "0x03")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(ImmExp [(StringFactor "hello")])])]), (MnemonicStmt [OpcodesDB] [(MnemoArg [(RangeExp [WordDataType] (MulExp (ImmExp [(NumberFactor 3)]) (ImmExp [(NumberFactor 3)])) (ImmExp [(HexFactor "0x30")]))])])])