feat(variform): allow hyphens in identifiers
Fixes https://emqx.atlassian.net/browse/EMQX-12683
This commit is contained in:
parent
a4cc3ba9e8
commit
44e4b3616d
|
@ -1,6 +1,6 @@
|
||||||
Definitions.
|
Definitions.
|
||||||
%% Define regular expressions for tokens
|
%% Define regular expressions for tokens
|
||||||
IDENTIFIER = [a-zA-Z][a-zA-Z0-9_.]*
|
IDENTIFIER = [a-zA-Z][-a-zA-Z0-9_.]*
|
||||||
SQ_STRING = \'[^\']*\'
|
SQ_STRING = \'[^\']*\'
|
||||||
DQ_STRING = \"[^\"]*\"
|
DQ_STRING = \"[^\"]*\"
|
||||||
INTEGER = [+-]?[0-9]+
|
INTEGER = [+-]?[0-9]+
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
-define(SYNTAX_ERROR, {error, "syntax error before:" ++ _}).
|
-define(SYNTAX_ERROR, {error, "syntax error before:" ++ _}).
|
||||||
|
|
||||||
redner_test_() ->
|
render_test_() ->
|
||||||
[
|
[
|
||||||
{"direct var reference", fun() -> ?assertEqual({ok, <<"1">>}, render("a", #{a => 1})) end},
|
{"direct var reference", fun() -> ?assertEqual({ok, <<"1">>}, render("a", #{a => 1})) end},
|
||||||
{"concat strings", fun() ->
|
{"concat strings", fun() ->
|
||||||
|
@ -32,6 +32,15 @@ redner_test_() ->
|
||||||
{"concat empty string", fun() ->
|
{"concat empty string", fun() ->
|
||||||
?assertEqual({ok, <<"">>}, render("concat([''])", #{}))
|
?assertEqual({ok, <<"">>}, render("concat([''])", #{}))
|
||||||
end},
|
end},
|
||||||
|
{"identifier with hyphen", fun() ->
|
||||||
|
?assertEqual(
|
||||||
|
{ok, <<"10">>},
|
||||||
|
render(
|
||||||
|
"pub_props.Message-Expiry-Interval",
|
||||||
|
#{pub_props => #{'Message-Expiry-Interval' => 10}}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
end},
|
||||||
{"tokens 1st", fun() ->
|
{"tokens 1st", fun() ->
|
||||||
?assertEqual({ok, <<"a">>}, render("nth(1,tokens(var, ','))", #{var => <<"a,b">>}))
|
?assertEqual({ok, <<"a">>}, render("nth(1,tokens(var, ','))", #{var => <<"a,b">>}))
|
||||||
end},
|
end},
|
||||||
|
|
Loading…
Reference in New Issue