From a939b843febd67f8665bfc41b04138930a6528b7 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Sat, 10 Jan 2015 12:27:37 +0100 Subject: [PATCH] make EndSymbol lex. smaller than any other and StartSymbol lex. bigger --- alib2data/src/alphabet/SymbolBase.h | 2 +- alib2data/src/object/ObjectBase.h | 4 ++-- alib2data/test-src/alphabet/SymbolTest.cpp | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/alib2data/src/alphabet/SymbolBase.h b/alib2data/src/alphabet/SymbolBase.h index b838d34298..6bbf45e44b 100644 --- a/alib2data/src/alphabet/SymbolBase.h +++ b/alib2data/src/alphabet/SymbolBase.h @@ -16,7 +16,7 @@ namespace alphabet { class SymbolBase; typedef std::acceptor_base<SymbolBase, - StartSymbol, LabeledSymbol, BlankSymbol, BottomOfTheStackSymbol, RankedSymbol, BarSymbol, RankedBarSymbol, SubtreeWildcardSymbol, SymbolSetSymbol, SymbolPairSymbol, UniqueSymbol, EndSymbol + EndSymbol, LabeledSymbol, BlankSymbol, BottomOfTheStackSymbol, RankedSymbol, BarSymbol, RankedBarSymbol, SubtreeWildcardSymbol, SymbolSetSymbol, SymbolPairSymbol, UniqueSymbol, StartSymbol > VisitableSymbolBase; /** diff --git a/alib2data/src/object/ObjectBase.h b/alib2data/src/object/ObjectBase.h index a42e730aa3..736a5a07ff 100644 --- a/alib2data/src/object/ObjectBase.h +++ b/alib2data/src/object/ObjectBase.h @@ -137,7 +137,7 @@ typedef std::acceptor_base<ObjectBase, label::PrimitiveLabel, label::HexavigesimalLabel, label::ObjectLabel, label::LabelSetLabel, label::LabelPairLabel, label::UniqueLabel, regexp::UnboundedRegExp, regexp::FormalRegExp, string::Epsilon, string::LinearString, string::CyclicString, - alphabet::StartSymbol, alphabet::LabeledSymbol, alphabet::BlankSymbol, alphabet::BottomOfTheStackSymbol, alphabet::RankedSymbol, alphabet::BarSymbol, alphabet::RankedBarSymbol, alphabet::SubtreeWildcardSymbol, alphabet::SymbolPairSymbol, alphabet::SymbolSetSymbol, alphabet::UniqueSymbol, alphabet::EndSymbol, + alphabet::EndSymbol, alphabet::LabeledSymbol, alphabet::BlankSymbol, alphabet::BottomOfTheStackSymbol, alphabet::RankedSymbol, alphabet::BarSymbol, alphabet::RankedBarSymbol, alphabet::SubtreeWildcardSymbol, alphabet::SymbolPairSymbol, alphabet::SymbolSetSymbol, alphabet::UniqueSymbol, alphabet::StartSymbol, container::ObjectsSet, container::ObjectsVector, container::ObjectsPair, container::ObjectsMap, primitive::String, primitive::Integer, primitive::Character, primitive::Unsigned, primitive::Bool > VisitableObjectBase; @@ -152,7 +152,7 @@ class ObjectBase : label::PrimitiveLabel, label::HexavigesimalLabel, label::ObjectLabel, label::LabelSetLabel, label::LabelPairLabel, label::UniqueLabel, regexp::UnboundedRegExp, regexp::FormalRegExp, string::Epsilon, string::LinearString, string::CyclicString, - alphabet::StartSymbol, alphabet::LabeledSymbol, alphabet::BlankSymbol, alphabet::BottomOfTheStackSymbol, alphabet::RankedSymbol, alphabet::BarSymbol, alphabet::RankedBarSymbol, alphabet::SubtreeWildcardSymbol, alphabet::SymbolPairSymbol, alphabet::SymbolSetSymbol, alphabet::UniqueSymbol, alphabet::EndSymbol, + alphabet::EndSymbol, alphabet::LabeledSymbol, alphabet::BlankSymbol, alphabet::BottomOfTheStackSymbol, alphabet::RankedSymbol, alphabet::BarSymbol, alphabet::RankedBarSymbol, alphabet::SubtreeWildcardSymbol, alphabet::SymbolPairSymbol, alphabet::SymbolSetSymbol, alphabet::UniqueSymbol, alphabet::StartSymbol, container::ObjectsSet, container::ObjectsVector, container::ObjectsPair, container::ObjectsMap, primitive::String, primitive::Integer, primitive::Character, primitive::Unsigned, primitive::Bool >, public VisitableObjectBase { diff --git a/alib2data/test-src/alphabet/SymbolTest.cpp b/alib2data/test-src/alphabet/SymbolTest.cpp index 7054cc3cda..bc4f18883b 100644 --- a/alib2data/test-src/alphabet/SymbolTest.cpp +++ b/alib2data/test-src/alphabet/SymbolTest.cpp @@ -99,7 +99,13 @@ void SymbolTest::testXMLParser() { void SymbolTest::testOrder() { alphabet::LabeledSymbol ls("a"); alphabet::BlankSymbol bs; + alphabet::StartSymbol ss; + alphabet::EndSymbol es; CPPUNIT_EXCLUSIVE_OR( bs < ls, ls < bs); + + CPPUNIT_ASSERT(es < ls); //End symbol typically denoted by '$' is lexicographically smaller than any other symbol + CPPUNIT_ASSERT(ls < ss); //Start symbol typically denoted by '^' is lexicographically bigger than any other symbol +; } -- GitLab