Set up an experiment for figuring out exit matcher priority.

This commit is contained in:
Tom Alexander 2023-04-16 16:48:22 -04:00
parent 0be554bfb6
commit d155ca1027
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
2 changed files with 85 additions and 0 deletions

View File

@ -0,0 +1,23 @@
SHELL := bash
.ONESHELL:
.SHELLFLAGS := -eu -o pipefail -c
.DELETE_ON_ERROR:
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
SRCFILES := $(wildcard *.org)
OUTFILES := $(patsubst %.org,%.tree.txt,$(SRCFILES))
ifeq ($(origin .RECIPEPREFIX), undefined)
$(error This Make does not support .RECIPEPREFIX. Please use GNU Make 4.0 or later)
endif
.RECIPEPREFIX = >
.PHONY: all
all: $(OUTFILES)
.PHONY: clean
clean:
> rm -rf $(OUTFILES)
%.tree.txt: %.org ../common.el ../dump_org_ast.bash
> ../dump_org_ast.bash $< $@

View File

@ -0,0 +1,62 @@
* What are the possible element containers
# Omitting tables because they only contain objects
# Omitting inline tasks because they are syntactically the same as heading+section just with a deep headline level.
# Omitting property drawers because they are syntactically the same as drawers.
** Sections
Sections are divided by headlines.
#+begin_src org
Zeroth section
,* First headline
First section
,** Child headline
Child section
,* Second top-level headline
Second top-level section
#+end_src
** Greater blocks
#+begin_src org
,#+begin_center
elements
,#+end_center
#+end_src
** Drawers
#+begin_src org
:drawername:
elements
:end:
#+end_src
** Dynamic blocks
#+begin_src org
,* Headline
,#+BEGIN: clocktable :scope subtree :maxlevel 2
,#+CAPTION: Clock summary at [2023-04-16 Sun 16:13]
| Headline | Time |
|--------------+--------|
| *Total time* | *0:00* |
,#+END:
#+end_src
** Footnote definitions
#+begin_src org
[fn:1] A footnote definition.
[fn:2] A multi-line
footnote definition.
#+end_src
** Plain Lists
#+begin_src org
1. foo
1. bar
2. baz
#+end_src
* Which container takes priority
This test interleaves the opening and closing of each element container to see which element becomes parsed vs gets broken up. The row determines the first opening element and the column determines the second opening element.
| | Section | Greater Block | Drawer | Dynamic Block | Footnote Definition | Plain List |
|---------------------+---------+---------------+--------+---------------+---------------------+------------|
| Section | - | | | | | |
| Greater Block | | | | | | |
| Drawer | | | | | | |
| Dynamic Block | | | | | | |
| Footnote Definition | | | | | | |
| Plain List | | | | | | |