[kgraphviewer-devel] [PATCH 1/2] Fix parser to accept both int and floating-point in more places.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sat Mar 1 23:06:50 UTC 2014
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
---
src/part/dotgrammar.cpp | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/src/part/dotgrammar.cpp b/src/part/dotgrammar.cpp
index caa39e1..6c52608 100644
--- a/src/part/dotgrammar.cpp
+++ b/src/part/dotgrammar.cpp
@@ -483,23 +483,20 @@ bool parse_renderop(const std::string& str, DotRenderOpVec& arenderopvec)
+(
(
(ch_p('E')|ch_p('e'))[assign_a(therenderop)] >> +space_p >>
- repeat_p(4)[int_p[push_back_a(renderop.integers)] >> +space_p]
+ repeat_p(4)[int_p[push_back_a(renderop.integers)] >> !((ch_p(',')|ch_p('.')) >> int_p) >> +space_p]
)[&valid_op]
| (
(ch_p('P')|ch_p('p')|ch_p('L')|ch_p('B')|ch_p('b'))[assign_a(therenderop)] >> +space_p >>
int_p[assign_a(c)][push_back_a(renderop.integers)] >> +space_p >>
repeat_p(boost::ref(c))[
- int_p[push_back_a(renderop.integers)] >> +space_p >>
- int_p[push_back_a(renderop.integers)] >> +space_p
+ int_p[push_back_a(renderop.integers)] >> !((ch_p(',')|ch_p('.')) >> int_p) >> +space_p >>
+ int_p[push_back_a(renderop.integers)] >> !((ch_p(',')|ch_p('.')) >> int_p) >> +space_p
]
)[&valid_op]
// "T 1537 228 0 40 9 -#1 (== 0) T 1537 217 0 90 19 -MAIN:./main/main.pl "
| (
ch_p('T')[assign_a(therenderop)] >> +space_p >>
- int_p[push_back_a(renderop.integers)] >> +space_p >>
- int_p[push_back_a(renderop.integers)] >> +space_p >>
- int_p[push_back_a(renderop.integers)] >> +space_p >>
- int_p[push_back_a(renderop.integers)] >> +space_p >>
+ repeat_p(4)[int_p[push_back_a(renderop.integers)] >> !((ch_p(',')|ch_p('.')) >> int_p) >> +space_p] >>
int_p[assign_a(c)] >> +space_p >> '-' >>
(repeat_p(boost::ref(c))[anychar_p])[assign_a(thestr)] >> +space_p
)[&valid_op]
@@ -512,7 +509,7 @@ bool parse_renderop(const std::string& str, DotRenderOpVec& arenderopvec)
// F 14,000000 11 -Times-Roman
| (
ch_p('F')[assign_a(therenderop)] >> +space_p >>
- int_p[push_back_a(renderop.integers)] >> (ch_p(',')|ch_p('.')) >> int_p >> +space_p >>
+ int_p[push_back_a(renderop.integers)] >> !((ch_p(',')|ch_p('.')) >> int_p) >> +space_p >>
int_p[assign_a(c)] >> +space_p >> '-' >>
(repeat_p(boost::ref(c))[anychar_p])[assign_a(thestr)] >> +space_p
)[&valid_op]
--
1.9.0
More information about the kgraphviewer-devel
mailing list