Commit Graph

115 Commits

Author SHA1 Message Date
Tom Alexander
3348807a05
Eliminate the document root context element. 2023-08-24 17:01:12 -04:00
Tom Alexander
dab598e5e7
Convert all functions to using the wrapped input type.
Some checks failed
rust-test Build rust-test has failed
rust-build Build rust-build has failed
2023-08-24 16:06:29 -04:00
Tom Alexander
cda49c628c
Move the wrapped input into the parser. 2023-08-22 22:33:50 -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
cd1b4ba785
Make the tracing macros optional. 2023-08-10 20:22:34 -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
bd04451d58
Implement the second parsing pass. 2023-07-14 19:06:58 -04:00
Tom Alexander
c44e7d642f
Starting code for iterating over the parsed ast. 2023-07-14 12:28:52 -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
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
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
f5099356a1
Add support for parsing the planning element in sections. 2023-04-21 21:39:26 -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
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
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
a2051aca4f
Remove ChainBehavior. 2023-04-18 20:44:58 -04:00
Tom Alexander
35eff51d1b
First implementation moving over to the new exit matcher class system. 2023-04-18 20:33:01 -04:00
Tom Alexander
52b401d548
comparing begin and end offsets for top-level sections and headlines. 2023-04-11 19:16:04 -04:00
Tom Alexander
1ecdd61fed
Do not consume trailing whitespace if the parent exit matcher is matching. 2023-04-10 13:13:11 -04:00
Tom Alexander
6fdd613bed
Cleanup. 2023-04-10 12:13:31 -04:00
Tom Alexander
9c832053d4
Remove parent exit matcher check from section.
This was poorly thought out and causing exit due to the no exit error.
2023-04-10 12:08:03 -04:00
Tom Alexander
e5bc4cb14b
Footnote definitions are parsing on their own. 2023-04-10 11:50:43 -04:00
Tom Alexander
204f319a92
Simplify headline_end and section_end now that eof is a special case. 2023-04-10 11:19:20 -04:00
Tom Alexander
cbe7ef4030
Update the section parser to handle the new whitespace-included element parsers. 2023-04-10 11:16:32 -04:00
Tom Alexander
9a0172e1a4
Add a context element for tracking whether or not elements should consume their trailing whitespace. 2023-04-10 10:36:16 -04:00
Tom Alexander
2d1df18544
Cleanup. 2023-04-03 15:15:16 -04:00
Tom Alexander
707eac5bf8
Move trailing whitespace parsing to a separate element.
I still need to parse the line break at the end of elements.
2023-03-31 11:16:37 -04:00
Tom Alexander
028946ec90
Identified the problem.
The issue is plain text is eating the line break so paragraph is failing since it expects a line break at the end.
2023-03-27 18:08:17 -04:00
Tom Alexander
cddefdb963
Remove unnecessary exit matcher check. 2023-03-27 16:53:38 -04:00
Tom Alexander
a77d2655bd
Instrument the code. 2023-03-27 16:36:43 -04:00
Tom Alexander
22a2ed29f1
Integrate plain list parser into the parser tree. 2023-03-27 13:06:41 -04:00
Tom Alexander
e6752b9d83
Building the plain list item context. 2023-03-25 14:10:22 -04:00
Tom Alexander
23eb4d01f4
Add title to heading object. 2023-03-25 12:18:47 -04:00
Tom Alexander
3a0a4c8953
Consume the trailing whitespace after a headline. 2023-03-25 11:59:19 -04:00
Tom Alexander
3c26933e7f
Move some functions into util. 2023-03-25 11:25:10 -04:00
Tom Alexander
d582c8603a
Implement a basic paragraph parser. 2023-03-25 11:22:59 -04:00
Tom Alexander
f2d16d302a
Implement document parser. 2023-03-24 17:34:56 -04:00
Tom Alexander
7ab3df6938
Use headline instead of heading for section_end.
This should be more performant.
2023-03-24 17:30:33 -04:00
Tom Alexander
8013f127df
Implement heading parser. 2023-03-24 17:19:46 -04:00
Tom Alexander
dc9f3eb2e6
Implement the section parser. 2023-03-24 17:00:27 -04:00
Tom Alexander
754c1922df
Create a start_of_line parser. 2023-03-24 16:37:34 -04:00
Tom Alexander
ceb7788cfa
Check the exit matcher in more places. 2023-03-23 20:12:42 -04:00
Tom Alexander
3502a31b28
Simple version of the headline parser done. 2023-03-23 20:03:45 -04:00
Tom Alexander
4f10f2abec
Solved the lifetime issue by using the standard many1 combinator. 2023-03-23 20:00:35 -04:00
Tom Alexander
02d04b59db
Ran into a lifetime issue. 2023-03-23 19:53:20 -04:00
Tom Alexander
5c8a064eca
Start writing the parser for headings. 2023-03-23 19:35:32 -04:00
Tom Alexander
6042c44514
Starting to define document parser. 2023-03-23 17:59:39 -04:00
Tom Alexander
d98a11059c
Introduce the document structure. 2023-03-23 17:52:16 -04:00
Tom Alexander
36210c2d7f
Add a DocumentRoot context element storing the original full document.
This might be used for look-behind instead of storing previous element nodes in the context tree.
2023-03-23 16:40:39 -04:00
Tom Alexander
60d9487fdf
Add comment. 2022-12-18 04:36:12 -05:00
Tom Alexander
2def475337
Move the structs into the token module. 2022-12-18 03:24:35 -05:00
Tom Alexander
8211e1043f
Move in_section to a util module. 2022-12-18 03:18:43 -05:00
Tom Alexander
6404e5f50e
Cleanup 2022-12-18 03:15:11 -05:00
Tom Alexander
4ac3a47deb
Move the text element parser into the text module. 2022-12-18 03:15:11 -05:00