summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Allow a macro to invoke itself safelyBen Bridle12 hours
| | | | | | | A macro can now invoke itself if the invocation is inside a conditional block that will eventually return false. The assembler stack can still overflow if the macro recurses too deeply, or if a macro calls itself without a conditional block.
* Allow a macro to invoke itselfBen Bridle12 hours
| | | | | This will currently cause the assembler to hang in all situations where it is used.
* Implement <len> operator for expressionsBen Bridle12 hours
| | | | | The <len> operator returns the width of an integer in bits, using the same calculation as for packing an integer into a bit field.
* Implement octal literalsBen Bridle40 hours
| | | | Octal literals use the prefix '0o'.
* Remove brackets from format names in program help textBen Bridle7 days
| | | | | These could be misleading, they could incorrectly indicate that the brackets are part of the format name.
* Add the cmd format to the list in program help textBen Bridle7 days
|
* Fix width checks for negative integersBen Bridle7 days
| | | | | | | | | | | | The width of a negative integer was previously being counted in the same way as for a positive integer, by inverting the bits to make it a positive integer and then finding the placement of the highest-order 1 bit. The actual width of a negative integer will always be one greater than this value however, because the highest-order 1 bit of an inverted negative integer will always have directly above it a significant 0 bit used as the sign bit.
* Implement negative integer literalsBen Bridle7 days
| | | | | Negative literals take the forms -29, -0x1D, and -0b11101 for decimal, hexadecimal, and binary.
* Add support for the CP/M CMD file module formatBen Bridle8 days
|
* Improve help textBen Bridle2025-03-31
|
* Report token without prefix in invalid literal errorsBen Bridle2025-03-23
| | | | | | | Previously, the token quoted in the error message for an invalid literal error included the radix prefix. This is already visible in the highlighted source report, and implied by the named radix in the error message.
* Change extension positional argument to a switchBen Bridle2025-03-18
| | | | | It makes no sense for the file extension to be a positional argument, it'll barely be used anyway.
* Update assembler dependencyBen Bridle2025-03-18
| | | | torque-asm now uses the Compiler type provided by the assembler library.
* Tidy codyBen Bridle2025-03-18
| | | | | | | - Rename tokens field on SyntacticMacroDefinition to body - Rename push_err! macro to err! - Create macros for character-matching logic in syntactic parsing - Replace .as_bytes().to_vec() pattern with .into_bytes()
* Rewrite entire assemblerBen Bridle2025-03-11
| | | | | | | | | | | | The language is now more general, the code is better structured, error reporting is more detailed, and many new language features have been implemented: - conditional blocks - first-class strings - more expression operators - binary literals - negative values - invocations in constant expressions
* Implement <= and >= operators for constant expressionsBen Bridle2025-03-01
|
* Change binary name to tqBen Bridle2025-03-01
|
* Implement inhx formatBen Bridle2025-02-28
| | | | inhx is the original Intel hex format.
* Implement string literalsBen Bridle2025-02-28
| | | | | | | | String literals are treated as integers. If a string is passed as an integer argument to a packed binary literal, a new instance of the packed binary literal is invoked for every character in the string, with each character being passed to the packed binary literal as a Unicode character value.
* Finish first working version of TorqueBen Bridle2025-02-27
| | | | | This is a huge and messy commit, worked on piecemeal while traveling and while the language was still being designed.
* Implement semantic error reportingBen Bridle2025-02-15
|
* Implement semantic parsingBen Bridle2025-02-14
|
* Separate syntactic and semantic token types by namespaceBen Bridle2025-02-12
| | | | This will allow type names to be shared by both types of token.
* Define semantic typesBen Bridle2025-02-11
|
* Initial commitBen Bridle2025-02-11