Commit graph

174 commits

Author SHA1 Message Date
bc52fafe63 Derive functors for pretty much all phase 1 types 2020-04-03 01:15:35 +00:00
0fea2b960a Introduce WeedError
This change is meant to make working with an unspecified 's' type parameter
easier.
2020-04-03 01:13:58 +00:00
f25099d6f3 Add back Weed monad
Make weed monad compatible with all sorts of parsers instead of requiring a
Parsec T.Text Void.
2020-04-02 14:23:28 +00:00
7bb74f7315 Add back show instance for Span 2020-04-02 11:15:54 +00:00
4f29ee4fff Clean up and fix formatting code 2020-04-01 20:40:12 +00:00
I-Al-Istannen
f6859ae578 Add garbage ASM format methods 2020-04-01 21:52:24 +02:00
I-Al-Istannen
1effa96a17 Fix "toDec" including the constructor name 2020-04-01 21:49:31 +02:00
I-Al-Istannen
9e544a64f3 Finish Asm parser (for now) 2020-04-01 12:45:02 +02:00
I-Al-Istannen
2882a2c42e Parse instructions without arguments 2020-03-31 16:06:15 +02:00
I-Al-Istannen
813d891468 Do not partially parse a file 2020-03-31 15:31:36 +02:00
I-Al-Istannen
300ef6e0c0 Make TokenLabel a declaration 2020-03-31 15:27:00 +02:00
I-Al-Istannen
7ee414bbb3 Add simple phase1 parser 2020-03-31 15:22:36 +02:00
I-Al-Istannen
a540e1711a Add a comment and asmToken parser 2020-03-31 15:04:12 +02:00
I-Al-Istannen
7c02901b64 Fix ".meta" and ".meta-start" directives using the same keyword 2020-03-31 12:06:05 +02:00
I-Al-Istannen
5bfd2e4357 Fix address and number parser
* The order in the address parser was wrong

* The signed number *optionally* required a sign. Due to this every
  address was relative. Now the `signedNumber` *required* a sign and the
  previous behaviour was renamed to `optionallySignedNumber`.
2020-03-31 12:03:52 +02:00
I-Al-Istannen
f96f088eba Add nicer Show instance for Span 2020-03-31 12:03:24 +02:00
I-Al-Istannen
b226372ba7 Implement directive parser 2020-03-30 23:36:22 +02:00
ada200bf50 Partially implement phase 1 parsing
This commit introduces a few --pedantic warnings. Those will (hopefully) be
fixed in the next commit.
2020-03-30 18:57:24 +00:00
b15606a530 Create types for assembly phase 1 2020-03-30 14:54:43 +00:00
b9f9d27105 Catch and print all IOErrors 2020-03-29 11:39:20 +00:00
7b7a363693 Use package for modifying paths 2020-03-29 11:12:44 +00:00
I-Al-Istannen
fdc755ecb0 Load metadata file if it exists 2020-03-29 11:12:41 +00:00
I-Al-Istannen
d0807d575a Add metadata file to Options 2020-03-29 11:12:38 +00:00
564bc44d51 Respect flags during execution 2020-03-28 19:49:45 +00:00
7397a0fecd Clean up 2020-03-28 19:32:21 +00:00
I-Al-Istannen
e4a8fb2747 Add tests for Flags 2020-03-28 20:18:29 +01:00
I-Al-Istannen
d3ba3355e4 Fix nested ranges not overwriting their parents 2020-03-28 20:18:06 +01:00
I-Al-Istannen
66efb97205 Ignore hie setup file 2020-03-28 19:28:43 +01:00
I-Al-Istannen
caf9a896d8 Add flag data structure and conversion 2020-03-28 17:46:41 +01:00
69983fc9ed Test Mima.Vm.Instruction 2020-03-27 23:19:39 +00:00
6b81fd67b4 Implement basic mima-run functionality
Bugs fixed:
- Print correct file name when load/save error occurs
- Correctly identify invalid file formats
2020-03-27 22:10:59 +00:00
362025c8df Parse command-line options 2020-03-27 21:39:28 +00:00
975c5e4116 Set up mima-run executable 2020-03-27 21:13:12 +00:00
495809bd86 Clean up storage implementation
Also switch to lazy byte strings in Mima.Run because they appear to be used in
all libraries used.
2020-03-27 21:02:20 +00:00
I-Al-Istannen
abdb8c0a0d Store MimaState 2020-03-27 21:34:58 +01:00
38ba94f675 Fix typos and clean up slightly 2020-03-27 20:31:45 +00:00
51317c0737 Write docs and tests for Mima.Vm.Word 2020-03-27 20:31:45 +00:00
a7d4eec3dd Configure hspec 2020-03-27 20:28:59 +00:00
I-Al-Istannen
ae7f0bdac4 Add simple load and store methods for Metadata 2020-03-27 16:14:48 +01:00
c3584df5dc Implement Run monad 2020-03-27 12:56:27 +00:00
976b2b5d4d Clean up metadata
This commit also changes the metadata file format. Documentation coming soon™
2020-03-27 12:08:36 +00:00
I-Al-Istannen
a0dcb37e12 Spice up Metafile format 2020-03-26 00:25:14 +01:00
I-Al-Istannen
737c04a741 Parse ranges in meta file 2020-03-25 23:26:10 +01:00
I-Al-Istannen
70189144f1 Add a primitive meta file parser 2020-03-25 22:46:24 +01:00
b1274d5d2c Begin rewrite
... by deleting most files. By the theory of evolution, the remaining ones will
get stronger over the next commits. That's how it works, isn't it?
2020-03-25 21:41:41 +00:00
3e0f4e22b1 Update resolver to 15.2 2020-03-25 14:58:40 +00:00
bbd0707a6d Satisfy hlint 2019-12-03 23:24:12 +00:00
616a991e21 Add installation instructions 2019-11-26 09:59:48 +00:00
7c75f1868a Update tools section 2019-11-26 09:48:34 +00:00
365d7f0b5f Fix how arguments are interpreted
Also adds the footer from mima-run to mima-asm.
2019-11-26 09:45:23 +00:00