#include "command_match.h"
#include "memory.h"
+
#ifdef TRACE_MATCHER
#define TM 1
#else
input_token, token->text, token->type);
unsigned int last_token = (vector_active (vline) - 1 == idx);
- switch (match_token (token, input_token))
+ enum match_type matchtype = match_token (token, input_token);
+ switch (matchtype)
{
// occurs when last token is whitespace
case trivial_match:
trace_matcher ("exact_match\n");
if (last_token)
listnode_add (next, gn);
- else
+ else if (matchtype >= minmatch)
add_nexthops (next, gn);
break;
default:
DUMMY_DEFUN(cmd3, "arg ipv6m X:X::X:X/M");
DUMMY_DEFUN(cmd4, "arg range (5-15)");
DUMMY_DEFUN(cmd5, "pat a < a|b>");
-DUMMY_DEFUN(cmd6, "pat b <a|>");
DUMMY_DEFUN(cmd7, "pat c <a | b|c> A.B.C.D");
DUMMY_DEFUN(cmd8, "pat d { foo A.B.C.D|bar X:X::X:X| baz }");
DUMMY_DEFUN(cmd9, "pat e [ WORD ]");
install_element (ENABLE_NODE, &cmd3_cmd);
install_element (ENABLE_NODE, &cmd4_cmd);
install_element (ENABLE_NODE, &cmd5_cmd);
- install_element (ENABLE_NODE, &cmd6_cmd);
install_element (ENABLE_NODE, &cmd7_cmd);
install_element (ENABLE_NODE, &cmd8_cmd);
install_element (ENABLE_NODE, &cmd9_cmd);
test# echo this is a test message\r
this is a test message\r
test# echo foo bla \r
- MESSAGE The message to echo\r
- <cr> \r
+% There is no matched command.\r
test# echo foo bla baz\r
foo bla baz\r
test# echo\r
[01]: range\r
[02]: 5\r
test# arg range 9\r
- <5-15> 02\r
+ (5-15) 02\r
test# arg range 9\r
cmd4 with 3 args.\r
[00]: arg\r
test# pa\b\bpat \r
% Command incomplete.\r
test# pat \r
-a b c d e f \r
+a c d e f \r
test# pat \r
% Command incomplete.\r
test# \r
test# pat a a x\r
% [NONE] Unknown command: pat a a x\r
test# \r
-test# pat b\r
-% Command incomplete.\r
-test# pat b \r
- a 02\r
-test# pat b a\r
-cmd6 with 1 args.\r
-[00]: a\r
-test# pat b x\r
-% [NONE] Unknown command: pat b x\r
-test# pat b x y\r
-% [NONE] Unknown command: pat b x y\r
-test# \r
test# pat c a\r
% Command incomplete.\r
test# pat c a 1.2.3.4\r
[02]: a\r
[03]: 1.2.3.4\r
test# pat c b 2.3.4\r
-cmd7 with 2 args.\r
-[00]: b\r
-[01]: 2.3.4\r
+% [NONE] Unknown command: pat c b 2.3.4\r
test# pat c c \r
A.B.C.D 05\r
test# pat c c x\r