* Break-out RFC 7950 Section 6.1 tokenization
* This enables full string lexical parsing of some rules previously not fully compliant, including:
* refine
* user-augment
* if-feature
* Also solves previous tokenization issues
This commit is contained in:
parent
f9eacebf68
commit
9d65fb81d7
21 changed files with 811 additions and 218 deletions
|
|
@ -77,7 +77,7 @@ SRC = clixon_sig.c clixon_uid.c clixon_log.c clixon_err.c clixon_event.c \
|
|||
clixon_xml.c clixon_xml_io.c clixon_xml_sort.c clixon_xml_map.c clixon_xml_vec.c \
|
||||
clixon_xml_bind.c clixon_json.c clixon_proc.c \
|
||||
clixon_yang.c clixon_yang_type.c clixon_yang_module.c \
|
||||
clixon_yang_parse_lib.c clixon_yang_parse_sub.c \
|
||||
clixon_yang_parse_lib.c clixon_yang_sub_parse.c \
|
||||
clixon_yang_cardinality.c clixon_xml_changelog.c clixon_xml_nsctx.c \
|
||||
clixon_path.c clixon_validate.c \
|
||||
clixon_hash.c clixon_options.c clixon_data.c clixon_plugin.c \
|
||||
|
|
@ -95,7 +95,8 @@ YACCOBJS = lex.clixon_xml_parse.o clixon_xml_parse.tab.o \
|
|||
lex.clixon_api_path_parse.o clixon_api_path_parse.tab.o \
|
||||
lex.clixon_instance_id_parse.o clixon_instance_id_parse.tab.o \
|
||||
lex.clixon_text_syntax_parse.o clixon_text_syntax_parse.tab.o \
|
||||
lex.clixon_if_feature_parse.o clixon_if_feature_parse.tab.o
|
||||
lex.clixon_yang_sub_parse.o clixon_yang_sub_parse.tab.o \
|
||||
lex.clixon_yang_schemanode_parse.o clixon_yang_schemanode_parse.tab.o
|
||||
|
||||
# Generated src
|
||||
GENSRC = build.c
|
||||
|
|
@ -120,14 +121,15 @@ endif
|
|||
|
||||
clean:
|
||||
rm -f $(OBJS) $(MYLIBLINK) $(MYLIBSTATIC) $(MYLIBDYNAMIC) $(GENOBJS) $(GENSRC) *.core
|
||||
rm -f clixon_xml_parse.tab.[ch] clixon_xml_parse.yy.[co]
|
||||
rm -f clixon_yang_parse.tab.[ch] clixon_yang_parse.[co]
|
||||
rm -f clixon_json_parse.tab.[ch] clixon_json_parse.[co]
|
||||
rm -f clixon_xpath_parse.tab.[ch] clixon_xpath_parse.[co]
|
||||
rm -f clixon_api_path_parse.tab.[ch] clixon_api_path_parse.[co]
|
||||
rm -f clixon_instance_id_parse.tab.[ch] clixon_instance_id_parse.[co]
|
||||
rm -f clixon_text_syntax_parse.tab.[ch] clixon_text_syntax_parse.[co]
|
||||
rm -f clixon_if_feature_parse.tab.[ch] clixon_if_feature_parse.[co]
|
||||
rm -f clixon_xml_parse.tab.[ch] clixon_xml_parse.[o]
|
||||
rm -f clixon_yang_parse.tab.[ch] clixon_yang_parse.[o]
|
||||
rm -f clixon_json_parse.tab.[ch] clixon_json_parse.[o]
|
||||
rm -f clixon_xpath_parse.tab.[ch] clixon_xpath_parse.[o]
|
||||
rm -f clixon_api_path_parse.tab.[ch] clixon_api_path_parse.[o]
|
||||
rm -f clixon_instance_id_parse.tab.[ch] clixon_instance_id_parse.[o]
|
||||
rm -f clixon_text_syntax_parse.tab.[ch] clixon_text_syntax_parse.[o]
|
||||
rm -f clixon_yang_sub_parse.tab.[ch] clixon_yang_sub_parse.[o]
|
||||
rm -f clixon_yang_schemanode_parse.tab.[ch] clixon_yang_schemanode_parse.[o]
|
||||
rm -f lex.clixon_xml_parse.c
|
||||
rm -f lex.clixon_yang_parse.c
|
||||
rm -f lex.clixon_json_parse.c
|
||||
|
|
@ -135,7 +137,7 @@ clean:
|
|||
rm -f lex.clixon_api_path_parse.c
|
||||
rm -f lex.clixon_instance_id_parse.c
|
||||
rm -f lex.clixon_text_syntax_parse.c
|
||||
rm -f lex.clixon_if_feature_parse.c
|
||||
rm -f lex.clixon_yang_sub_parse.c
|
||||
rm -f *.gcda *.gcno *.gcov # coverage
|
||||
|
||||
#############################################################################
|
||||
|
|
@ -241,17 +243,30 @@ clixon_text_syntax_parse.tab.c: clixon_text_syntax_parse.tab.h
|
|||
lex.clixon_text_syntax_parse.o : lex.clixon_text_syntax_parse.c clixon_text_syntax_parse.tab.h
|
||||
$(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -Wno-error -c $<
|
||||
|
||||
# if-feature-expr parser
|
||||
lex.clixon_if_feature_parse.c : clixon_if_feature_parse.l clixon_if_feature_parse.tab.h
|
||||
$(LEX) -Pclixon_if_feature_parse clixon_if_feature_parse.l # -d is debug
|
||||
# yang-sub parser
|
||||
lex.clixon_yang_sub_parse.c : clixon_yang_sub_parse.l clixon_yang_sub_parse.tab.h
|
||||
$(LEX) -Pclixon_yang_sub_parse clixon_yang_sub_parse.l # -d is debug
|
||||
|
||||
clixon_if_feature_parse.tab.h: clixon_if_feature_parse.y
|
||||
$(YACC) -l -d -b clixon_if_feature_parse -p clixon_if_feature_parse clixon_if_feature_parse.y # -t is debug
|
||||
clixon_yang_sub_parse.tab.h: clixon_yang_sub_parse.y
|
||||
$(YACC) -l -d -b clixon_yang_sub_parse -p clixon_yang_sub_parse clixon_yang_sub_parse.y # -t is debug
|
||||
|
||||
# extra rule to avoid parallell yaccs
|
||||
clixon_if_feature_parse.tab.c: clixon_if_feature_parse.tab.h
|
||||
clixon_yang_sub_parse.tab.c: clixon_yang_sub_parse.tab.h
|
||||
|
||||
lex.clixon_if_feature_parse.o : lex.clixon_if_feature_parse.c clixon_if_feature_parse.tab.h
|
||||
lex.clixon_yang_sub_parse.o : lex.clixon_yang_sub_parse.c clixon_yang_sub_parse.tab.h
|
||||
$(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -Wno-error -c $<
|
||||
|
||||
# descendant-schema-nodeid parser
|
||||
lex.clixon_yang_schemanode_parse.c : clixon_yang_schemanode_parse.l clixon_yang_schemanode_parse.tab.h
|
||||
$(LEX) -Pclixon_yang_schemanode_parse clixon_yang_schemanode_parse.l # -d is debug
|
||||
|
||||
clixon_yang_schemanode_parse.tab.h: clixon_yang_schemanode_parse.y
|
||||
$(YACC) -l -d -b clixon_yang_schemanode_parse -p clixon_yang_schemanode_parse clixon_yang_schemanode_parse.y # -t is debug
|
||||
|
||||
# extra rule to avoid parallell yaccs
|
||||
clixon_yang_schemanode_parse.tab.c: clixon_yang_schemanode_parse.tab.h
|
||||
|
||||
lex.clixon_yang_schemanode_parse.o : lex.clixon_yang_schemanode_parse.c clixon_yang_schemanode_parse.tab.h
|
||||
$(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -Wno-error -c $<
|
||||
|
||||
distclean: clean
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue