Commit Graph

  • c7402b8dab msp430-asm: use macro_rules! instead of nightly macro syntax. main John Breaux 2024-08-05 12:38:17 -0500
  • 0614e17b73 ast: Consistent constant folding. John Breaux 2024-08-05 12:36:27 -0500
  • 5a1112db8f Update shellcode.asm John Breaux 2024-07-31 11:59:45 -0500
  • 822c7f3700 parser: Parse char immediates into Expr::Number John Breaux 2024-07-31 11:36:37 -0500
  • d4c5005d8a Remove dependency on nightly Rust John Breaux 2024-07-31 10:43:58 -0500
  • 45b8fa5c8b lexer: Remove redundant imports John Breaux 2024-03-01 04:35:17 -0600
  • dbc5a5fb69 Merge pull request 'v0.3.0' (#1) from v0.3.0 into main v0.3.0 John 2024-02-01 20:11:01 +0000
  • e8fbae9837 Update copyright header #1 v0.3.0 John Breaux 2024-02-01 12:37:59 -0600
  • 618200dc42 msp430-asm: Make UI a little bet prettier John Breaux 2024-02-01 12:00:55 -0600
  • f6c1914720 cargo doc: Fix linking errors in doc comments John Breaux 2024-02-01 12:00:01 -0600
  • a63a4b7ece util: Only contains Span, so rename module to span.rs John Breaux 2024-02-01 11:59:21 -0600
  • 11bae9b348 Unit tests: Add more lexer tests, add parser tests John Breaux 2024-01-31 17:59:55 -0600
  • 860c9d4a97 parser: Refactor Parsable to align with assembler::Assemble John Breaux 2024-01-31 17:59:31 -0600
  • af89541af1 lexer: Fix copy+paste error in greater. Now emits Rsh tokens~! John Breaux 2024-01-31 17:58:26 -0600
  • 6b5663ae4e msp430-asm: Remove ANES as a dependency - ANSI escape codes are stupid simple, and really don't warrant an external dependency John Breaux 2024-01-31 13:48:16 -0600
  • 5a77985b39 lexer: Fix bug that did not check the second character of identifiers. This also fixes one-character identifiers not being properly detected. John Breaux 2024-01-31 13:47:18 -0600
  • b31295ad21 Add one of my old Microcorruption solutions as an example - TODO: allow embedding unicode characters as numerics in expressions John Breaux 2024-01-30 05:40:49 -0600
  • 22ade3750e grammar.ebnf: Commit incomplete grammar description John Breaux 2024-01-30 05:29:25 -0600
  • fc8f8b9622 v0.3.0: Total overhaul - Everything has been rewritten - Modularity is improved somewhat - No dependency injection in preprocessor/parser, though - There are now early and late constant evaluation engines - This engine allows for by-value access to already-assembled code - Performs basic math operations, remainder, bitwise logic, bit shifts, negation, and bit inversion - Also allows for indexing into already-generated code using pointer-arithmetic syntax: *(&main + 10). This is subject to change? It's clunky, and only allows word-aligned access. However, this rewrite is taking far too long, so I'll call the bikeshedding here. - Pretty sure this constant evaluation is computationally equivalent to Deadfish? John Breaux 2024-01-30 05:27:12 -0600
  • e4a1b889c2 Update .gitignore: Ignore vscode workspace config files John Breaux 2024-01-26 18:27:23 -0600
  • f0379ff1d3 msp430-help: Refactor opcode tables John Breaux 2024-01-26 18:25:34 -0600
  • 04c5e2ddf3 msp430-help: fix footer font color John Breaux 2023-10-04 04:44:26 -0500
  • b24dd831fc msp430-help: using the power of The Parser™️, create a silly search tool John Breaux 2023-10-04 04:40:37 -0500
  • 51e14334db directive: remove completed TODO John Breaux 2023-10-04 04:33:43 -0500
  • fd417afba0 opcode: Not all single-operand instructions take a width parameter John Breaux 2023-10-04 04:31:43 -0500
  • d73c5b2e5d main.rs: Basic TUI experience: line numbers, better errors John Breaux 2023-09-15 18:21:01 -0500
  • 417ef03e41 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 John Breaux 2023-09-05 01:54:50 -0500
  • f79d7716c5 docs: Improve documentation comments somewhat John Breaux 2023-08-25 03:05:42 -0500
  • 82420f0665 lexer: Overhaul to support token substitution John Breaux 2023-08-25 03:01:53 -0500
  • 53f1f765f1 docs: Don't link to private components John Breaux 2023-08-23 02:25:43 -0500
  • 8ba781bf69 Improve error messages and doc comments John Breaux 2023-08-23 02:15:10 -0500
  • 7286d93e63 encoding.rs: Fix example in doc comment John Breaux 2023-08-23 00:32:25 -0500
  • 0a4313bd1b parser.rs: Remove obtrusive debug printing John Breaux 2023-08-23 00:27:09 -0500
  • 4314f8ee30 register.rs: store context in error after str::parse() John Breaux 2023-08-23 00:25:10 -0500
  • 938b7d2af2 opcode.rs: Use Parsable trait for opcode parsing John Breaux 2023-08-23 00:23:46 -0500
  • 2f867a67ad *_operand.rs: Directly delegate when possible in Display John Breaux 2023-08-23 00:21:54 -0500
  • 7901c24d80 *_operand.rs: Improve clarity of expectation-failure errors John Breaux 2023-08-23 00:19:17 -0500
  • 8ea41b46f8 number.rs: Allow Plus-sign before radix marker John Breaux 2023-08-23 00:16:39 -0500
  • 8c2f53f950 parser.rs: Give priority to instruction parsing John Breaux 2023-08-23 00:15:47 -0500
  • b5fd49b0b4 parser: Improve module-level doc comments John Breaux 2023-08-23 00:13:52 -0500
  • 8230d73495 token.rs: Lex numbers of arbitrary length, for better errors John Breaux 2023-08-23 00:00:28 -0500
  • b3af047d3a error.rs: Document errors & error messages John Breaux 2023-08-22 23:59:17 -0500
  • 32c44fd311 Add readme.md John Breaux 2023-08-20 00:53:35 -0500
  • 8947521181 token.rs: Allow one-character identifiers John Breaux 2023-08-19 23:56:26 -0500
  • f89d2ddfdd Update gitignore John Breaux 2023-08-19 23:55:41 -0500
  • d283043440 main.rs: Cleanup dead and commented-out code John Breaux 2023-08-19 23:35:14 -0500
  • a9ee7d3bc9 msp430-asm: init repo with proof-of-concept code John Breaux 2023-08-19 23:02:24 -0500