fix!: remove plan names: scheduled, deadline, closed
fix because we should allow other languages. Also simplify (timestamp).
This commit is contained in:
parent
39a377f507
commit
f110024d53
5 changed files with 42833 additions and 62460 deletions
|
|
@ -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)))
|
||||
))
|
||||
|
||||
==========
|
||||
|
|
|
|||
98
grammar.js
98
grammar.js
|
|
@ -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$]+/)),
|
||||
|
|
|
|||
384
src/grammar.json
384
src/grammar.json
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
104695
src/parser.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue