fixes and tweaks...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2022-05-01 23:07:59 +03:00
parent d8e36c8916
commit 9439c01a75

View File

@ -494,24 +494,40 @@ object.Constructor('BasePage', {
// PREFIX -- 'inline' or 'elem'
var MACRO_ARGS =
module.MACRO_ARGS =
['(',
// arg='val' | arg="val" | arg=val
'|\\s+(?<PREFIXArgName>[a-z]+)\\s*=\\s*(',[
"'(?<PREFIXSingleQuotedValue>[^']*)'",
'"(?<PREFIXDoubleQuotedValue>[^"]*)"',
'(?<PREFIXValue>[^\\s"\']*)',
].join('|'),')',
// "arg" | 'arg'
// XXX quote escaping???
// XXX CHROME/NODE BUG: this does not work yet...
//'\\s+(?<quote>[\'"])[^\\k<quote>]*\\k<quote>',
'\\s+"(?<PREFIXDoubleQuotedArg>[^"]*)"',
"|\\s+'(?<PREFIXSingleQuotedArg>[^']*)'",
// arg
//'|\\s+[^\\s\\/>\'"]+',
'|\\s+(?<PREFIXArg>[^\\sSTOP\'"]+)',
['(',[
// arg='val' | arg="val" | arg=val
'\\s+(?<PREFIXArgName>[a-z]+)\\s*=\\s*(?<PREFIXArgValue>'+([
// XXX for some readon we are not getting anythinng
// matching back from these...
// ...but they seem to match correctly within
// the macro -- nestin issue???
"'(?<PREFIXSingleQuotedValue>[^']*)'",
'"(?<PREFIXDoubleQuotedValue>[^"]*)"',
'(?<PREFIXValue>[^\\sSTOP\'"]+)',
].join('|'))+')',
// "arg" | 'arg'
// XXX quote escaping???
// XXX CHROME/NODE BUG: this does not work yet...
//'\\s+(?<quote>[\'"])[^\\k<quote>]*\\k<quote>',
'\\s+"(?<PREFIXDoubleQuotedArg>[^"]*)"',
"\\s+'(?<PREFIXSingleQuotedArg>[^']*)'",
// arg
//'|\\s+[^\\s\\/>\'"]+',
'\\s+(?<PREFIXArg>[^\\sSTOP\'"]+)',
].join('|'),
')'].join('')
var buildArgsPattern =
module.buildArgsPattern =
function(prefix, stop='', regexp='smig'){
var pattern = module.MACRO_ARGS
.replace(/PREFIX/g, prefix)
.replace(/STOP/g, stop)
return regexp ?
new RegExp(pattern, regexp)
: pattern }
// needs:
// MACROS
// INLINE_ARGS -- MACRO_ARGS.replace(/STOP/, ')')
@ -527,17 +543,6 @@ module.MACRO =
'</\\s*(?<nameClose>MACROS)\\s*>',
].join('|')
var buildArgsPattern =
module.buildArgsPattern =
function(prefix, stop='', regexp='smig'){
var pattern = module.MACRO_ARGS
.replace(/PREFIX/g, prefix)
.replace(/STOP/g, stop)
return regexp ?
new RegExp(pattern, regexp)
: pattern }
var buildMacroPattern =
module.buildMacroPattern =
function(macros=['macro'], regexp='smig'){