aboutsummaryrefslogtreecommitdiff
path: root/luxc/src/lux/reader.clj (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-12-04Re-named old luxc-jvm to lux-bootstrapper.Eduardo Julian1-153/+0
2018-08-20Some refactoring.Eduardo Julian1-6/+9
2018-01-28- Fixed some parsing errors affecting JVM interface analysis/compilation.Eduardo Julian1-0/+14
2017-01-26- Changed the license from MPL 2.0 to MIT.Eduardo Julian1-5/+0
2017-01-25- Improved Lux error messages by ensuring the cursor is always present.Eduardo Julian1-4/+4
2016-12-01- Collected the Lux compiler's repo, the Standard Library's, the Leiningen ↵Eduardo Julian1-0/+0
plugin's and the Emacs mode's into a big monorepo, to keep development unified.
2016-05-12- Now with better localization for reader, lexer & parser errors.Eduardo Julian1-3/+3
2016-05-08- Removed _jvm_class, _jvm_interface and _jvm_anon-class from the list of ↵Eduardo Julian1-0/+10
special forms.
2016-05-03- Now, showing the right error when trying to lex an ident with an ↵Eduardo Julian1-0/+15
invalid/unknown prefix.
2016-02-15- Can now use unicode characters in identifiers.Eduardo Julian1-21/+0
- Can now escape unicode characters in both Char and Text.
2016-02-07- Fixed a bug when getting a value out of a variant (it was acting ↵Eduardo Julian1-25/+25
improperly when dealing with "composed" variants). - Revamped the way variants are defined & used in the compiler.
2016-01-17- Modified the syntax for multi-line text so line-delimiters (\ \) are no ↵Eduardo Julian1-6/+6
longer necessary, and necessary indentation is deduced from the column of the initial double-quote (") delimiting the text. - Modified some functions in the reader so they give back information as to whether the line was fully consumed or not after each reading.
2016-01-05- Optimized the new "product" implementation to improve performance & memory ↵Eduardo Julian1-14/+14
consumption.
2016-01-02- Implemented the feature of adding arbitrary meta-data to definitions.Eduardo Julian1-8/+9
- Implemented exports, macros, tags and aliases on top of definition meta-data (a.k.a DefMeta).
2015-11-29- No longer removing empty lines from source code when reading it. Now ↵Eduardo Julian1-3/+0
lexing them as whitespace. - Shifted version of the compiler to 0.3.1
2015-09-11- Implemented the with-open macro.Eduardo Julian1-4/+4
- Cleaned-up a bit the tag-generation macro "deftags".
2015-08-30- Added unit-tests for lexer.Eduardo Julian1-18/+9
- Fixed a bug when lexing multi-line comments.
2015-08-29- Remove the (unnec) "All'" and "->'" macros.Eduardo Julian1-14/+13
- Improved the "struct" macro so that (once again) it doesn't ask for the prefixes of the members. - Added tests for the lux.reader namespace.
2015-08-28- Changed the name of AllT (for-all type) to UnivQ (universal quantification).Eduardo Julian1-2/+2
- UnivQ no longer stores the environment as key-val pairs with Text names, but instead stores it as type-lists with variables accessed via an index through a (updated) BoundT. - UnivQ no longer stores the name of the type-fun, not the name of the type-arg.
2015-08-28Changed the license from EPL to MPL.Eduardo Julian1-7/+4
2015-08-28Due to several performance issues and my inability to optimize them away due ↵Eduardo Julian1-27/+27
to too many corner cases, I decided the abandon the path towards a more mathematical implementation of tuples & variants.
2015-08-23- Restructuring how sums & products work [part 1]Eduardo Julian1-27/+27
2015-08-17- Finished turning tags into indices.Eduardo Julian1-7/+7
- As an unexpected bonus, the compiler has become 2.5x faster. - Fixed some minor bugs. - Tag declarations now include associated types. - Tag declarations info is now stored twice (one from the perspective of tags, the other from the perspective of types). - Changed the named of the "types" member of the Compiler type, to "type-vars" to avoid collision with the "types" member of the Module type.
2015-08-12- Changing tags so they're actually indices (part 3). Eduardo Julian1-5/+5
- Added several bug fixes - Changed "Reader" to "Source" and "HostState" to "Host" in lux.lux - Set up indexing of records via tags. - Added lux.analyser.record namespace. - Removed some (now) unnecessary code for working with records. - Added the license (can't believe I missed it for so long.)
2015-08-08More refactoring of tags, this time for reader, lexer & parser.Eduardo Julian1-13/+19
2015-08-06Started factoring out the tags used in variants within the compiler.Eduardo Julian1-9/+9
2015-08-06- Refacted the compiler by shifting to a pattern-matching syntax more akin ↵Eduardo Julian1-17/+17
to Lux's, while also allowing non-literal tags that can be defined as constants elsewhere. - Added some extra JVM ops for bit-fiddling that were missing.
2015-07-19Added copyright notice on all files that missed it.Eduardo Julian1-0/+8
2015-06-20- The directory for source-code is now named "input".Eduardo Julian1-1/+1
- Implemented module-caching to avoid the waiting too much during program compilation.
2015-06-12- Added imports.Eduardo Julian1-2/+2
- Now storing information about definitions & imports inside the .class files.
2015-06-09- Now displaying the location where the analyser finds error (file-name, ↵Eduardo Julian1-2/+4
line & column).
2015-05-27- Now storing the hash of the source file as a final, static field of the ↵Eduardo Julian1-2/+2
generated class.
2015-05-22- Corrected the indentation issues in the lux files.Eduardo Julian1-33/+42
- Temporarily reverted back to forward apply-analysis. - Fixed an error in lux.base/show-ast. - Reader now only returns a tuple instead of a full-blown #Meta variant. - Reader now doesn't cut the strings that it reads. Instead, the "cursor" just moves around, indicating where to read. - Inlined some calculations that previously relied on try-all%.
2015-05-14- Multi-line comments have returned.Eduardo Julian1-4/+44
2015-05-10- Switched to the new prefix convention for both lux's special forms and the ↵Eduardo Julian1-2/+2
host's. - Made a few optimizations to speed-up the now slowed-down compiler.
2015-05-06- Made several optimizations to the compiler.Eduardo Julian1-41/+36
- Also removed several unused definitions.
2015-05-06- Made some small optimizations in the compiler.Eduardo Julian1-4/+3
2015-05-06- Removed all the unnecesary comments.Eduardo Julian1-10/+3
- Made some changes to the way type-checking is performed on variants, records & tuples in order to improve the speed of type-checking.
2015-05-03- Optimized the compiler by eliminating reflection.Eduardo Julian1-6/+6
2015-05-03- The type syntax is finally complete ^_^Eduardo Julian1-1/+1
- Finally, the "case" macro has been implemented ^_^ - The macro-expand function is also alive! - Corrected the field-access special forms so they take their field as a symbol instead of text. - Macros are no longer stored inside the CompilerState as (Maybe Macro), but as Macro. - Void is implemented as - Fixed an error when parsing escaped characters in text. - Fixed an error in the reader in which parsing regex2 gave back a 2-vector instead of a 2-tuple.
2015-04-23- Migrated all the record data-structures to the new tuple-like format.Eduardo Julian1-4/+4
2015-04-08- Renamed exec to |do.Eduardo Julian1-1/+1
- :let within |do now uses |let instead of let. - The analyser now does totality analysis and structures the pattern matching, with the compiler only compiling the generated structures. - Local bindings with case' can now be prefixed arbitrarily. (Note: must do the same with functions).
2015-03-22- Fixed the bug that caused the infinite look while compiling the file.Eduardo Julian1-3/+23
2015-03-21- Added the reading-phase and it's associated structure as the mediator ↵Eduardo Julian1-0/+80
between raw source-code and the lexing-phase.