fix!: remove plan names: scheduled, deadline, closed

fix because we should allow other languages.
Also simplify (timestamp).
This commit is contained in:
Emilia Simmons 2021-11-26 16:41:34 -05:00
parent 39a377f507
commit f110024d53
5 changed files with 42833 additions and 62460 deletions

View file

@ -589,7 +589,7 @@ SCHEDULED: <1111-11-11 Day>
(document
(section
(headline (stars) (item))
(plan (scheduled (timestamp (date))))
(plan (name) (timestamp (date)))
))
=================
@ -604,9 +604,9 @@ DEADLINE: <1111-11-11 Day> <1111-11-11 Day> CLOSED: [1111-11-11 Day]
(section
(headline (stars) (item))
(plan
(deadline (timestamp (date)))
(name) (timestamp (date))
(timestamp (date))
(closed (timestamp (date))))
(name) (timestamp (date)))
))
==========
@ -620,7 +620,7 @@ scheduled: <1111-11-11 Day>
(document
(section
(headline (stars) (item))
(plan (scheduled (timestamp (date))))
(plan (name) (timestamp (date)))
))
==========

View file

@ -216,94 +216,36 @@ org_grammar = {
// Planning ============================================ {{{1
_scheduled: _ => caseInsensitive('SCHEDULED:'),
_deadline: _ => caseInsensitive('DEADLINE:'),
_closed: _ => caseInsensitive('CLOSED:'),
plan: $ => seq(
repeat1(prec(1, // precedence over paragraph→timestamp
choice(
$.timestamp,
$.scheduled,
$.deadline,
$.closed,
))),
$._eol,
),
scheduled: $ => seq($._scheduled, $.timestamp),
deadline: $ => seq($._deadline, $.timestamp),
closed: $ => seq(
$._closed,
alias(choice(
$._inactive_ts,
$._inactive_ts_trange,
$._inactive_ts_range,
), $.timestamp),
),
// precedence over paragraph→timestamp
repeat1(prec(1, seq(
optional(field('type', alias(/\p{L}+:/, $.name))),
field('datetime', $.timestamp),
))), $._eol),
// Timestamp =========================================== {{{1
_active_start: _ => '<',
_active_end: _ => '>',
_inactive_start: _ => '[',
_inactive_end: _ => ']',
_active_separator: _ => '>--<',
_inactive_separator: _ => ']--[',
_day: _ => /\p{L}+/,
_ymd: _ => /\p{N}{1,4}-\p{N}{1,4}-\p{N}{1,4}/,
time: _ => /\p{N}?\p{N}:\p{N}\p{N}/,
repeater: _ => /[.+]?\+\p{N}+\p{L}/,
delay: _ => /--?\p{N}+\p{L}/,
_day: _ => /\p{L}+/,
_ymd: _ => /\p{N}{1,4}-\p{N}{1,4}-\p{N}{1,4}/,
time: _ => /\p{N}?\p{N}:\p{N}\p{N}/,
repeater: _ => /[.+]?\+\p{N}+\p{L}/,
delay: _ => /--?\p{N}+\p{L}/,
date: $ => seq($._ymd, optional($._day)),
timerange: $ => seq($.time, '-', $.time),
timestamp: $ => choice(
$._active_ts,
$._active_ts_trange,
$._active_ts_range,
$._inactive_ts,
$._inactive_ts_trange,
$._inactive_ts_range,
seq('<', $._timestamp_contents, '>'),
seq('<', $._timestamp_contents_range, '>'),
seq('<', $._timestamp_contents, '>--<', $._timestamp_contents, '>'),
seq('[', $._timestamp_contents, ']'),
seq('[', $._timestamp_contents_range, ']'),
seq('[', $._timestamp_contents, ']--[', $._timestamp_contents, ']'),
),
_ts_contents: $ => seq(
$.date,
optional($.time),
optional($.repeater),
optional($.delay),
),
_ts_contents_range: $ => seq(
$.date,
$.timerange,
optional($.repeater),
optional($.delay),
),
_active_ts: $ => seq($._active_start, $._ts_contents, $._active_end),
_active_ts_trange: $ => seq($._active_start, $._ts_contents_range, $._active_end),
_active_ts_range: $ => seq(
$._active_start,
$._ts_contents,
$._active_separator,
$._ts_contents,
$._active_end
),
_inactive_ts: $ => seq($._inactive_start, $._ts_contents, $._inactive_end),
_inactive_ts_trange: $ => seq($._inactive_start, $._ts_contents_range, $._inactive_end),
_inactive_ts_range: $ => seq(
$._inactive_start,
$._ts_contents,
$._inactive_separator,
$._ts_contents,
$._inactive_end
),
_timestamp_contents: $ => seq($.date, optional($.time), optional($.repeater), optional($.delay)),
_timestamp_contents_range: $ => seq($.date, $.timerange, optional($.repeater), optional($.delay)),
// Markup ============================================== {{{1
@ -556,8 +498,8 @@ org_grammar = {
),
_te_conflicts: $ => prec.dynamic(DYN.conflicts, choice(
$._active_start,
$._inactive_start,
"<",
"[",
seq($._markup, choice('*', '/', '_', '+', '~', '=', '`')),
seq($._text, '^', /[^{]/),
seq('$', token.immediate(/[^\p{Z}\n\r$]+/)),

View file

@ -761,18 +761,6 @@
}
]
},
"_scheduled": {
"type": "PATTERN",
"value": "[Ss][Cc][Hh][Ee][Dd][Uu][Ll][Ee][Dd]:"
},
"_deadline": {
"type": "PATTERN",
"value": "[Dd][Ee][Aa][Dd][Ll][Ii][Nn][Ee]:"
},
"_closed": {
"type": "PATTERN",
"value": "[Cc][Ll][Oo][Ss][Ee][Dd]:"
},
"plan": {
"type": "SEQ",
"members": [
@ -782,23 +770,36 @@
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "timestamp"
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\p{L}+:"
},
"named": true,
"value": "name"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "scheduled"
},
{
"type": "SYMBOL",
"name": "deadline"
},
{
"type": "SYMBOL",
"name": "closed"
"type": "FIELD",
"name": "datetime",
"content": {
"type": "SYMBOL",
"name": "timestamp"
}
}
]
}
@ -810,87 +811,6 @@
}
]
},
"scheduled": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_scheduled"
},
{
"type": "SYMBOL",
"name": "timestamp"
}
]
},
"deadline": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_deadline"
},
{
"type": "SYMBOL",
"name": "timestamp"
}
]
},
"closed": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_closed"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_inactive_ts"
},
{
"type": "SYMBOL",
"name": "_inactive_ts_trange"
},
{
"type": "SYMBOL",
"name": "_inactive_ts_range"
}
]
},
"named": true,
"value": "timestamp"
}
]
},
"_active_start": {
"type": "STRING",
"value": "<"
},
"_active_end": {
"type": "STRING",
"value": ">"
},
"_inactive_start": {
"type": "STRING",
"value": "["
},
"_inactive_end": {
"type": "STRING",
"value": "]"
},
"_active_separator": {
"type": "STRING",
"value": ">--<"
},
"_inactive_separator": {
"type": "STRING",
"value": "]--["
},
"_day": {
"type": "PATTERN",
"value": "\\p{L}+"
@ -953,32 +873,126 @@
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_active_ts"
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "_timestamp_contents"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "SYMBOL",
"name": "_active_ts_trange"
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "_timestamp_contents_range"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "SYMBOL",
"name": "_active_ts_range"
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "_timestamp_contents"
},
{
"type": "STRING",
"value": ">--<"
},
{
"type": "SYMBOL",
"name": "_timestamp_contents"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "SYMBOL",
"name": "_inactive_ts"
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_timestamp_contents"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SYMBOL",
"name": "_inactive_ts_trange"
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_timestamp_contents_range"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SYMBOL",
"name": "_inactive_ts_range"
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_timestamp_contents"
},
{
"type": "STRING",
"value": "]--["
},
{
"type": "SYMBOL",
"name": "_timestamp_contents"
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"_ts_contents": {
"_timestamp_contents": {
"type": "SEQ",
"members": [
{
@ -1023,7 +1037,7 @@
}
]
},
"_ts_contents_range": {
"_timestamp_contents_range": {
"type": "SEQ",
"members": [
{
@ -1060,124 +1074,6 @@
}
]
},
"_active_ts": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_active_start"
},
{
"type": "SYMBOL",
"name": "_ts_contents"
},
{
"type": "SYMBOL",
"name": "_active_end"
}
]
},
"_active_ts_trange": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_active_start"
},
{
"type": "SYMBOL",
"name": "_ts_contents_range"
},
{
"type": "SYMBOL",
"name": "_active_end"
}
]
},
"_active_ts_range": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_active_start"
},
{
"type": "SYMBOL",
"name": "_ts_contents"
},
{
"type": "SYMBOL",
"name": "_active_separator"
},
{
"type": "SYMBOL",
"name": "_ts_contents"
},
{
"type": "SYMBOL",
"name": "_active_end"
}
]
},
"_inactive_ts": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_inactive_start"
},
{
"type": "SYMBOL",
"name": "_ts_contents"
},
{
"type": "SYMBOL",
"name": "_inactive_end"
}
]
},
"_inactive_ts_trange": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_inactive_start"
},
{
"type": "SYMBOL",
"name": "_ts_contents_range"
},
{
"type": "SYMBOL",
"name": "_inactive_end"
}
]
},
"_inactive_ts_range": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_inactive_start"
},
{
"type": "SYMBOL",
"name": "_ts_contents"
},
{
"type": "SYMBOL",
"name": "_inactive_separator"
},
{
"type": "SYMBOL",
"name": "_ts_contents"
},
{
"type": "SYMBOL",
"name": "_inactive_end"
}
]
},
"markup": {
"type": "SEQ",
"members": [
@ -2914,12 +2810,12 @@
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_active_start"
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "_inactive_start"
"type": "STRING",
"value": "["
},
{
"type": "SEQ",
@ -3179,8 +3075,8 @@
"_nl",
"_eol",
"_body_body",
"_ts_contents",
"_ts_contents_range",
"ReferenceError",
"ReferenceError",
"ReferenceError",
"ReferenceError",
"_start_of_paragraph",

View file

@ -82,21 +82,6 @@
"named": true,
"fields": {}
},
{
"type": "closed",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "timestamp",
"named": true
}
]
}
},
{
"type": "comment",
"named": true,
@ -112,21 +97,6 @@
"named": true,
"fields": {}
},
{
"type": "deadline",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "timestamp",
"named": true
}
]
}
},
{
"type": "description",
"named": true,
@ -651,28 +621,27 @@
{
"type": "plan",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "closed",
"named": true
},
{
"type": "deadline",
"named": true
},
{
"type": "scheduled",
"named": true
},
{
"type": "timestamp",
"named": true
}
]
"fields": {
"datetime": {
"multiple": true,
"required": true,
"types": [
{
"type": "timestamp",
"named": true
}
]
},
"type": {
"multiple": true,
"required": false,
"types": [
{
"type": "name",
"named": true
}
]
}
}
},
{
@ -710,21 +679,6 @@
]
}
},
{
"type": "scheduled",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "timestamp",
"named": true
}
]
}
},
{
"type": "section",
"named": true,
@ -893,10 +847,26 @@
"type": "::",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">--<",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "\\",
"named": false
@ -921,6 +891,10 @@
"type": "]",
"named": false
},
{
"type": "]--[",
"named": false
},
{
"type": "^",
"named": false

104695
src/parser.c

File diff suppressed because it is too large Load diff