Tom Gillespie <tgb...@gmail.com> writes: > Hi all, > Here is the 4th (or so) iteration of the grammar for titles that > I think deals with most of the issues in this thread along with a > bunch of nasty test cases. The previous attempts can be inspected in > the git history, but long story short, it is extremely hard to find a > grammar that follows the principle of least surprise and you have to > use the tokenizer to ensure that the tags pattern always parses as > such so that tags don't magically switch to being the title when you > remove the rest of the contents of the title. The final example > L1648-L1665 shows many of the things that should parse as tags and do > with this tokenizer/grammar combination. The key to dealing with the > ambiguity of empty title and tags vs something that looks like tags > but parses as a title (which is surprising) is to use the tokenizer to > greedily recognize tags at the end of the line. This ensures that the > tags pattern at the end of the line always parses as tags and doesn't > switch just because the title is empty. Happy to elaborate. Best, > Tom > > https://github.com/tgbugs/laundry/blob/next/laundry/heading.rkt > https://github.com/tgbugs/laundry/blob/971cf35683cd60156868c12b070c2dd9e19d8d06/laundry/tokenizer.rkt#L98-L140 > > https://github.com/tgbugs/laundry/blob/971cf35683cd60156868c12b070c2dd9e19d8d06/laundry/test.rkt#L326-L367 > https://github.com/tgbugs/laundry/blob/971cf35683cd60156868c12b070c2dd9e19d8d06/laundry/test.rkt#L400-L558 > https://github.com/tgbugs/laundry/blob/971cf35683cd60156868c12b070c2dd9e19d8d06/laundry/test.rkt#L1298-L1369 > https://github.com/tgbugs/laundry/blob/971cf35683cd60156868c12b070c2dd9e19d8d06/laundry/test.rkt#L1371-L1419 > https://github.com/tgbugs/laundry/blob/971cf35683cd60156868c12b070c2dd9e19d8d06/laundry/test.rkt#L1648-L1665
This looks interesting, but I'm not yet familiar with racket & brag -= I assume laundry doesn't produce any output from the input Org file other than some form of "good" or "bad" signal. True? -- David Masterson