feat: add latex_env blocks with brackets (resolve #24)
This commit is contained in:
parent
5a04a1903b
commit
f78edf1ab6
5 changed files with 54820 additions and 46277 deletions
|
|
@ -1010,7 +1010,7 @@ Directive.7 - Directive unrelated to section
|
|||
(expr)))))
|
||||
|
||||
================================================================================
|
||||
LatexEnv.1 - Basic
|
||||
LatexEnv.1a - Basic
|
||||
================================================================================
|
||||
\begin{a}
|
||||
\end{a}
|
||||
|
|
@ -1023,6 +1023,30 @@ LatexEnv.1 - Basic
|
|||
(name)
|
||||
(name))))
|
||||
|
||||
================================================================================
|
||||
LatexEnv.1b - Basic
|
||||
================================================================================
|
||||
\(
|
||||
\)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(document
|
||||
(body
|
||||
(latex_env)))
|
||||
|
||||
================================================================================
|
||||
LatexEnv.1c - Basic
|
||||
================================================================================
|
||||
\[
|
||||
\]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(document
|
||||
(body
|
||||
(latex_env)))
|
||||
|
||||
================================================================================
|
||||
LatexEnv.2 - Contents
|
||||
================================================================================
|
||||
|
|
@ -1039,6 +1063,36 @@ a
|
|||
(expr))
|
||||
(name))))
|
||||
|
||||
================================================================================
|
||||
LatexEnv.2b - Basic
|
||||
================================================================================
|
||||
\(
|
||||
a
|
||||
\)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(document
|
||||
(body
|
||||
(latex_env
|
||||
(contents
|
||||
(expr)))))
|
||||
|
||||
================================================================================
|
||||
LatexEnv.2c - Basic
|
||||
================================================================================
|
||||
\[
|
||||
a
|
||||
\]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(document
|
||||
(body
|
||||
(latex_env
|
||||
(contents
|
||||
(expr)))))
|
||||
|
||||
================================================================================
|
||||
LatexEnv.3 - Empty
|
||||
================================================================================
|
||||
|
|
|
|||
32
grammar.js
32
grammar.js
|
|
@ -279,14 +279,30 @@ org_grammar = {
|
|||
|
||||
latex_env: $ => seq(
|
||||
optional($._directive_list),
|
||||
caseInsensitive('\\begin{'),
|
||||
field('name', alias(/[\p{L}\p{N}]+/, $.name)),
|
||||
token.immediate('}'),
|
||||
$._eol,
|
||||
optional(field('contents', $.contents)),
|
||||
caseInsensitive('\\end{'),
|
||||
alias(/[\p{L}\p{N}]+/, $.name),
|
||||
token.immediate('}'),
|
||||
choice(
|
||||
seq(
|
||||
caseInsensitive('\\begin{'),
|
||||
field('name', alias(/[\p{L}\p{N}*]+/, $.name)),
|
||||
token.immediate('}'),
|
||||
$._nl,
|
||||
optional(field('contents', $.contents)),
|
||||
caseInsensitive('\\end{'),
|
||||
alias(/[\p{L}\p{N}*]+/, $.name),
|
||||
token.immediate('}'),
|
||||
),
|
||||
seq(
|
||||
caseInsensitive('\\['),
|
||||
$._nl,
|
||||
optional(field('contents', $.contents)),
|
||||
caseInsensitive('\\]'),
|
||||
),
|
||||
seq(
|
||||
caseInsensitive('\\('),
|
||||
$._nl,
|
||||
optional(field('contents', $.contents)),
|
||||
caseInsensitive('\\)'),
|
||||
),
|
||||
),
|
||||
$._eol,
|
||||
),
|
||||
|
||||
|
|
|
|||
226
src/grammar.json
226
src/grammar.json
|
|
@ -1636,80 +1636,176 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\[Bb][Ee][Gg][Ii][Nn]\\{"
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\begin{"
|
||||
},
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "name",
|
||||
"content": {
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "[\\p{L}\\p{N}]+"
|
||||
},
|
||||
"named": true,
|
||||
"value": "name"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "IMMEDIATE_TOKEN",
|
||||
"content": {
|
||||
"type": "STRING",
|
||||
"value": "}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_eol"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "contents",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "contents"
|
||||
}
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\[Bb][Ee][Gg][Ii][Nn]\\{"
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\begin{"
|
||||
},
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "name",
|
||||
"content": {
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "[\\p{L}\\p{N}*]+"
|
||||
},
|
||||
"named": true,
|
||||
"value": "name"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "IMMEDIATE_TOKEN",
|
||||
"content": {
|
||||
"type": "STRING",
|
||||
"value": "}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_nl"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "contents",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "contents"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\[Ee][Nn][Dd]\\{"
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\end{"
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "[\\p{L}\\p{N}*]+"
|
||||
},
|
||||
"named": true,
|
||||
"value": "name"
|
||||
},
|
||||
{
|
||||
"type": "IMMEDIATE_TOKEN",
|
||||
"content": {
|
||||
"type": "STRING",
|
||||
"value": "}"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\\\["
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\["
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_nl"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "contents",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "contents"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\\\]"
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\]"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\\\("
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\("
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_nl"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "contents",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "contents"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\\\)"
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "\\\\[Ee][Nn][Dd]\\{"
|
||||
},
|
||||
"named": false,
|
||||
"value": "\\end{"
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "PATTERN",
|
||||
"value": "[\\p{L}\\p{N}]+"
|
||||
},
|
||||
"named": true,
|
||||
"value": "name"
|
||||
},
|
||||
{
|
||||
"type": "IMMEDIATE_TOKEN",
|
||||
"content": {
|
||||
"type": "STRING",
|
||||
"value": "}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_eol"
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@
|
|||
},
|
||||
"name": {
|
||||
"multiple": false,
|
||||
"required": true,
|
||||
"required": false,
|
||||
"types": [
|
||||
{
|
||||
"type": "name",
|
||||
|
|
@ -467,7 +467,7 @@
|
|||
},
|
||||
"children": {
|
||||
"multiple": false,
|
||||
"required": true,
|
||||
"required": false,
|
||||
"types": [
|
||||
{
|
||||
"type": "name",
|
||||
|
|
@ -1057,6 +1057,22 @@
|
|||
"type": "\\",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "\\(",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "\\)",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "\\[",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "\\]",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "\\begin{",
|
||||
"named": false
|
||||
|
|
|
|||
100763
src/parser.c
100763
src/parser.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue