Skip to content

Commit

Permalink
Robot: capture a keyword started from variable referencing
Browse files Browse the repository at this point in the history
Input:

    *** Keywords ***

    ${embedded arg} Starting Single
	No Operation

Output:

    ${embedded arg} Starting Single	input.robot	/^${embedded arg} Starting Single$/;"	k

Close #1570.

Signed-off-by: Masatake YAMATO <[email protected]>
  • Loading branch information
masatake committed Oct 6, 2017
1 parent 1848089 commit 0e230a1
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--sort=no
17 changes: 17 additions & 0 deletions Units/parser-robot.r/keyword-started-from-varref.d/expected.tags
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
myvar input.robot /^${myvar} variable_value$/;" v
My Regular Keyword input.robot /^My Regular Keyword$/;" k
My_Regular_Keyword input.robot /^My Regular Keyword$/;" k
${embedded arg} Starting Single input.robot /^${embedded arg} Starting Single$/;" k
${embedded_arg}_Starting_Single input.robot /^${embedded arg} Starting Single$/;" k
${embedded arg1} Starting ${embedded arg2} Multiple input.robot /^${embedded arg1} Starting ${embedded arg2} Multiple$/;" k
${embedded_arg1}_Starting_${embedded_arg2}_Multiple input.robot /^${embedded arg1} Starting ${embedded arg2} Multiple$/;" k
${embedded arg1} Starting And ${embedded arg2} Ending ${embedded arg3} input.robot /^${embedded arg1} Starting And ${embedded arg2} Ending ${embedded arg3}$/;" k
${embedded_arg1}_Starting_And_${embedded_arg2}_Ending_${embedded_arg3} input.robot /^${embedded arg1} Starting And ${embedded arg2} Ending ${embedded arg3}$/;" k
Middle ${embedded arg} Single Arguments input.robot /^Middle ${embedded arg} Single Arguments$/;" k
Middle_${embedded_arg}_Single_Arguments input.robot /^Middle ${embedded arg} Single Arguments$/;" k
Middle ${embedded arg1} Multiple ${embedded arg2} Arguments input.robot /^Middle ${embedded arg1} Multiple ${embedded arg2} Arguments$/;" k
Middle_${embedded_arg1}_Multiple_${embedded_arg2}_Arguments input.robot /^Middle ${embedded arg1} Multiple ${embedded arg2} Arguments$/;" k
Ending Single ${embedded arg} input.robot /^Ending Single ${embedded arg}$/;" k
Ending_Single_${embedded_arg} input.robot /^Ending Single ${embedded arg}$/;" k
Ending Multiple ${embedded arg1} And ${embedded arg2} input.robot /^Ending Multiple ${embedded arg1} And ${embedded arg2}$/;" k
Ending_Multiple_${embedded_arg1}_And_${embedded_arg2} input.robot /^Ending Multiple ${embedded arg1} And ${embedded arg2}$/;" k
31 changes: 31 additions & 0 deletions Units/parser-robot.r/keyword-started-from-varref.d/input.robot
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#
# This test input is taken from #1570 opened by @mMontu.
#
*** Variables ***
${myvar} variable_value

*** Keywords ***

My Regular Keyword
Sleep 5s

${embedded arg} Starting Single
No Operation

${embedded arg1} Starting ${embedded arg2} Multiple
No Operation

${embedded arg1} Starting And ${embedded arg2} Ending ${embedded arg3}
No Operation

Middle ${embedded arg} Single Arguments
No Operation

Middle ${embedded arg1} Multiple ${embedded arg2} Arguments
No Operation

Ending Single ${embedded arg}
No Operation

Ending Multiple ${embedded arg1} And ${embedded arg2}
No Operation
8 changes: 6 additions & 2 deletions parsers/robot.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,12 @@ static void initialize (const langType language)
{
addLanguageCallbackRegex (language, "^\\*+ *([^* ].+[^* ]) *\\*+$",
"{exclusive}", changeSection, NULL, NULL);
addLanguageCallbackRegex (language, "(^[A-Za-z0-9]+([${}' _][-${}A-Za-z0-9]+)*)",
"{exclusive}", tagKeywordsAndTestCases, NULL, NULL);

addLanguageCallbackRegex (
language,
"(^([A-Za-z0-9]+|\\$\\{[_A-Za-z0-9][' _A-Za-z0-9]+\\})([${}' _][-${}A-Za-z0-9]+)*)",
"{exclusive}", tagKeywordsAndTestCases, NULL, NULL);

addLanguageCallbackRegex (language, "^[$@]\\{([_A-Za-z0-9][' _A-Za-z0-9]+)\\} [ ]*.+",
"{exclusive}", tagVariables, NULL, NULL);
}
Expand Down

0 comments on commit 0e230a1

Please sign in to comment.