2023-08-20 04:02:24 +00:00
|
|
|
[package]
|
|
|
|
name = "msp430-asm"
|
0.2.0: Feature update and Refactor
- Each major module (lexer, parser, assembler) has its own error type
- These error types are somewhat interconnected, but their
dependency relationships are one-way and well defined
- The AST is no longer responsible for assembling itself
- The Assembler (assembler::Assembler) will now visit every AST node
and accumulate words
- Words are assumed to be little-endian.
- There are now a set of assembler directives that affect the
generated output:
- .word <Number>: inserts a single word in the output
- .words [<Number>,*]: inserts multiple words in the output
- .byte <Number>: Alias for .word
- .bytes [<Number>,*]: Alias for .words
- .string "String": inserts a null-terminated UTF-8 encoded string
- .strings ["String",*]: "" multiple strings
- Data is always word-aligned at the moment.
- There are now assembler directives that affect the AST during
parsing:
- .include "path/to/file": Parses the contents of a file directly
into the AST
- Included files have their own defines, but *share* labels.
This is because .defines are a tokenizer construct, and
including a file creates a new buffer and tokenizer.
- Circular includes are NOT checked for at the moment.
It is very easy to exhaust the stack.
- General cleanup of several functions, comments, TODOs, etc.
- main.rs was moved to make room for upcoming improvements to the UI
TODO:
- REPL mode is only partially compatible with .define directive
- Branching to a label will branch to the data AT the label,
not the label itself. I doubt this is correct behavior.
- In case br <label> is meant to use the absolute address,
I've created a .org directive (currently unimplemented)
for specifying the load address of the program.
2023-09-05 06:54:50 +00:00
|
|
|
version = "0.2.0"
|
2023-08-20 04:02:24 +00:00
|
|
|
edition = "2021"
|
2023-09-15 23:21:01 +00:00
|
|
|
rust-version = "1.70"
|
|
|
|
authors = ["John Breaux <j@soft.fish>"]
|
2023-08-20 04:02:24 +00:00
|
|
|
publish = false
|
|
|
|
|
2023-09-15 23:21:01 +00:00
|
|
|
[features]
|
|
|
|
default = []
|
2023-08-20 04:02:24 +00:00
|
|
|
|
2023-09-15 23:21:01 +00:00
|
|
|
[[example]]
|
|
|
|
name = "msp430-asm"
|
|
|
|
path = "examples/msp430-asm/main.rs"
|
2023-08-20 04:02:24 +00:00
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
|
|
|
|
[dependencies]
|
|
|
|
regex = "1.9.3"
|
2023-09-15 23:21:01 +00:00
|
|
|
# TODO: Remove dependency on regex
|
|
|
|
|
|
|
|
[dev-dependencies]
|
|
|
|
anes = { version = "0.1.6" }
|
|
|
|
argp = { version = "0.3.0" }
|