Commit Graph

787 Commits

Author SHA1 Message Date
Tom Alexander
a7b298eeec
Fix lesser block exit priority.
The paragraph end was matching text inside lesser blocks.
2023-08-14 17:32:10 -04:00
Tom Alexander
1bbfbc3164
Add additional tracing to lesser block. 2023-08-14 17:32:09 -04:00
Tom Alexander
2bcc3f0599
Fix reporting of jaeger traces when diff does not match.
The early exit was causing some traces to not be reported.
2023-08-14 17:32:09 -04:00
Tom Alexander
b93a12c32c
Add support for escaped double quotes in sexp. 2023-08-14 16:55:04 -04:00
Tom Alexander
72b8fec1be
Add support for tracing in run_docker_compare.bash. 2023-08-14 16:12:31 -04:00
Tom Alexander
eb379af78d
Switch export snippet to use exit matchers. 2023-08-14 13:13:32 -04:00
Tom Alexander
cc83431d62
Consume trailing whitespace for property drawers.
Some checks failed
rust-build Build rust-build has failed
rust-test Build rust-test has failed
This is a change between the org-mode in emacs 29.1 and the org-mode currently in main.
2023-08-14 11:57:12 -04:00
Tom Alexander
e33ec4a02c
Add support for reading begin/end bounds in the new standard-properties format. 2023-08-13 02:21:02 -04:00
Tom Alexander
f7afcec824
Add support for hash notation in the elisp parser. 2023-08-13 02:21:02 -04:00
Tom Alexander
cf0991fdff
Add support for parsing vectors in the elisp parser. 2023-08-13 02:21:02 -04:00
Tom Alexander
290a700a22
New, updated opentelemetry tracing exporter. 2023-08-10 23:27:15 -04:00
Tom Alexander
44ad6753ca
Fix feature gating the compare code. 2023-08-10 20:22:34 -04:00
Tom Alexander
cd1b4ba785
Make the tracing macros optional. 2023-08-10 20:22:34 -04:00
Tom Alexander
1f10d3d064
Disable all the old tracing stuff. 2023-08-10 20:22:34 -04:00
Tom Alexander
77de97703f
Remove all the old references to "toy language"
This is a relic from the early development days in this repo. When I first started this repo, it was a clean-slate playground to test ideas for solving the road blocks I hit with my previous attempt at an org-mode parser. To keep things simple, I originally only had a very basic set of syntax rules that only vaguely looked similar to org-mode. Once I had things figured out, I kept developing in this repo, morphing it into a full org-mode parser. A couple of references to those early days still remained, and this patch should get rid of the last of them.
2023-08-10 18:52:57 -04:00
Tom Alexander
66c71e7e40
Switch the compiled bin to running a diff just like the automated tests.
This is mostly so I can test a variety of org-mode documents without needing to integrate them into the org samples folder.
2023-08-10 18:46:19 -04:00
Tom Alexander
17e523b74c
Do not consume space in time rest when leading into a repeater or delay. 2023-07-27 20:39:13 -04:00
Tom Alexander
ece8fcd0c4
Implement parser for active/inactive timestamp time ranges. 2023-07-27 20:26:56 -04:00
Tom Alexander
1a5b7ca30c
Implement parser for active/inactive timestamp date ranges. 2023-07-27 19:59:36 -04:00
Tom Alexander
b5a029e2bf
Implement parser for inactive timestamps. 2023-07-27 19:54:33 -04:00
Tom Alexander
c5f81298ba
Switch to passing in the exit matcher from a higher context to reduce the permutations of functions. 2023-07-27 19:52:35 -04:00
Tom Alexander
529418a9d1
Implement parser for active timestamps. 2023-07-27 19:45:57 -04:00
Tom Alexander
d4a3628481
Implement parser for date. 2023-07-27 19:20:28 -04:00
Tom Alexander
70f2747291
Implement parser for diary timestamps. 2023-07-27 18:59:32 -04:00
Tom Alexander
49d5a4e4b5
Call out to the parsers for the various timestamp types.
The parsers for those types remain unimplemented.
2023-07-24 17:54:49 -04:00
Tom Alexander
fa5fc41121
Create structure for timestamps. 2023-07-24 17:34:07 -04:00
fluxcdbot
efa56a6bef
CI: autofix rust code.
All checks were successful
semver Build semver has succeeded
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-07-24 16:57:08 -04:00
Tom Alexander
23d587c699
Implement parser for subscript/superscript with braces. 2023-07-24 16:29:31 -04:00
Tom Alexander
f717d5e7df
Implement parser for braceless subscript/superscript. 2023-07-24 15:41:14 -04:00
Tom Alexander
993c73dc9f
Create structure for subscript and superscript. 2023-07-24 14:23:36 -04:00
Tom Alexander
b8b2e33137
Implement the statistics cookie parser. 2023-07-22 02:12:21 -04:00
Tom Alexander
c73e26e2d6
Create structure for statistics cookies. 2023-07-22 02:12:20 -04:00
fluxcdbot
abb0aeacaf CI: autofix rust code.
All checks were successful
semver Build semver has succeeded
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-07-22 05:43:17 +00:00
Tom Alexander
caa6c41798
Add a test case. 2023-07-22 01:40:27 -04:00
Tom Alexander
e54218c0d7
Implement the target parser. 2023-07-22 01:36:00 -04:00
Tom Alexander
d60cad07e0
Create structure for targets. 2023-07-22 01:15:04 -04:00
Tom Alexander
5c1d913c99
Check that the preceding line for a line break is non-empty. 2023-07-22 00:43:02 -04:00
Tom Alexander
a1f3e9ea47
Implement line break parser. 2023-07-22 00:03:21 -04:00
Tom Alexander
4d114206ef
Create structure for line breaks. 2023-07-21 23:48:37 -04:00
Tom Alexander
80039aa605
Fix bracket counting in inline babel calls. 2023-07-21 23:20:10 -04:00
Tom Alexander
0b41e12424
Fix counting brackets in inline source block. 2023-07-21 23:14:52 -04:00
Tom Alexander
e8979513aa
Implement parser for inline source blocks. 2023-07-21 22:51:19 -04:00
Tom Alexander
e0d2bb8213
Create structure for inline source blocks. 2023-07-21 22:29:04 -04:00
Tom Alexander
45b01012b3
Implement the parser for inline babel calls. 2023-07-21 21:39:53 -04:00
Tom Alexander
eef2944307
Create structure for inline babel calls. 2023-07-21 19:53:02 -04:00
Tom Alexander
7ce9dafd96
Fix parsing citations inside paragraphs. 2023-07-21 18:52:02 -04:00
Tom Alexander
d678391789
Fix parsing semicolons. 2023-07-21 18:42:22 -04:00
Tom Alexander
1a8bf01fba
Fix simple citations by making prefixes and suffixes optional. 2023-07-21 18:19:39 -04:00
Tom Alexander
4ad297f58a
Add a test for a simple citation. 2023-07-21 18:00:19 -04:00
Tom Alexander
6b47a6c6c3
Initial implementation for citations.
This implementation definitely has bugs and is completely untested at this point. I'm just committing the initial "assume everything works" version before I did into debugging and fixing.
2023-07-21 17:52:18 -04:00
Tom Alexander
e24b413cd0
Finish first implementation of citation reference. 2023-07-21 16:38:49 -04:00
Tom Alexander
339ff5cd26
Implement key parser and begin key_suffix parser. 2023-07-20 01:13:49 -04:00
Tom Alexander
d5c611674e
Create structure for citations. 2023-07-20 00:38:16 -04:00
Tom Alexander
7611deb1ff
Forgot to add the exit matcher nodes to the context and match the trailing ']'. 2023-07-19 23:40:26 -04:00
Tom Alexander
b850f59640
Implement parser for inline footnotes. 2023-07-19 23:20:17 -04:00
Tom Alexander
a36a820e84
Implement parser for the simplest form of footnote reference. 2023-07-19 21:32:08 -04:00
Tom Alexander
6822069c2f
Implement the parser for anonymous footnotes. 2023-07-19 21:14:09 -04:00
Tom Alexander
5fb66a586d
Implement a function to detect the end of a footnote reference definition with balanced brackets. 2023-07-19 20:52:09 -04:00
Tom Alexander
9c2eb3b122
Create structure for footnote references. 2023-07-19 18:56:46 -04:00
Tom Alexander
95e033a99b
Implement the export snippet parser. 2023-07-19 00:38:19 -04:00
Tom Alexander
1fb8ce9af6
Create structure for export snippets. 2023-07-19 00:09:16 -04:00
Tom Alexander
5e73ca74d5
Fix embedding text that coincidentally matches org-mode object syntax inside a LaTeX environment.
I was using the plain_text matcher before which adds its own exit condition that does not apply to LaTeX environments.
2023-07-18 23:27:48 -04:00
Tom Alexander
0d6f6288c9
Support escaping backslash in sexp. 2023-07-18 23:08:58 -04:00
Tom Alexander
a817eefce7
Add form 6 of LaTeX fragment. 2023-07-18 22:39:05 -04:00
Tom Alexander
4f5c40cd4b
Add forms 4 and 5 of LaTeX fragment. 2023-07-18 22:21:52 -04:00
Tom Alexander
faf81d0143
Add forms 2 and 3 of LaTeX fragment. 2023-07-18 22:02:38 -04:00
Tom Alexander
c79b8c7833
Implement the first form of LaTeX fragment. 2023-07-18 21:50:29 -04:00
Tom Alexander
5ad8fdf4b2
Add test cases. 2023-07-18 21:14:49 -04:00
Tom Alexander
3ab0dd4531
Create structure for LaTeX fragments. 2023-07-18 21:14:49 -04:00
Tom Alexander
754e9ff7d7
Implement entity parser. 2023-07-18 20:35:55 -04:00
Tom Alexander
21f46d09e6
Create structure for entities. 2023-07-18 20:05:39 -04:00
fluxcdbot
bab9232ebc CI: autofix rust code.
All checks were successful
semver Build semver has succeeded
rust-test Build rust-test has succeeded
rustfmt Build rustfmt has succeeded
2023-07-18 17:51:28 +00:00
fluxcdbot
0cd398c30c CI: autofix rust code.
Some checks failed
rustfmt Build rustfmt has failed
rust-test Build rust-test has succeeded
semver Build semver has succeeded
2023-07-18 17:48:21 +00:00
Tom Alexander
167ffa650c
Enable another test. 2023-07-14 20:58:11 -04:00
Tom Alexander
27d863b875
Fix the simple test by allowing bold to start/end with <> and by capturing trailing whitespace from radio links. 2023-07-14 20:55:16 -04:00
Tom Alexander
e608b73d1a
Implement all-token iteration.
Some checks failed
rust-test Build rust-test has failed
Radio targets are now being properly detected and they trigger re-parses but the tests do not yet pass.
2023-07-14 20:45:31 -04:00
Tom Alexander
b27f911ff3
Finish implementing token iteration. 2023-07-14 20:24:06 -04:00
Tom Alexander
08e6efe5f5
Filling in more of the iter_tokens tree. 2023-07-14 20:18:30 -04:00
Tom Alexander
0e73b83bf3
Filling in more of the iter_tokens tree. 2023-07-14 20:09:24 -04:00
Tom Alexander
793e560bd5
Boxing made it work. 2023-07-14 19:57:27 -04:00
Tom Alexander
0073af19e2
Running into an issue returning different iterators from the same function. 2023-07-14 19:54:41 -04:00
Tom Alexander
688779ba40
Fix tests. 2023-07-14 19:09:54 -04:00
Tom Alexander
bd04451d58
Implement the second parsing pass. 2023-07-14 19:06:58 -04:00
Tom Alexander
cdd3517655
Include the trailing space for the bolds. 2023-07-14 18:32:16 -04:00
Tom Alexander
7ca8beac5a
Allow matching bolds in radio link targets. 2023-07-14 18:27:09 -04:00
Tom Alexander
4ba1e63dde
Add a test for bold inside a radio target. 2023-07-14 18:12:04 -04:00
Tom Alexander
e4c6ca2880
Add tracing.
Some checks failed
rust-test Build rust-test has failed
2023-07-14 18:05:31 -04:00
Tom Alexander
b9a7c3f7f3
Fix lifetime issue. 2023-07-14 18:04:01 -04:00
Tom Alexander
4966b02b79
Expanded rematch_target to 3 lifetimes, no fix. 2023-07-14 17:45:20 -04:00
Tom Alexander
ddaefdbf78
Nearly done implementing re-matching of bold, but running into a lifetime issue. 2023-07-14 17:37:46 -04:00
Tom Alexander
e5c1b68b0e
Add a basic test showing the radio link rematching working on plain text.
Some checks failed
rust-test Build rust-test has failed
2023-07-14 16:51:23 -04:00
Tom Alexander
66ae70e790
Implement the rematch target parser. 2023-07-14 16:32:52 -04:00
Tom Alexander
0014dfc21f
Implement the radio link parser.
The parser depends on the rematch_target parser which is not yet implemented.
2023-07-14 16:18:04 -04:00
Tom Alexander
c44e7d642f
Starting code for iterating over the parsed ast. 2023-07-14 12:28:52 -04:00
Tom Alexander
3fc3ba58aa
Defining the RadioTarget context element. 2023-07-14 12:28:52 -04:00
Tom Alexander
22bb42882b
Implement rematch for plain text. 2023-07-14 12:28:51 -04:00
Tom Alexander
397083c658
Define a RematchObject trait for matching radio links based on radio targets. 2023-07-14 12:28:51 -04:00
fluxcdbot
57ac625350 CI: format rust code.
All checks were successful
semver Build semver has succeeded
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-07-14 04:28:56 +00:00
Tom Alexander
cdd813fbe6
First implementation of macro. 2023-07-14 00:20:32 -04:00
Tom Alexander
d24c26de7b
Create structure for org macros. 2023-07-13 23:30:06 -04:00
Tom Alexander
d353c1623a
Implement the angle link parser. 2023-07-13 23:02:12 -04:00
Tom Alexander
178221a0a2
Update plain link to allow for exit matchers to trigger during matching. 2023-07-13 22:54:59 -04:00
Tom Alexander
ed8b1405db
Create structure for angle links. 2023-07-13 22:42:42 -04:00
Tom Alexander
475e25ba8e
Add a TODO.
Some checks failed
semver Build semver has succeeded
cargo-fmt Build cargo-fmt has succeeded
build-organic-test Build build-organic-test has succeeded
build-cargo-fmt Build build-cargo-fmt has succeeded
organic-test Build organic-test has failed
2023-07-13 19:33:38 -04:00
fluxcdbot
999c992bdf CI: format rust code.
Some checks failed
semver Build semver has succeeded
cargo-fmt Build cargo-fmt has succeeded
build-organic-test Build build-organic-test has failed
organic-test Build organic-test has failed
build-cargo-fmt Build build-cargo-fmt has succeeded
2023-07-13 23:22:10 +00:00
Tom Alexander
5f4e240af0
Add an initial implementation of PlainLink. 2023-07-13 19:20:17 -04:00
Tom Alexander
59f061ecca
Define pre and post matchers for plain link.
All checks were successful
organic-test Build organic-test has succeeded
2023-07-13 18:30:18 -04:00
Tom Alexander
dcec5c490a
Create structure for plain links.
All checks were successful
organic-test Build organic-test has succeeded
2023-07-13 18:18:07 -04:00
Tom Alexander
ec889bc868
Clean up old unused code. 2023-04-24 20:25:49 -04:00
Tom Alexander
a5585eb01f
Add a not yet implemented function.
This helps when creating new parsers since todo!()s will panic the whole parser.
2023-04-24 20:11:13 -04:00
Tom Alexander
6ed33d3522
Derive partial eq for all objects so we can match radio links. 2023-04-24 19:25:22 -04:00
Tom Alexander
fec7d51f75
Implement radio targets. 2023-04-24 19:18:38 -04:00
Tom Alexander
64c17e654a
Code structure for radio links and radio targets. 2023-04-24 19:06:45 -04:00
Tom Alexander
0fc3bb0245
Compare text length for plain text in the diffing. 2023-04-24 18:21:38 -04:00
Tom Alexander
bc8e640574
Make plain text exit condition not an exit matcher.
I think this condition needs to not exist deeper down the tree.
2023-04-24 18:08:28 -04:00
Tom Alexander
b2ee44ec09
Simplify the implementation of plain text. 2023-04-24 17:58:10 -04:00
Tom Alexander
90a47b7b49
Exit text markup if the parent exit matcher is triggering. 2023-04-24 17:16:07 -04:00
Tom Alexander
ed174c1c41
Fix nested bolds child eating the parent exit. 2023-04-24 16:48:33 -04:00
Tom Alexander
f9d83ee09d
Consume trailing whitespace for links. 2023-04-24 16:29:19 -04:00
Tom Alexander
b2b1e9272c
Format. 2023-04-24 16:19:48 -04:00
Tom Alexander
28759edb3b
Remove unused imports. 2023-04-24 16:19:29 -04:00
Tom Alexander
87be28ed15
Fix matching of description in links. 2023-04-24 16:05:46 -04:00
Tom Alexander
b4d4453186
Just doing a simple match everything for path reg. 2023-04-23 17:37:35 -04:00
Tom Alexander
8a828195bd
Implement all of regular link except for pathreg. 2023-04-23 16:53:02 -04:00
Tom Alexander
3600f46e3b
Initial code structure for regular links. 2023-04-23 16:17:52 -04:00
Tom Alexander
f1bd7f2d1b
Add support for rust-coreutils in integration test script. 2023-04-23 16:12:34 -04:00
Tom Alexander
1044625acb
Clean up import. 2023-04-22 22:58:10 -04:00
Tom Alexander
37b91d171d
Compare the objects in heading titles when diffing the asts. 2023-04-22 22:56:36 -04:00
Tom Alexander
9968aedd74
Make sure text markup doesn't have interior spaces. 2023-04-22 22:34:37 -04:00
Tom Alexander
f964481544
Switch to using plain text with no additional exit matcher added. 2023-04-22 22:06:34 -04:00
Tom Alexander
208e2cfe87
Clean up imports. 2023-04-22 21:51:53 -04:00
Tom Alexander
0ca6ce504f
Simulate trailing whitespace in empty greater blocks just like drawers. 2023-04-22 21:45:18 -04:00
Tom Alexander
4d4d30c597
Simulate trailing whitespace in empty dynamic blocks just like drawers. 2023-04-22 21:43:11 -04:00
Tom Alexander
cade02eb72
Make the empty drawer honor an immediate exit condition. 2023-04-22 21:39:46 -04:00
Tom Alexander
189edaa24a
Simulate the trailing whitespace capture for empty drawer. 2023-04-22 21:25:46 -04:00
Tom Alexander
62c226fb47
Fix matching only the specific markup. 2023-04-22 21:01:29 -04:00
Tom Alexander
e6c5670a85
Support string-based text markup (code and verbatim). 2023-04-22 20:57:30 -04:00
Tom Alexander
036f4add4a
The object parsers separated out. 2023-04-22 20:48:01 -04:00
Tom Alexander
d2fc8a513f
Separate out the text markup types into their own types. 2023-04-22 20:22:07 -04:00
Tom Alexander
fab4ce0544
Fix a warning. 2023-04-22 20:04:35 -04:00
Tom Alexander
b6233811c3
Fix the implementation of post. 2023-04-22 20:02:51 -04:00
Tom Alexander
a4cce121c0
Add an exit matcher to plain text. 2023-04-22 19:46:27 -04:00
Tom Alexander
9a3bde0d80
First attempt at text markup. 2023-04-22 19:34:13 -04:00
Tom Alexander
0b3f414ecf
Get tracing back into the element parser. 2023-04-22 19:15:29 -04:00
Tom Alexander
f70babdcf4
Get tracing back into the latex environemtn end parser. 2023-04-22 19:12:48 -04:00
Tom Alexander
c0809cce10
Starting to parse text markup. 2023-04-22 19:06:48 -04:00
Tom Alexander
538031c688
Call the text markup parser. 2023-04-22 18:54:19 -04:00
Tom Alexander
2ac0449630
Unquote the text. 2023-04-22 18:18:13 -04:00
Tom Alexander
b3e182d7fe
Plain text compare not yet working because the text is quoted from the sexp. 2023-04-22 17:58:16 -04:00
Tom Alexander
e7a08775eb
First stab at latex environment parser. 2023-04-22 17:12:49 -04:00
Tom Alexander
4816a5dfc4
Code structure for latex environment. 2023-04-22 16:56:36 -04:00
Tom Alexander
fee9166741
Remove a TODO. 2023-04-22 01:45:54 -04:00
Tom Alexander
9861084afe
Cleanup. 2023-04-22 01:45:38 -04:00
Tom Alexander
92ee59558b
Remove unused import. 2023-04-22 01:36:43 -04:00
Tom Alexander
af90ea6dfd
Fix infinite loop by only checking paragraph matcher when boolean is true.
Before I was checking afterwards with a verify, which was causing an infinite loop.
2023-04-22 01:34:34 -04:00
Tom Alexander
7855020927
Fix some errors. 2023-04-22 01:13:05 -04:00
Tom Alexander
ba74bb58bb
Separate out calls to build element parser. 2023-04-22 01:08:45 -04:00
Tom Alexander
4ac6d89311
Moving towards unifying into a single parameterized element matcher.
This is to give paragraph priority over keyword in parsing so that affiliated keywords for paragraphs will be parsed as such.
2023-04-22 00:55:31 -04:00
Tom Alexander
fef5841713
Identify a problem. 2023-04-22 00:23:16 -04:00
Tom Alexander
fbdf40fed0
Fix failing tests that were relying on the captured trailing whitespace. 2023-04-22 00:19:01 -04:00
Tom Alexander
9b66929c14
Update test to use elements to capture the trailing whitespace. 2023-04-22 00:14:41 -04:00
Tom Alexander
7b7779ee7e
Set the source using the full range of affiliated keywords to trailing whitespace. 2023-04-22 00:09:14 -04:00
Tom Alexander
0b989b53a6
Fix warnings. 2023-04-21 23:55:18 -04:00
Tom Alexander
e97cf6630f
Move consuming the trailing whitespace up to the element matchers. 2023-04-21 23:54:54 -04:00
Tom Alexander
7df899e3a7
Read affiliated keywords. 2023-04-21 23:36:38 -04:00
Tom Alexander
29c03c6655
Disallowing begin blocks for keywords makes some of the tests pass. 2023-04-21 22:49:00 -04:00
Tom Alexander
ee126d2673
Allow empty keywords. 2023-04-21 22:44:13 -04:00
Tom Alexander
7139fce48d
Implement the keyword parser. 2023-04-21 22:36:21 -04:00
Tom Alexander
f0bab39778
Code structure for keyword. 2023-04-21 22:33:10 -04:00
Tom Alexander
bfffde3fdb
Implement the horizontal rule parser. 2023-04-21 22:23:59 -04:00
Tom Alexander
8294832717
Implement fixed width area. 2023-04-21 22:11:06 -04:00
Tom Alexander
5ae8ac61e5
Code structure for fixed width area. 2023-04-21 22:04:22 -04:00
Tom Alexander
db948d6286
Implement a planning parser. 2023-04-21 21:54:08 -04:00
Tom Alexander
f5099356a1
Add support for parsing the planning element in sections. 2023-04-21 21:39:26 -04:00
Tom Alexander
2ec1d4f855
Add the code structure for planning. 2023-04-21 21:33:23 -04:00
Tom Alexander
77f2d23036
Switch back to org-mode for the parsing binary. 2023-04-21 21:18:30 -04:00
Tom Alexander
798eeee488
Add a test for sexp with quoted atom containing parenthesis. 2023-04-21 21:15:18 -04:00
Tom Alexander
517e826f4e
Demonstrating the problem. 2023-04-21 21:01:26 -04:00
Tom Alexander
38cd62af33
Add in better error reporting. 2023-04-21 20:59:16 -04:00
Tom Alexander
6e406d71b6
Introduce a sexp_with_padding parser. 2023-04-21 20:53:55 -04:00
Tom Alexander
7de72cab23
Move the sexp parser into the parser crate.
We need to parse sexp for diary sexp.
2023-04-21 20:32:51 -04:00
Tom Alexander
9d5b078c64
Opening of diary sexp. 2023-04-21 20:26:49 -04:00
Tom Alexander
db78faa36f
Add the code structure for diary sexp. 2023-04-21 20:22:31 -04:00
Tom Alexander
ad27f34620
Add parsers for inactive timestamp range duration and inactive timestamp. 2023-04-21 19:21:42 -04:00
Tom Alexander
a947ab0955
First stab at clock parser. 2023-04-21 19:14:41 -04:00
Tom Alexander
c2ccf4da37
Set up the initial code structure for the clock. 2023-04-21 19:05:30 -04:00
Tom Alexander
2d4a592846
Expose the parser module instead of re-exporting all of its contents. 2023-04-21 19:05:30 -04:00
Tom Alexander
8420af7f1d
Put compare modules behind feature flag in library. 2023-04-21 18:50:52 -04:00
Tom Alexander
18323a2b43
Solve the rest of the compiler warnings. 2023-04-21 18:42:31 -04:00
Tom Alexander
a1724dae52
Combine the error types. 2023-04-21 18:36:01 -04:00
Tom Alexander
04dfffc000
Cleaning up compiler warnings. 2023-04-21 18:22:17 -04:00
Tom Alexander
6fce666983
Add test case for invalid src block. 2023-04-21 18:13:23 -04:00
Tom Alexander
cdcaae11c4
Add tests for broken export blocks. 2023-04-21 18:11:26 -04:00
Tom Alexander
fa4766b64e
Add comments about data parameter in lesser blocks. 2023-04-21 18:08:10 -04:00
Tom Alexander
f5218a6c31
Implement comparing the lesser blocks. 2023-04-21 18:05:40 -04:00
Tom Alexander
1006576a69
Modernize the verse block parser. 2023-04-21 18:01:06 -04:00
Tom Alexander
dbb04dcba6
Defining new structs for each type of lesser block. 2023-04-21 17:55:10 -04:00
Tom Alexander
cf6c4bc122
Write a parser specifically for comment lesser blocks. 2023-04-21 17:32:53 -04:00
Tom Alexander
86e0833033
Make the end check work with multiple block names using allocation. 2023-04-21 17:16:57 -04:00
Tom Alexander
f3393417bb
Parameterize lesser_block_end.
Only works with static strings right now.
2023-04-21 17:11:27 -04:00
Tom Alexander
47844caa5c
A first stab at lesser blocks. 2023-04-21 16:58:38 -04:00
Tom Alexander
0293ca6b12
Set up code structure for lesser blocks. 2023-04-21 16:31:25 -04:00
Tom Alexander
142bb09879
Move the impl of Source to the same file as the definition of the struct. 2023-04-21 16:16:14 -04:00
Tom Alexander
d780981baf
Separate out the element parsers. 2023-04-21 16:10:56 -04:00
Tom Alexander
54b02f4e74
Give object structs their own file separate from the parsers. 2023-04-21 16:07:38 -04:00
Tom Alexander
c2b6b5103a
Add comments about the sets of objects that can exist. 2023-04-21 15:57:45 -04:00
Tom Alexander
0fcfdd5ff2
Compare table row and table cell bounds. 2023-04-21 15:45:35 -04:00
Tom Alexander
a63d38e0ce
Consume line endings at the end of table rows. 2023-04-21 15:38:42 -04:00
Tom Alexander
f0d2754955
Consume the end of the cell. 2023-04-21 15:36:45 -04:00
Tom Alexander
d2fe100435
Change the binary to use the library.
Mostly just hoping this make rust-analyzer happier.
2023-04-21 15:28:46 -04:00
Tom Alexander
5225290156
Disable the env filter because I am running into errors. 2023-04-21 15:25:19 -04:00
Tom Alexander
c971148871
Running into an error running the tracer. 2023-04-21 14:54:29 -04:00
Tom Alexander
c75f4ebcff
Format the code. 2023-04-21 14:35:34 -04:00
Tom Alexander
633d6e421f
Allow empty cells if not last of line. 2023-04-20 00:15:40 -04:00
Tom Alexander
49f5b65acf
Match objects in cells. 2023-04-19 22:09:53 -04:00
Tom Alexander
55201e905a
Starting to implement table cell. 2023-04-19 21:57:08 -04:00
Tom Alexander
9747e0ba11
Implement table row rule. 2023-04-19 21:28:35 -04:00
Tom Alexander
093edf5c6e
Add TODO. 2023-04-19 21:21:33 -04:00
Tom Alexander
f3c1b47a8a
First attempt at table parser. Table row not yet implemented. 2023-04-19 21:19:49 -04:00
Tom Alexander
17ab8727d1
Initial structure for tables. 2023-04-19 20:59:58 -04:00
Tom Alexander
1badd3b0fc
Add TODO about a bug. 2023-04-19 19:56:21 -04:00
Tom Alexander
7728f3b71e
Fix property drawers beneath headlines. 2023-04-19 19:53:37 -04:00
Tom Alexander
87bdedf2e6
Only drop trailing whitespace when there isn't a property drawer. 2023-04-19 19:39:56 -04:00
Tom Alexander
d0410391cc
Drop blank lines after property drawer instead of owning them. 2023-04-19 19:28:21 -04:00
Tom Alexander
4e65d2cda9
Fix requiring no space between comment and property drawer for zeroth section. 2023-04-19 19:22:23 -04:00
Tom Alexander
603cc131a0
Numerous fixes to property drawers. 2023-04-19 19:03:51 -04:00
Tom Alexander
b557b9ca5d
Accounting for the blank lines at the head of documents and comments plus property drawer at the head of the zeroth section. 2023-04-19 18:37:39 -04:00
Tom Alexander
1deb53f1a3
Add the binary back in because we need it for generating jaeger traces. 2023-04-19 18:12:53 -04:00
Tom Alexander
99677ee98e
fixup 2023-04-19 18:10:55 -04:00
Tom Alexander
8de6f1a817
Implement node property. 2023-04-19 18:10:29 -04:00
Tom Alexander
f7f29e7a56
Finish property drawer parser but node property is unstarted. 2023-04-19 17:15:00 -04:00
Tom Alexander
2137b08e42
Detect the opening and build the context. 2023-04-19 17:03:46 -04:00
Tom Alexander
18f8e2562e
Remove the old toy language binary.
Using the org_mode_samples integration tests through the rust test framework has removed the need for the toy language binary and I think removing it will make rust-analyzer less confused about imports. This repository is now solely a library repository.
2023-04-19 16:54:17 -04:00
Tom Alexander
a267f23e0f
Initial code structure for property drawers. 2023-04-19 16:51:00 -04:00
Tom Alexander
d3bb642a10
Unify status name handling on the emacs name. 2023-04-19 16:04:30 -04:00
Tom Alexander
94193d4fa5
Make name mismatch report an error rather than abort everything. 2023-04-19 15:38:36 -04:00
Tom Alexander
a6d8c873d4
Add an assert_bounds utility function. 2023-04-19 15:29:46 -04:00
Tom Alexander
a4c6e899ac
Add a utility function to check the first element in an sexp. 2023-04-19 15:19:21 -04:00
Tom Alexander
7ac0cee223
Support nesting greater blocks of different names. 2023-04-19 15:00:02 -04:00
Tom Alexander
2b08b52c16
Support drawers with only whitespace. 2023-04-19 14:52:31 -04:00
Tom Alexander
c6fd04e9ce
Fix footnote definition end matcher detecting the next footnote definition. 2023-04-19 14:30:02 -04:00
Tom Alexander
ed8cdae1cd
Add diff code for dynamic blocks. 2023-04-19 13:59:17 -04:00
Tom Alexander
cab5ba70e5
Parser for dynamic blocks. 2023-04-19 13:51:18 -04:00
Tom Alexander
0d07a6aad3
Initial structure for dynamic blocks. 2023-04-19 13:30:15 -04:00
Tom Alexander
d69522c7dc
Remove the compare binary since this is now integrated with the tests. 2023-04-19 00:12:14 -04:00
Tom Alexander
72c8da94a3
Hook the integration tests into rust's test framework.
Instead of using a hacked-together shell script, use rust's test framework to do the comparison.
2023-04-18 23:50:58 -04:00
Tom Alexander
400e253cf1
Don't give paragraph a context since it just contains objects. 2023-04-18 22:18:21 -04:00
Tom Alexander
45d0ce17c3
Do not allow elements to immediately nest inside themselves.
Plain list is omitted because they can nest.
2023-04-18 22:10:44 -04:00
Tom Alexander
13a2ba1dc5
Handle greater blocks with only blank space inside them. 2023-04-18 21:28:22 -04:00
Tom Alexander
a2051aca4f
Remove ChainBehavior. 2023-04-18 20:44:58 -04:00