aboutsummaryrefslogtreecommitdiffstats
path: root/vlib/vlib/parse.h
diff options
context:
space:
mode:
Diffstat (limited to 'vlib/vlib/parse.h')
-rw-r--r--vlib/vlib/parse.h221
1 files changed, 0 insertions, 221 deletions
diff --git a/vlib/vlib/parse.h b/vlib/vlib/parse.h
deleted file mode 100644
index 036e744723b..00000000000
--- a/vlib/vlib/parse.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (c) 2015 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#ifndef included_vlib_parse_h
-#define included_vlib_parse_h
-
-#include <vlib/vlib.h>
-#include <vlib/lex.h>
-#include <vppinfra/mhash.h>
-
-typedef struct
-{
- /* Word aligned value. */
- union
- {
- u8 as_u8[32 - 1 * sizeof (u16)];
- void *as_pointer;
- uword as_uword;
- word as_word;
- u64 as_u64;
- } value;
-
- /* 16 bit type at end so that 30 bytes of value are aligned. */
- u16 type;
-} __attribute ((packed))
- vlib_parse_value_t;
-
-/* Instance of a type. */
- typedef struct
- {
- u32
- type;
-
- u32
- origin;
-
- u32
- help_index;
-
- union
- {
- void *
- as_pointer;
- uword
- as_uword;
- } value;
- } vlib_parse_item_t;
-
- typedef struct
- {
- /* Index of item for this node. */
- u32
- item;
-
- /* Graph index of peer (sibling) node (linked list of peers). */
- u32
- peer;
-
- /* Graph index of deeper (child) node (linked list of children). */
- u32
- deeper;
- } vlib_parse_graph_t;
-
-#define foreach_parse_match_type \
- _(MATCH_DONE) \
- _(MATCH_RULE) \
- _(MATCH_FAIL) \
- _(MATCH_FULL) \
- _(MATCH_VALUE) \
- _(MATCH_PARTIAL) \
- _(MATCH_AMBIGUOUS) \
- _(MATCH_EVAL_FAIL)
-
- typedef enum
- {
-#define _(a) VLIB_PARSE_##a,
- foreach_parse_match_type
-#undef _
- } vlib_parse_match_t;
-
- struct vlib_parse_type;
- struct vlib_parse_main;
-
- typedef
- vlib_parse_match_t (vlib_parse_match_function_t)
- (struct vlib_parse_main *,
- struct vlib_parse_type *, vlib_lex_token_t *, vlib_parse_value_t *);
- typedef void (vlib_parse_value_cleanup_function_t) (vlib_parse_value_t
- *);
-
- typedef struct vlib_parse_type
- {
- /* Type name. */
- char *
- name;
-
- vlib_parse_match_function_t *
- match_function;
-
- vlib_parse_value_cleanup_function_t *
- value_cleanup_function;
-
- format_function_t *
- format_value;
-
- u32
- rule_index;
- } vlib_parse_type_t;
-
- typedef struct
- {
- char *
- initializer;
- void *
- eof_match;
- int
- rule_length;
- } parse_registration_t;
-
- typedef struct vlib_parse_main
- {
- /* (type, origin, help, value) tuples */
- vlib_parse_item_t *
- parse_items;
- mhash_t
- parse_item_hash;
-
- /* (item, peer, deeper) tuples */
- vlib_parse_graph_t *
- parse_graph;
- u32
- root_index;
-
- u8 *
- register_input;
-
- /* parser types */
- vlib_parse_type_t *
- parse_types;
- uword *
- parse_type_by_name_hash;
-
- /* Vector of MATCH_VALUEs */
- vlib_parse_value_t *
- parse_value;
- u32 *
- match_items;
-
- /* Parse registrations */
- parse_registration_t **
- parse_registrations;
-
- /* Token vector */
- vlib_lex_token_t *
- tokens;
- u32
- current_token_index;
-
- vlib_lex_main_t *
- lex_main;
- vlib_main_t *
- vlib_main;
- } vlib_parse_main_t;
-
- vlib_parse_main_t
- vlib_parse_main;
-
- typedef
- vlib_parse_match_t (vlib_parse_eval_function_t)
- (vlib_parse_main_t *, vlib_parse_item_t *, vlib_parse_value_t *);
-
-vlib_parse_match_t
-vlib_parse_eval (u8 * input);
-
- format_function_t format_vlib_parse_value;
-
-/* FIXME need these to be global? */
- vlib_parse_match_function_t rule_match, eof_match, word_match,
- number_match;
-
-#define _PARSE_REGISTRATION_DATA(x) \
-VLIB_ELF_SECTION_DATA(x##_registration,parse_registration_t,parse_registrations)
-
-#define PARSE_INIT(x, s, e) \
-static _PARSE_REGISTRATION_DATA(x) = { \
- .initializer = s, \
- .eof_match = e, \
-};
-
-#define _PARSE_TYPE_REGISTRATION_DATA(x) \
-VLIB_ELF_SECTION_DATA(x##_type_registration,vlib_parse_type_t, \
-parse_type_registrations)
-
-#define PARSE_TYPE_INIT(n, m, c, f) \
-static _PARSE_TYPE_REGISTRATION_DATA(n) = { \
- .name = #n, \
- .match_function = m, \
- .value_cleanup_function = c, \
- .format_value = f, \
-};
-
-#endif /* included_vlib_parse_h */
-
-/*
- * fd.io coding-style-patch-verification: ON
- *
- * Local Variables:
- * eval: (c-set-style "gnu")
- * End:
- */