@@ -30,6 +30,8 @@ enum yang_arg {
3030
3131enum yang_token {
3232 YANG_UNKNOWN = 0 ,
33+ YANG_ACTION ,
34+ YANG_ANYDATA ,
3335 YANG_ANYXML ,
3436 YANG_ARGUMENT ,
3537 YANG_AUGMENT ,
@@ -65,6 +67,7 @@ enum yang_token {
6567 YANG_MANDATORY ,
6668 YANG_MAX_ELEMENTS ,
6769 YANG_MIN_ELEMENTS ,
70+ YANG_MODIFIER ,
6871 YANG_MODULE ,
6972 YANG_MUST ,
7073 YANG_NAMESPACE ,
@@ -106,6 +109,10 @@ static const char *
106109keyword2str (enum yang_token keyword )
107110{
108111 switch (keyword ) {
112+ case YANG_ACTION :
113+ return "action" ;
114+ case YANG_ANYDATA :
115+ return "anydata" ;
109116 case YANG_ANYXML :
110117 return "anyxml" ;
111118 case YANG_ARGUMENT :
@@ -176,6 +183,8 @@ keyword2str(enum yang_token keyword)
176183 return "max-elements" ;
177184 case YANG_MIN_ELEMENTS :
178185 return "min-elements" ;
186+ case YANG_MODIFIER :
187+ return "modifier" ;
179188 case YANG_MODULE :
180189 return "module" ;
181190 case YANG_MUST :
@@ -508,7 +517,15 @@ get_keyword(char *word, enum yang_arg *arg)
508517 switch (word [0 ]) {
509518 case 'a' :
510519 ++ word ;
511- if (!strncmp (word , "nyxml" , 5 )) {
520+ if (!strncmp (word , "ction" , 5 )) {
521+ word += 5 ;
522+ ret = YANG_ACTION ;
523+ * arg = Y_STR_ARG ;
524+ } else if (!strncmp (word , "nydata" , 6 )) {
525+ word += 6 ;
526+ ret = YANG_ANYDATA ;
527+ * arg = Y_IDENTIF_ARG ;
528+ } else if (!strncmp (word , "nyxml" , 5 )) {
512529 word += 5 ;
513530 ret = YANG_ANYXML ;
514531 * arg = Y_IDENTIF_ARG ;
@@ -714,6 +731,10 @@ get_keyword(char *word, enum yang_arg *arg)
714731 word += 11 ;
715732 ret = YANG_MIN_ELEMENTS ;
716733 * arg = Y_STR_ARG ;
734+ } else if (!strncmp (word , "odifier" , 7 )) {
735+ word += 7 ;
736+ ret = YANG_MODIFIER ;
737+ * arg = Y_STR_ARG ;
717738 } else if (!strncmp (word , "odule" , 5 )) {
718739 word += 5 ;
719740 ret = YANG_MODULE ;
@@ -998,6 +1019,14 @@ print_keyword(enum yang_token keyword, enum yang_arg arg, FILE *out, int level,
9981019 const char * yin_element = NULL , * close_tag ;
9991020
10001021 switch (keyword ) {
1022+ case YANG_ACTION :
1023+ fprintf (out , "%*s<action name=\"" , LEVEL (level ), INDENT (level ));
1024+ close_tag = "action" ;
1025+ break ;
1026+ case YANG_ANYDATA :
1027+ fprintf (out , "%*s<anydata name=\"" , LEVEL (level ), INDENT (level ));
1028+ close_tag = "anydata" ;
1029+ break ;
10011030 case YANG_ANYXML :
10021031 fprintf (out , "%*s<anyxml name=\"" , LEVEL (level ), INDENT (level ));
10031032 close_tag = "anyxml" ;
@@ -1141,6 +1170,10 @@ print_keyword(enum yang_token keyword, enum yang_arg arg, FILE *out, int level,
11411170 fprintf (out , "%*s<min-elements value=\"" , LEVEL (level ), INDENT (level ));
11421171 close_tag = "min-elements" ;
11431172 break ;
1173+ case YANG_MODIFIER :
1174+ fprintf (out , "%*s<modifier value=\"" , LEVEL (level ), INDENT (level ));
1175+ close_tag = "modifier" ;
1176+ break ;
11441177 case YANG_MUST :
11451178 fprintf (out , "%*s<must condition=\"" , LEVEL (level ), INDENT (level ));
11461179 close_tag = "must" ;
@@ -1601,6 +1634,7 @@ find_namespace_imports(FILE *in, char **buf, int *buf_len, char **name_space, ch
16011634 case YANG_LIST :
16021635 case YANG_CHOICE :
16031636 case YANG_ANYXML :
1637+ case YANG_ANYDATA :
16041638 case YANG_USES :
16051639 case YANG_AUGMENT :
16061640 case YANG_RPC :
0 commit comments