ess
19 months agoChange List to use Cow<[Sexp]> instead of Vec<Sexp> develop
Cassie Jones [Tue, 11 Feb 2020 01:42:07 +0000 (20:42 -0500)]
Change List to use Cow<[Sexp]> instead of Vec<Sexp>

We would like to use Cow<[Sexp]> since this enables storing slices
inside the lists, and therefore allows you to calculate "cdr"
efficiently. It doesn't improve "cons" at all, however, so this might
not be the right option.

19 months agoBookkeeping, relicense, contacts, move
Cassie Jones [Tue, 11 Feb 2020 00:54:16 +0000 (19:54 -0500)]
Bookkeeping, relicense, contacts, move

While I'm updating this project I might as well move it to my own
hosting instead of leaving it on GitHub. I probably need to get an issue
tracker working...

2 years agoMerge pull request #15 from porglezomp/version/0.4.2
C Jones [Thu, 20 Dec 2018 04:33:40 +0000 (23:33 -0500)]
Merge pull request #15 from porglezomp/version/0.4.2

Bump version number

2 years agoBump version number
C Jones [Thu, 20 Dec 2018 03:45:30 +0000 (22:45 -0500)]
Bump version number

2 years agoMerge pull request #11 from porglezomp/comments
C Jones [Thu, 20 Dec 2018 03:20:23 +0000 (22:20 -0500)]
Merge pull request #11 from porglezomp/comments

Add comment support

2 years agoAdd comment support
C Jones [Wed, 19 Dec 2018 14:57:03 +0000 (09:57 -0500)]
Add comment support

2 years agoMerge pull request #9 from porglezomp/cleanup
C Jones [Wed, 19 Dec 2018 14:07:41 +0000 (09:07 -0500)]
Merge pull request #9 from porglezomp/cleanup

Code Cleanup

2 years agoCode cleanup
C Jones [Wed, 19 Dec 2018 14:01:37 +0000 (09:01 -0500)]
Code cleanup

2 years agoRun rustfmt
C Jones [Wed, 19 Dec 2018 13:48:43 +0000 (08:48 -0500)]
Run rustfmt

2 years agoFix name
C Jones [Wed, 19 Dec 2018 13:44:22 +0000 (08:44 -0500)]
Fix name

4 years agoIncrement version number to 0.4.1
Caleb Jones [Thu, 5 Jan 2017 00:34:58 +0000 (19:34 -0500)]
Increment version number to 0.4.1

4 years agoMerge pull request #3 from porglezomp/feature/quoting
Caleb Jones [Thu, 5 Jan 2017 00:30:49 +0000 (19:30 -0500)]
Merge pull request #3 from porglezomp/feature/quoting

Add the quote shorthands

4 years agoAdd unquote on , and unquote-splicing on ,@
Caleb Jones [Thu, 5 Jan 2017 00:26:19 +0000 (19:26 -0500)]
Add unquote on , and unquote-splicing on ,@

4 years agoAdd quasiquote with `
Caleb Jones [Thu, 5 Jan 2017 00:21:02 +0000 (19:21 -0500)]
Add quasiquote with `

4 years agoAdd quote notation with '
Caleb Jones [Thu, 5 Jan 2017 00:03:37 +0000 (19:03 -0500)]
Add quote notation with '

'<expr> parses the same as (quote <expr>), but with smaller spans.

4 years agoMerge pull request #2 from porglezomp/version/0.4
Caleb Jones [Fri, 30 Dec 2016 23:09:30 +0000 (18:09 -0500)]
Merge pull request #2 from porglezomp/version/0.4

Version 0.4

4 years agoBump the version number to 0.4.0
Caleb Jones [Fri, 30 Dec 2016 22:56:17 +0000 (17:56 -0500)]
Bump the version number to 0.4.0

4 years agoMerge branch 'documentation' into version/0.4
Caleb Jones [Fri, 30 Dec 2016 22:55:02 +0000 (17:55 -0500)]
Merge branch 'documentation' into version/0.4

4 years agoPut allow(missing_docs) on the internal parser functions
Caleb Jones [Fri, 30 Dec 2016 22:54:05 +0000 (17:54 -0500)]
Put allow(missing_docs) on the internal parser functions

4 years agoAdd documentation for Span
Caleb Jones [Fri, 30 Dec 2016 22:46:32 +0000 (17:46 -0500)]
Add documentation for Span

4 years agoAdd a module description line to Sexp
Caleb Jones [Fri, 30 Dec 2016 22:34:54 +0000 (17:34 -0500)]
Add a module description line to Sexp

4 years agoAdd documentation for the parser module and main parser functions
Caleb Jones [Fri, 30 Dec 2016 22:24:19 +0000 (17:24 -0500)]
Add documentation for the parser module and main parser functions

4 years agoDocument ParseError
Caleb Jones [Fri, 30 Dec 2016 21:33:38 +0000 (16:33 -0500)]
Document ParseError

4 years agoDocument ParseResult
Caleb Jones [Fri, 30 Dec 2016 21:17:08 +0000 (16:17 -0500)]
Document ParseResult

4 years agoMerge branch 'feature/modules' into version/0.4
Caleb Jones [Fri, 30 Dec 2016 19:31:11 +0000 (14:31 -0500)]
Merge branch 'feature/modules' into version/0.4

4 years agoSplit the project into multiple modules
Caleb Jones [Fri, 30 Dec 2016 19:30:23 +0000 (14:30 -0500)]
Split the project into multiple modules

4 years agoAdd Travis CI and badges to the README
Caleb Jones [Fri, 30 Dec 2016 19:14:48 +0000 (14:14 -0500)]
Add Travis CI and badges to the README

4 years agoRename the project to Ess and add Cargo metadata
Caleb Jones [Fri, 30 Dec 2016 00:15:42 +0000 (19:15 -0500)]
Rename the project to Ess and add Cargo metadata

4 years agoMake it possible to take ownership of the strings in a Sexp
Caleb Jones [Wed, 28 Dec 2016 19:10:55 +0000 (14:10 -0500)]
Make it possible to take ownership of the strings in a Sexp

This lets you extend the lifetime, which is useful for things like
producing error types that contain an Sexp and so on.

4 years agoMerge pull request #1 from porglezomp/locations
Caleb Jones [Sun, 25 Dec 2016 04:45:57 +0000 (23:45 -0500)]
Merge pull request #1 from porglezomp/locations

Migrate away from nom for error reporting and source locations

4 years agoBump version number
Caleb Jones [Sun, 25 Dec 2016 04:34:20 +0000 (23:34 -0500)]
Bump version number

Remove debug print

4 years agoChange test case formatting
Caleb Jones [Sun, 25 Dec 2016 04:31:04 +0000 (23:31 -0500)]
Change test case formatting

4 years agoAdd top level parsing functions
Caleb Jones [Sun, 25 Dec 2016 03:58:50 +0000 (22:58 -0500)]
Add top level parsing functions

4 years agoParse lists
Caleb Jones [Sun, 25 Dec 2016 03:42:03 +0000 (22:42 -0500)]
Parse lists

4 years agoRefactor consuming whitespace into a macro
Caleb Jones [Sun, 25 Dec 2016 02:42:08 +0000 (21:42 -0500)]
Refactor consuming whitespace into a macro

4 years agoParse general s-expressions
Caleb Jones [Sun, 25 Dec 2016 02:33:47 +0000 (21:33 -0500)]
Parse general s-expressions

4 years agoParse character literals
Caleb Jones [Sun, 25 Dec 2016 02:16:38 +0000 (21:16 -0500)]
Parse character literals

4 years agoParse strings
Caleb Jones [Sun, 25 Dec 2016 02:06:10 +0000 (21:06 -0500)]
Parse strings

4 years agoAdd parsing for symbols
Caleb Jones [Sun, 25 Dec 2016 00:01:27 +0000 (19:01 -0500)]
Add parsing for symbols

4 years agoBegin a reimplementation that tracks source locations
Caleb Jones [Sat, 24 Dec 2016 20:33:14 +0000 (15:33 -0500)]
Begin a reimplementation that tracks source locations

4 years agoImprove the number parser
Caleb Jones [Thu, 22 Dec 2016 06:43:56 +0000 (01:43 -0500)]
Improve the number parser

Instead of redoing all the number extraction ourselves, we now reuse the
number parsing code built into Rust. We simply recognize things that
look like numbers, and pass the string into the appropriate number
parsing function.

4 years agoRemove the indirection introduced by separating Atom from Sexp
Caleb Jones [Thu, 22 Dec 2016 06:07:03 +0000 (01:07 -0500)]
Remove the indirection introduced by separating Atom from Sexp

4 years agoChange parse to parse multiple expressions and add parse_one
Caleb Jones [Tue, 20 Dec 2016 22:35:59 +0000 (17:35 -0500)]
Change parse to parse multiple expressions and add parse_one

4 years agoChange parse to return a ParseError instead of ()
Caleb Jones [Tue, 20 Dec 2016 22:10:25 +0000 (17:10 -0500)]
Change parse to return a ParseError instead of ()

4 years agoAdd more tests
Caleb Jones [Wed, 14 Dec 2016 07:24:04 +0000 (02:24 -0500)]
Add more tests

4 years agoAdd parsing for characters
Caleb Jones [Wed, 14 Dec 2016 07:06:23 +0000 (02:06 -0500)]
Add parsing for characters

4 years agoAdd tests for parsing number and symbol
Caleb Jones [Wed, 14 Dec 2016 06:56:48 +0000 (01:56 -0500)]
Add tests for parsing number and symbol

Fix a bug in number parsing where it would accept invalid numbers like
123q.

4 years agoAdd an extremely basic s-expression parser using nom
Caleb Jones [Wed, 14 Dec 2016 06:38:53 +0000 (01:38 -0500)]
Add an extremely basic s-expression parser using nom