Commit Graph
100 Commits
Author SHA1 Message Date
sashakoshka 23052aa6f0 Changed repository import paths 2024-02-22 19:22:53 -05:00
sashakoshka 9d43ef75ee Changed go.mod version to 1.19 2024-02-21 13:49:46 -05:00
sashakoshka 418e013dda Reflected those changes in unit design doc 2024-02-21 13:46:26 -05:00
sashakoshka ddafa0935a Module search paths are more useful now 2024-02-21 13:45:51 -05:00
sashakoshka 24b15cfea6 Merge branch 'implement-modules' 2024-02-21 13:27:35 -05:00
sashakoshka bc9f1302b2 Merge branch 'main' into implement-modules 2024-02-21 18:26:44 +00:00
sashakoshka e4eb8c4e62 Updated compiler to use Resolver 2024-02-21 13:21:58 -05:00
sashakoshka 222dae2dac Add a "Resolver" that resolves unit addresses 2024-02-21 13:21:41 -05:00
sashakoshka 39d584bd1b Compiler understands compiling to . 2024-02-20 01:48:18 -05:00
sashakoshka d4a7420471 Compiler now only parses module files that end in .fspl 2024-02-20 01:39:07 -05:00
sashakoshka 108c89c18e cli package now prints out usage correctly 2024-02-20 01:27:26 -05:00
sashakoshka f0fbe6440a Compiler is a bit more adaptable now 2024-02-20 01:23:00 -05:00
sashakoshka 5890e6188b Oops haha, print statement. 2024-02-20 00:52:30 -05:00
sashakoshka 07ea408d4e The compiler now compiles 2024-02-20 00:52:23 -05:00
sashakoshka f06a0e29b9 Updated generator tests 2024-02-19 23:05:30 -05:00
sashakoshka 7600bc28d9 Fixed generator map sorting 2024-02-19 21:57:21 -05:00
sashakoshka a22b6137d5 Types are given proper link names in the generator 2024-02-19 21:09:21 -05:00
sashakoshka 306b029951 Generator now has module support 2024-02-19 21:00:20 -05:00
sashakoshka 2f2e762d02 Documented how methods are named 2024-02-19 12:09:21 -05:00
sashakoshka ff18aae2b6 entity.Key now has an optional method field 2024-02-19 12:05:13 -05:00
sashakoshka 4166fb8817 Move Key to Entity 2024-02-19 11:41:36 -05:00
sashakoshka d3df73e0ec Fixed wording issue in design/units.md 2024-02-19 11:18:17 -05:00
sashakoshka 569dd14f59 Analyzer does not allow operations on restricted types 2024-02-17 00:19:13 -05:00
sashakoshka 4b87551702 Analyzer does not allow literals to be assigned to restricted types 2024-02-17 00:12:32 -05:00
sashakoshka 9d009a1f64 Analyzer does not allow value casting of restricted types 2024-02-16 23:52:52 -05:00
sashakoshka 1b92c2cf81 Analyzer does not allow subscripting, slicing of restricted types 2024-02-16 23:10:38 -05:00
sashakoshka 3bc7467c85 Add more multi-unit test cases 2024-02-16 22:50:29 -05:00
sashakoshka ed282efdb7 Analyzer does not allow marking functions/methods as restricted 2024-02-16 22:31:38 -05:00
sashakoshka 654ba361e2 Analyzer does not allow member access on restricted types 2024-02-16 22:26:22 -05:00
sashakoshka 2d1b2bab43 Analyzer does not allow calling behaviors of restricted iface 2024-02-16 22:19:47 -05:00
sashakoshka f027a50756 Analyzer no longer thinks String is private 2024-02-16 22:13:30 -05:00
sashakoshka 444637bc15 Analyzer now fills out this information 2024-02-16 13:51:11 -05:00
sashakoshka f78a71950b Entity now stores unit and access information for types 2024-02-16 13:30:15 -05:00
sashakoshka c4cb1ce273 Should also make sure ~ only applies to types 2024-02-16 13:09:48 -05:00
sashakoshka eb9444dad3 Add more test cases for restricted typedefs in units 2024-02-16 13:06:40 -05:00
sashakoshka f93c9b26c8 When analyzing a typedef, update the unit information first 2024-02-16 12:54:34 -05:00
sashakoshka 37aa620f33 This is mega silly 2024-02-16 12:49:47 -05:00
sashakoshka 158a4220be Pass TestUnitPrivateMethod Err 2024-02-16 12:48:25 -05:00
sashakoshka 1fea25ba91 Fix behavior of Tree.analyzeMethodOrBehavior() 2024-02-16 12:43:42 -05:00
sashakoshka 6c7c7c9d99 Real quick add unicode test to parser 2024-02-15 12:43:09 -05:00
sashakoshka fcf44fd1ec Ok so maybe that one commit wasn't entirely true 2024-02-15 01:12:51 -05:00
sashakoshka ed498a3bc0 Analyzer checks access permissions when using named types 2024-02-15 01:08:21 -05:00
sashakoshka 159317965d Parser properly unions position of named types 2024-02-15 01:07:25 -05:00
sashakoshka 6b9cdcc239 Parser does *not* actually discard private toplevels while skimming
And it shouldn't! Because it doesn't, the analyzer can say "this is
private" instead of "this doesn't exist".
2024-02-15 01:06:21 -05:00
sashakoshka 87c2acf650 Add some initial analyzer tests for units 2024-02-14 23:20:01 -05:00
sashakoshka 43a488fb58 I ohasdhjklashf dslkfj ksdl 2024-02-14 23:10:43 -05:00
sashakoshka 14566196a9 Forgot about the nickname map haha 2024-02-14 22:48:55 -05:00
sashakoshka 63a9b5b540 Should be able to write tests for units now.
Haha unit tests. Surely this won't get confusing.
2024-02-14 22:39:08 -05:00
sashakoshka d8714cbc1d Improved analyzer testing infrastructure 2024-02-14 22:06:10 -05:00
sashakoshka 199da663e9 Parser now actually skims files 2024-02-14 18:49:59 -05:00
sashakoshka fb6cbe2c9d Improved the skim test case 2024-02-14 17:40:37 -05:00
sashakoshka 9bfc3bf4c6 Add parser test case for skimming 2024-02-14 17:35:44 -05:00
sashakoshka 86145c0975 All analyzer tests pass 2024-02-14 17:24:00 -05:00
sashakoshka cbfabba8a7 I mispelled stream 2024-02-14 13:49:06 -05:00
sashakoshka 724178ce6e Made analyzer error testing 20% cooler 2024-02-14 13:48:23 -05:00
sashakoshka 05bd29fc71 Use stram0.fspl so I don't have to rewrite every test 2024-02-14 13:41:24 -05:00
sashakoshka cd4e9608d0 Analyzer does not crash 2024-02-14 13:40:26 -05:00
sashakoshka b27684de46 Analyzer compiles 2024-02-14 13:35:50 -05:00
sashakoshka 7d93a0abf6 Add section about uniqueness and UUIDs to units design doc 2024-02-14 13:00:11 -05:00
sashakoshka cb33628996 Begin implemeting my better idea in the analyzer 2024-02-14 10:38:03 -05:00
sashakoshka 22dc2ef175 Made wording in entity even better 2024-02-14 10:22:33 -05:00
sashakoshka 025302a959 Add a file with my better idea in it 2024-02-14 10:22:08 -05:00
sashakoshka 6cd60cc9a6 So I have a better idea 2024-02-14 10:06:20 -05:00
sashakoshka ccb7fe46d0 treeParser.lookupUnit returns the current unit UUID on empty string 2024-02-14 02:04:28 -05:00
sashakoshka d3d739a24d Parser and entity now refer to units as units instead of modules 2024-02-14 02:01:01 -05:00
sashakoshka da4f9b8d67 Parser now translates names to unit UUIDs 2024-02-14 01:55:51 -05:00
sashakoshka 89b7273c2f Entity now deals in UUIDs 2024-02-14 01:48:47 -05:00
sashakoshka 3d75cdbd02 Parser now has something of a concept of modules 2024-02-14 01:44:25 -05:00
sashakoshka 7d32211e70 Add module names to top level entities 2024-02-13 21:36:08 -05:00
sashakoshka c3bbbc1536 Mini-analysis of metadata in Compiler.ParseModule 2024-02-13 21:24:13 -05:00
sashakoshka 62cf6deeb6 Break compiler out into its own package 2024-02-13 21:01:13 -05:00
sashakoshka 2c968404ea Break out ParseModule and ParseSourceFile from CompileUnit 2024-02-13 20:55:59 -05:00
sashakoshka 9d70abc084 Metadata is now an entity 2024-02-13 20:53:15 -05:00
sashakoshka b8afa6d9c0 Metadata is now an entity 2024-02-13 20:52:25 -05:00
sashakoshka 42cf7eed67 Compiler CLI can drive internals 2024-02-13 19:15:40 -05:00
sashakoshka 5448d07815 Module compilation stub in compiler command 2024-02-13 19:10:46 -05:00
sashakoshka d117e15157 Add method of entity.Address to generate a nickname 2024-02-13 19:10:24 -05:00
sashakoshka c89cbc24fe Add some utility methods to entity.Address 2024-02-13 17:29:42 -05:00
sashakoshka 8b5c6c2d8a Auto-nicknaming should happen at the analysis stage 2024-02-13 17:08:48 -05:00
sashakoshka ab9b0a3fa3 Add test cases for metadata parser 2024-02-13 16:33:15 -05:00
sashakoshka 97f149cf42 Add metaParser test-common.go 2024-02-13 16:32:59 -05:00
sashakoshka 7ed50c8d6f Implemented metadata file parsing 2024-02-13 16:22:10 -05:00
sashakoshka f35ba89cd0 Changed wording in fsplParser.treeParser.bug() 2024-02-13 16:21:50 -05:00
sashakoshka 8d2d71be89 Nickname is no longer a type 2024-02-13 16:20:45 -05:00
sashakoshka 59c2ed8502 Flesh out meta.Tree and meta.treeParser with more methods 2024-02-13 16:03:22 -05:00
sashakoshka 5d86161b63 Add Directive interface 2024-02-13 16:03:07 -05:00
sashakoshka c7043c2217 Minor readme fixes 2024-02-13 19:58:28 +00:00
sashakoshka b78d5acff2 Add information (or lack thereof) of learning the language 2024-02-13 19:57:22 +00:00
sashakoshka f39ba91450 Update roadmap 2024-02-13 19:40:51 +00:00
sashakoshka 254f3f84c0 License under GPLv3 2024-02-13 19:16:11 +00:00
sashakoshka 73b4643162 Add metadata entities 2024-02-13 13:29:30 -05:00
sashakoshka ab7d72dfe4 Updated compiler command 2024-02-13 13:16:03 -05:00
sashakoshka 76df41f813 I blame debian for this 2024-02-13 13:14:45 -05:00
sashakoshka b743e56c2a Updated generator 2024-02-13 13:12:53 -05:00
sashakoshka cf40ab0707 Updated analyzer 2024-02-13 13:12:45 -05:00
sashakoshka 6b56600c8f Improve doc comments for Parser 2024-02-13 13:07:37 -05:00
sashakoshka 5f035df827 Separated parser into two packages 2024-02-13 13:03:22 -05:00
sashakoshka 5b24bdc32b Extracted re-usable parsing utilities from parser.parser 2024-02-13 12:31:52 -05:00
sashakoshka 4a5928e268 Asajkdhaskldj 2024-02-13 00:50:30 -05:00
sashakoshka 9bd91b73ab Rename module design doc to unit design doc 2024-02-13 00:27:51 -05:00