Commit Graph

641 Commits

Author SHA1 Message Date
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
Tom Alexander
35eff51d1b
First implementation moving over to the new exit matcher class system. 2023-04-18 20:33:01 -04:00
Tom Alexander
fcd5c7d3cd
Add an enum for exit class. 2023-04-17 21:16:39 -04:00
Tom Alexander
31f6914194
Add code to compare drawers. 2023-04-15 18:00:34 -04:00
Tom Alexander
9e4bf553d3
First attempt at implementing drawers. 2023-04-15 17:56:07 -04:00
Tom Alexander
1f7c24545b
Initial structure for drawer. 2023-04-15 17:36:07 -04:00
Tom Alexander
50d05b99be
Require space after hash in comment if comment line is not empty. 2023-04-15 17:08:22 -04:00
Tom Alexander
6e4aa38fce
Add test demonstrating problem. 2023-04-15 17:04:47 -04:00
Tom Alexander
4e460e4a8c
Consume line ending in comments. 2023-04-15 16:59:30 -04:00
Tom Alexander
33bc1af17d
First stab at implementing comments. 2023-04-15 16:53:58 -04:00
Tom Alexander
d1a7d0b835
Show that trailing whitespace belongs to comments. 2023-04-15 16:37:25 -04:00
Tom Alexander
26e0ad5800
Add an example exploring indentation with comments. 2023-04-15 16:36:11 -04:00
Tom Alexander
1b10b197f2
Initial structure for adding support for comments. 2023-04-15 16:31:38 -04:00
Tom Alexander
965c5dd15f
Add diffing of quote greater blocks. 2023-04-15 00:07:20 -04:00
Tom Alexander
412bdcda28
Fix problem with detecting end of plain list item.
The problem is line indented lte does not match because we aren't consuming the whitespace that the plain list would consume.
2023-04-14 23:56:55 -04:00
Tom Alexander
be64eb92af
Ran into a bigger issue. 2023-04-14 20:17:53 -04:00
Tom Alexander
8549a6b0db
Fix case where indentation was causing the plain list item matcher to match items it wouldn't use in other parts. 2023-04-14 19:56:54 -04:00
Tom Alexander
143ac49777
Fix plain list item parser to not consume trailing whitespace on the last element. 2023-04-14 19:32:08 -04:00
Tom Alexander
08fed1301e
Fix plain list parser to not consume trailing whitespace on the last item. 2023-04-14 19:24:05 -04:00
Tom Alexander
665c1d70fb
Add a test case demonstrating an issue. 2023-04-12 15:24:18 -04:00
Tom Alexander
9efc291d28
Add a script to check all sample org-mode documents with the compare program. 2023-04-12 15:03:14 -04:00
Tom Alexander
1a38ca43d6
Update the diff program to use exit code 1 for non-matching diff. 2023-04-12 14:50:56 -04:00
Tom Alexander
05c9ec86b8
Compare plain list items inside plain lists. 2023-04-12 14:07:33 -04:00
Tom Alexander
57f56eb860
Compare footnote definition and greater block bounds. 2023-04-12 13:45:22 -04:00
Tom Alexander
ba9ef7907f
Add a test proving that nested lists are exited by two blank lines. 2023-04-12 13:21:31 -04:00
Tom Alexander
75a47deedd
Compare plain list bounds. 2023-04-12 13:16:25 -04:00
Tom Alexander
f27965001d
End plain lists when there are two blank lines. 2023-04-12 13:09:44 -04:00
Tom Alexander
2a601475fd
Compare children of sections. 2023-04-12 11:46:49 -04:00
Tom Alexander
c4e6549feb
Compare children of heading. 2023-04-12 11:35:02 -04:00
Tom Alexander
4dbf8b9c69
Capture the trailing whitespace for the file as regular trailing whitespace for elements.
This makes our ranges for sections and headlines match up with the emacs org-mode parser for the example at org_mode_samples/sections_and_headings/sections_and_headings.org.
2023-04-12 11:17:21 -04:00
Tom Alexander
a456acd1e9
Do not print the parsed sexp.
These were particularly spammy.
2023-04-11 19:51:20 -04:00
Tom Alexander
52df376553
Calculate bad children on-the-fly. 2023-04-11 19:28:45 -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
276e8abb13
Pass the source through to child diff status so I can calculate offsets. 2023-04-11 18:34:11 -04:00
Tom Alexander
6e62bd5ff2
Initial return and printing of tree diff output. 2023-04-11 18:29:40 -04:00
Tom Alexander
be2d0141a5
Iterate over argv for file paths. 2023-04-11 17:41:23 -04:00
Tom Alexander
287cc8dea3
Just barely starting to diff the two parsed forms. 2023-04-11 17:35:09 -04:00
Tom Alexander
5305ae7627
Fix ending atoms at end of list. 2023-04-11 16:28:56 -04:00
Tom Alexander
8df02fa8b9
Handle text with properties. 2023-04-11 16:02:57 -04:00
Tom Alexander
3bdb1e3841
Beginning of handling quoted strings. 2023-04-11 15:28:05 -04:00
Tom Alexander
5d7ca1b966
Fix handling of whitespace. 2023-04-11 15:08:46 -04:00
Tom Alexander
751a3beffd
Implement a very basic first stab at lisp parser. 2023-04-11 14:50:37 -04:00
Tom Alexander
96d2cc7c6a
Dump the elisp when running compare. 2023-04-10 14:36:38 -04:00
Tom Alexander
552ac974d5
Initial setup for a separate compare target. 2023-04-10 13:45:36 -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
895ee9f3b6
Add a test showing the footnote exit matcher is not handling multiple blank lines properly. 2023-04-10 12:16:49 -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
ea753ad33c
Fix footnote definition end matcher to use trailing whitespace. 2023-04-10 12:03:01 -04:00
Tom Alexander
6578ddc100
Add a test for footnote definition. 2023-04-10 11:54:05 -04:00
Tom Alexander
e5bc4cb14b
Footnote definitions are parsing on their own. 2023-04-10 11:50:43 -04:00
Tom Alexander
45db182421
Add comment about why we are not checking the parent exit matcher in paragraph. 2023-04-10 11:34:29 -04:00
Tom Alexander
df9265c2af
Updated paragraph to handle the new consumption of trailing whitespace. 2023-04-10 11:29:14 -04:00
Tom Alexander
e417e86bd4
Add a simple test for paragraphs. 2023-04-10 11:24:04 -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
54b0ff5036
Check for whitespace eof in exit matcher. 2023-04-10 10:50:42 -04:00
Tom Alexander
137815dbaf
Only use a local context when checking exit matchers.
This prevents context tree from deeper in the parse impacting exit checks for earlier in the parse. This is needed due to the trailing whitespace context element.
2023-04-10 10:49:28 -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
6813c7c991
Identified the problem as being the handling of the trailing whitespace. 2023-04-10 09:49:24 -04:00
Tom Alexander
716f80b0ec
Add initial implementation of footnote definition. 2023-04-07 17:14:44 -04:00
Tom Alexander
42fca12e41
Add support for indenting greater blocks. 2023-04-07 16:18:13 -04:00
Tom Alexander
7023fb4617
Add a comment about a shortcoming. 2023-04-03 19:40:20 -04:00
Tom Alexander
d7f0a02bb8
Fix plain list ending with another element. 2023-04-03 19:30:17 -04:00
Tom Alexander
9257420c83
Add comment defining problem. 2023-04-03 19:19:33 -04:00
Tom Alexander
ddea313401
Ensure the final span is shipped to jaeger before exiting. 2023-04-03 18:57:31 -04:00
Tom Alexander
d4887ec311
Disable stdout for traces.
Frankly the stdout traces are pretty useless if you have anything more than the most trivial amount of entries.
2023-04-03 18:52:11 -04:00
Tom Alexander
70225a668b
Do not match lesser blocks. 2023-04-03 18:38:35 -04:00
Tom Alexander
6e6ec56d1f
Basic implementation of greater block parser. 2023-04-03 18:33:07 -04:00
Tom Alexander
9e0bea4c3e
Starting the greater block source. 2023-04-03 17:36:56 -04:00
Tom Alexander
9ad428bb20
Standardize on the children name instead of contents. 2023-04-03 17:33:01 -04:00
Tom Alexander
11f127b545
Minor cleanup. 2023-04-03 17:25:30 -04:00
Tom Alexander
c7c922a4df
Do not allow plain lists to start with an asterisk with no indent. 2023-04-03 16:38:26 -04:00
Tom Alexander
b5b335b9b0
Fix handling of whitespace at the end of paragraphs and mandatory whitespace in list items. 2023-04-03 16:30:58 -04:00
Tom Alexander
2d1df18544
Cleanup. 2023-04-03 15:15:16 -04:00
Tom Alexander
2552ba28d1
Correctly parsing plain list items. 2023-04-03 15:06:12 -04:00
Tom Alexander
e681f8fdff
Remove the exit matcher block.
I'm not sure this is a problem, but while I'm debugging I want this removed to be safe.
2023-03-31 13:22:30 -04:00
Tom Alexander
2b0e88dc01
The current problem is plain_list_item_end is not taking into account depth. 2023-03-31 13:08:53 -04:00
Tom Alexander
68156f3667
Consume line break at the end of paragraph. 2023-03-31 11:42:04 -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
602cf4c374
Removing regurgitate calls.
This hacky solution ends up with whitespace getting captured twice so I will need to either use context or a separate parser.
2023-03-31 09:54:48 -04:00
Tom Alexander
775e703ade
Not sure whats going on. 2023-03-27 19:19:51 -04:00
Tom Alexander
9545990b52
Regurgitate seems to have made all text a paragraph. 2023-03-27 19:12:20 -04:00
Tom Alexander
3643f91bac
The current problem is whitespace at the end of a list item should not be consumed. 2023-03-27 18:50:25 -04:00
Tom Alexander
3d8fe253c9
Check for exit matcher between elements in a plain list item. 2023-03-27 18:22:08 -04:00
Tom Alexander
2c7a559869
Fix the line break consumption issue.
This leaves us with an issue of lists becoming needlessly nested.
2023-03-27 18:10:14 -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
e1fbe36297
Exporting traces to jaeger. 2023-03-27 17:06:22 -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
81a9a754de
I seem to have solved the infinite loop issue by moving the exit check into the plain list parser. 2023-03-27 12:52:49 -04:00
Tom Alexander
188fdaacbc
Remove dead line of code. 2023-03-27 12:07:40 -04:00
Tom Alexander
d2923bfc0f
Add a special case exit matcher for end of file. 2023-03-25 14:45:35 -04:00
Tom Alexander
fc9d131740
Add basic test for plain list item. 2023-03-25 14:28:48 -04:00
Tom Alexander
422535fbe4
Wrote a plain list item parser. 2023-03-25 14:23:52 -04:00
Tom Alexander
e6752b9d83
Building the plain list item context. 2023-03-25 14:10:22 -04:00
Tom Alexander
4a863e92ff
Add a test case showing only paragraphs exist on the first line for plain lists. 2023-03-25 13:25:20 -04:00
Tom Alexander
ab09edb5de
Initial structures for plain lists. 2023-03-25 13:16:28 -04:00
Tom Alexander
74fc440cbd
Move parsers for specific objects/elements to their own files.
The parsers are the most complicated part, so I want them in their own files. I am uncertain if I want to move their corresponding structs or just the parsers.
2023-03-25 12:53:57 -04:00
Tom Alexander
5d9771c3b6
Move old modules out of the src tree. 2023-03-25 12:25:05 -04:00
Tom Alexander
23eb4d01f4
Add title to heading object. 2023-03-25 12:18:47 -04:00
Tom Alexander
e3f6dd497a
Test cases showing headings handling nesting properly. 2023-03-25 12:01:50 -04:00
Tom Alexander
3a0a4c8953
Consume the trailing whitespace after a headline. 2023-03-25 11:59:19 -04:00
Tom Alexander
b65c2f86b5
Consume trailing whitespace in paragraphs. 2023-03-25 11:50:15 -04:00
Tom Alexander
faf2bb401d
Fix plain text matcher exit conditions. 2023-03-25 11:40:12 -04:00
Tom Alexander
2ab407bb83
Invoke the document parser. 2023-03-25 11:27:38 -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
b88365e7eb
Wrote plain text parser. 2023-03-25 10:45:43 -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
d3c804942f
Simplified context_many1 based on the assumption that we will not use previous element context elements. 2023-03-23 18:25:00 -04:00
Tom Alexander
ee60cf40dd
Disable building the old combinator. 2023-03-23 18:01:33 -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
35d60c10ba
Define greater and lesser elements. 2023-03-23 17:26:07 -04:00
Tom Alexander
66befc66a9
Define regular link. 2023-03-23 17:02:08 -04:00
Tom Alexander
87c4a955af
Starting to define objects based on org-mode's definitions. 2023-03-23 16:49:52 -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
f060e7189b
Minor cleanup. 2023-03-23 14:13:21 -04:00
Tom Alexander
cee12b7512
Allow IgnoreParent to be dead code. 2023-03-21 13:44:22 -04:00
Tom Alexander
77d8c5e029
Mark the plain list functions as allow dead code. 2023-03-21 13:38:23 -04:00
Tom Alexander
2fcb445fe9
Switch to ending plain lists with 2 blank lines instead of just 1. 2023-03-21 13:36:52 -04:00
Tom Alexander
e3f0aaefdf
Add TODO. 2023-03-19 18:28:59 -04:00
Tom Alexander
bf3464c65c
End list items when the following line is indented less than or equal to the current item. 2023-03-19 13:05:37 -04:00
Tom Alexander
6d19eeb0f4
Add parsers for lines that are indented less than or equal to the current line item's indent. 2023-03-18 17:32:07 -04:00
Tom Alexander
29904f2bb5
Detect next list item as ender for current list item. 2023-03-18 14:36:33 -04:00
Tom Alexander
88c974f8e4
Record the list item indent depth in the context tree. 2023-03-18 13:26:35 -04:00
Tom Alexander
32897270a5
Support leading whitespace for list items. 2023-03-18 13:26:32 -04:00
Tom Alexander
37070689c6
Continued work on item parser.
Still needs to:

1. Do context things
2. Fix the double-space after the tag separator issue
3. Add support for indentation
4. Write item_end
5. Write plain_list
2022-12-18 07:52:02 -05:00
Tom Alexander
5e7c891681
Start of list item implementation. 2022-12-18 07:52:02 -05:00
Tom Alexander
62e5499150
Add parsers for most of the rest of item. 2022-12-18 07:52:02 -05:00
Tom Alexander
b4e28f3d4d
Implement a parser for a bullet in a list item. 2022-12-18 07:52:02 -05:00
Tom Alexander
76b2325486
Start the plain list module. 2022-12-18 07:52:01 -05:00
Tom Alexander
f39319702c
Switch to nom's consumed. 2022-12-18 07:52:01 -05:00
Tom Alexander
89758721ed
Rename contents to source to match objects that need to store a separate source. 2022-12-18 04:42:13 -05:00
Tom Alexander
448dcfac72
Create an also_recognize combinator to make providing source slices fast and safe. 2022-12-18 04:36:12 -05:00
Tom Alexander
60d9487fdf
Add comment. 2022-12-18 04:36:12 -05:00