Skip to content

Commit

Permalink
Merge pull request #2796 from bernardjosef/extra-mtable-regex
Browse files Browse the repository at this point in the history
Extra mtable regex
  • Loading branch information
masatake committed Jan 11, 2021
2 parents 08b1c49 + 925d643 commit e63b712
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 0 deletions.
3 changes: 3 additions & 0 deletions Tmain/option-extradef-in-mtable.d/input.mtextra
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
(def a)
{def b}
[def c]
23 changes: 23 additions & 0 deletions Tmain/option-extradef-in-mtable.d/mtextra.ctags
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
--langdef=MTExtra
--map-MTExtra=+.mtextra

--kinddef-MTExtra=d,def,definitions

# []
--_extradef-MTExtra=acceptSquareBracket,accept square bracket
# {}
--_extradef-MTExtra=acceptCurlyBracket,accept curly bracket


--_tabledef-MTExtra=main
--_tabledef-MTExtra=body

--_mtable-regex-MTExtra=main/\(def +//{tenter=body}
--_mtable-regex-MTExtra=main/\[def +//{tenter=body}{_extra=acceptSquareBracket}
--_mtable-regex-MTExtra=main/\{def +//{tenter=body}{_extra=acceptCurlyBracket}
--_mtable-regex-MTExtra=main/.//

--_mtable-regex-MTExtra=body/([_a-z]+)\)/\1/d/{tleave}
--_mtable-regex-MTExtra=body/([_a-z]+)\]/\1/d/{tleave}{_extra=acceptSquareBracket}
--_mtable-regex-MTExtra=body/([_a-z]+)\}/\1/d/{tleave}{_extra=acceptCurlyBracket}
--_mtable-regex-MTExtra=body/.//
29 changes: 29 additions & 0 deletions Tmain/option-extradef-in-mtable.d/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright: 2020 Masatake YAMATO
# License: GPL-2

CTAGS="$1"

msgstr ()
{
if [ $1 = '+' ]; then
echo "enabled"
else
echo "disabled"
fi
}

run_ctags ()
{
printf '# []: %s, {}: %s\n' $(msgstr $1) $(msgstr $2)
${CTAGS} --quiet --options=NONE --options=mtextra.ctags \
--fields=+'{extras}' \
--extras-MTExtra=${1}'{acceptSquareBracket}' \
--extras-MTExtra=${2}'{acceptCurlyBracket}' \
-o - \
input.mtextra
}

run_ctags + +
run_ctags - -
run_ctags + -
run_ctags - +
Empty file.
12 changes: 12 additions & 0 deletions Tmain/option-extradef-in-mtable.d/stdout-expected.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# []: enabled, {}: enabled
a input.mtextra /^(def a)$/;" d
b input.mtextra /^{def b}$/;" d extras:acceptCurlyBracket
c input.mtextra /^[def c]$/;" d extras:acceptSquareBracket
# []: disabled, {}: disabled
a input.mtextra /^(def a)$/;" d
# []: enabled, {}: disabled
a input.mtextra /^(def a)$/;" d
c input.mtextra /^[def c]$/;" d extras:acceptSquareBracket
# []: disabled, {}: enabled
a input.mtextra /^(def a)$/;" d
b input.mtextra /^{def b}$/;" d extras:acceptCurlyBracket
4 changes: 4 additions & 0 deletions main/lregex.c
Original file line number Diff line number Diff line change
Expand Up @@ -2406,6 +2406,10 @@ static struct regexTable * matchMultitableRegexTable (struct lregexControlBlock
for (unsigned int i = 0; i < ptrArrayCount(table->entries); i++)
{
regexTableEntry *entry = ptrArrayItem(table->entries, i);
if ((entry->pattern->xtagType != XTAG_UNKNOWN)
&& (!isXtagEnabled (entry->pattern->xtagType)))
continue;

regexPattern *ptrn = entry->pattern;
struct guestSpec *guest = &ptrn->guest;

Expand Down

0 comments on commit e63b712

Please sign in to comment.