Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sebastian Schrader
Kea
Commits
7a4fd5ac
Commit
7a4fd5ac
authored
Nov 05, 2015
by
Francis Dupont
Browse files
[4088] Some trivial fixes
parent
994efcca
Changes
4
Hide whitespace changes
Inline
Side-by-side
configure.ac
View file @
7a4fd5ac
...
...
@@ -1299,9 +1299,10 @@ EOF
if test $? -ne 0 ; then
$YACC -V
$RM -f bisontest.y bisontest.cc
AC_MSG_ERROR("Error with $YACC. Possibly incorrect version? Required at least 3.0.0.")
fi
rm
-f bisontest.y bisontest.cc
$RM
-f bisontest.y bisontest.cc
fi
AC_ARG_ENABLE(generate_docs, [AC_HELP_STRING([--enable-generate-docs],
...
...
src/lib/eval/Makefile.am
View file @
7a4fd5ac
...
...
@@ -68,7 +68,7 @@ parser: lexer.cc location.hh position.hh stack.hh parser.cc parser.h
# --- Flex/Bison stuff below --------------------------------------------------
location.hh position.hh stack.hh parser.cc parser.h
:
parser.yy
$(YACC)
--defines
=
parser.h
-oparser
.cc parser.yy
$(YACC)
--defines
=
parser.h
-o
parser.cc parser.yy
lexer.cc
:
lexer.ll
$(LEX)
-olexer
.cc lexer.ll
$(LEX)
-o
lexer.cc lexer.ll
src/lib/eval/eval.dox
View file @
7a4fd5ac
...
...
@@ -28,7 +28,7 @@
Internally, the parser code is generated by flex and bison. Those two
tools convert lexer.ll and parser.yy files into a number of .cc and .hh files.
To avoid adding flex and bison as dependencies, the result of the
generation is checked into the github repo and is distribut
t
ed in the
generation is checked into the github repo
sitory
and is distributed in the
tarballs.
@section dhcpEvalLexer Lexer generation using flex
...
...
@@ -37,14 +37,14 @@
data into a series of tokens. It contains a small number of directives,
but the majority of the code consists of a definition of tokens. These
are regular expressions that define various tokens, e.g. strings,
numbers, parentheses etc. Once the expression is matched, the associated
code is call
ed. In majority of the cases a generator method from
numbers, parentheses
,
etc. Once the expression is matched, the associated
action is execut
ed. In majority of the cases a generator method from
@ref isc::eval::EvalParser is called. It returns newly created
bison tokens. The purpose of the lexer is to generate a stream
of tokens that are consumed by the parser.
lexer.cc and lexer.hh files must not be edited. In case there is a need
to introduce changes, lexer.ll must be updated and the .cc .hh files
to introduce changes, lexer.ll must be updated and the .cc
and
.hh files
regenerated.
@section dhcpEvalParser Parser generation using bison
...
...
@@ -81,9 +81,9 @@ This code determines that the grammar starts from expression (line 1).
The actual definition of expression (lines 3-5) may either be a
single token or an expression token equals token. Token is further
defined in lines 7-15: it may either be a string (lines 8-11) or option
(lines 12-15). When the actual case is defined, respective C++
code
is
call
ed. For example, TokenString class is instantiated with
appropriate values and put onto the expression
stack
.
(lines 12-15). When the actual case is defined, respective C++
action
is
execut
ed. For example, TokenString class is instantiated with
appropriate values and put onto the expression
vector
.
@section dhcpEvalMakefile Generating parser files
...
...
@@ -110,7 +110,7 @@ appropriate values and put onto the expression stack.
Since the flex/bison tools are not necessary for a regular compilation,
there are checks conducted during configure, but lack of flex or
bison tools does not stop the configure process. There is a flag
--enable-generate-parser that tells configure script that the
\
--enable-generate-parser that tells configure script that the
parser will be generated. With this flag, the checks for flex/bison
are mandatory. Any missing or too old flex/bison will cause an
error.
...
...
src/lib/eval/eval_context.h
View file @
7a4fd5ac
...
...
@@ -87,4 +87,4 @@ public:
bool
trace_parsing_
;
};
#endif // ! EVALCONTEXT_H
H
#endif // ! EVALCONTEXT_H
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment