From 94cdcbc2c9454ae1efb38f355bee3bc93c909a9b Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 20 Dec 2016 13:42:01 +0000 Subject: [PATCH] .tutorial git-svn-id: svn://ultimatepp.org/upp/trunk@10561 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- tutorial/CoreTutorial/Parallel.cpp | 2 +- tutorial/CoreTutorial/Tutorial.cpp | 28 +++++++++++++++++----------- tutorial/CoreTutorial/Tutorial.h | 2 ++ tutorial/CoreTutorial/tutorial2.cpp | 13 +++++++++---- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/tutorial/CoreTutorial/Parallel.cpp b/tutorial/CoreTutorial/Parallel.cpp index 11029a134..11370cb49 100644 --- a/tutorial/CoreTutorial/Parallel.cpp +++ b/tutorial/CoreTutorial/Parallel.cpp @@ -4,7 +4,7 @@ void CoAlgoTutorial() { /// .Parallel algorithms - /// U++ provides a parallel version of algorithms where it makes sense. The naming scheme + /// U++ provides a parallel versions of algorithms where it makes sense. The naming scheme /// is 'Co' prefix before the name of algorithm designates the parallel version. /// So the parallel version of e.g. `FindIndex` is `CoFindIndex`, for 'Sort' it is 'CoSort': diff --git a/tutorial/CoreTutorial/Tutorial.cpp b/tutorial/CoreTutorial/Tutorial.cpp index c565101cb..418ae868f 100644 --- a/tutorial/CoreTutorial/Tutorial.cpp +++ b/tutorial/CoreTutorial/Tutorial.cpp @@ -9,15 +9,21 @@ int minor = 0; String qtf = "[ $$0,0#00000000000000000000000000000000:Default]" "[a83;*R6 $$1,3#31310162474203024125188417583966:caption]" -"[H4;b83;*6 $$2,3#07864147445237544204411237157677:title]" +"[b83;*6 $$2,3#07864147445237544204411237157677:title]" "[b42;a42 $$3,3#45413000475342174754091244180557:text]" "[l100;C@5*;1 $$4,4#20902679421464641399138805415013:code]" "[l100;*C$7;2 $$5,5#07531550463529505371228428965313:log]" -"[H4;b73;*5 $$2,3#07864147445237544204111237153677:subtitle]" +"[H6;b73;*7 $$6,3#07864147445237544204111237153677:section]" ; #define OUT(x) out << x << '\n'; +void Section(const String& title) +{ + qtf << "[s6; " << AsString(++major) << "." << ' ' + TrimBoth(title) << "&]"; + minor = 0; +} + void FlushDoc(String& docblock) { docblock = TrimBoth(docblock); @@ -29,16 +35,9 @@ void FlushDoc(String& docblock) bool title = false; String style = "[s3;"; - if(docblock.StartsWith("..")) { - docblock = AsString(major) + "." + AsString(++minor) + ' ' + TrimBoth(docblock.Mid(2)); - style = "[s7;"; - title = true; - } - else if(docblock.StartsWith(".")) { - docblock = AsString(++major) + "." + ' ' + TrimBoth(docblock.Mid(1)); - minor = 0; - style = "[s2;"; + docblock = AsString(major) + "." + AsString(++minor) + ' ' + TrimBoth(docblock.Mid(1)); + style = minor == 1 ? "[s2;" : "[s2;H4"; title = true; } @@ -135,11 +134,18 @@ void MakeTutorial() line = atoi(ln) - 1; } else + if(ln.StartsWith("=-=")) + logline.Add(String()).Add(MakeTuple(0, ln.Mid(4))); + else if(path.GetCount()) logline.GetAdd(path).Add(MakeTuple(line, ln)); } for(auto&& f : ~logline) { + if(IsNull(f.key)) { + Section(f.value[0].b); + continue; + } Vector src = Split(Filter(LoadFile(f.key), [] (int c) { return c == '\r' ? 0 : c; }), '\n', false); int i = 0; int logi = 0; diff --git a/tutorial/CoreTutorial/Tutorial.h b/tutorial/CoreTutorial/Tutorial.h index 1ca8aeb1b..4eef6584f 100644 --- a/tutorial/CoreTutorial/Tutorial.h +++ b/tutorial/CoreTutorial/Tutorial.h @@ -48,4 +48,6 @@ using namespace Upp; #define DO(x) void x(); x(); +#define SECTION(x) UPP::VppLog() << "=-= " << x << '\n'; + void MakeTutorial(); \ No newline at end of file diff --git a/tutorial/CoreTutorial/tutorial2.cpp b/tutorial/CoreTutorial/tutorial2.cpp index db9a22a90..6cf9bf738 100644 --- a/tutorial/CoreTutorial/tutorial2.cpp +++ b/tutorial/CoreTutorial/tutorial2.cpp @@ -2,6 +2,7 @@ GUI_APP_MAIN { + SECTION("Basics"); DO(Logging); DO(StringTutorial); DO(StringBufferTutorial); @@ -11,6 +12,7 @@ GUI_APP_MAIN DO(CombineHashTutorial); DO(ComparableTutorial); + SECTION("Array containers"); DO(Vector1); DO(Vector2); DO(Transfer); @@ -18,7 +20,6 @@ GUI_APP_MAIN DO(ArrayTutorial); DO(PolyArray); DO(Bidirectional); - DO(IndexTutorial); DO(IndexClient); DO(Map); @@ -28,18 +29,22 @@ GUI_APP_MAIN DO(SortedMap); DO(TupleTutorial); + SECTION("Ranges and algoritims"); DO(Range); DO(Algo); DO(Sorting); - DO(FunctionTutorial); - DO(CapturingContainers); - + SECTION("Value"); DO(ValueTutorial); DO(NullTutorial); DO(Value2Tutorial); DO(ValueArrayMap); + SECTION("Function and lambdas"); + DO(FunctionTutorial); + DO(CapturingContainers); + + SECTION("Multithreading"); DO(ThreadTutorial); DO(MutexTutorial); DO(ConditionVariableTutorial);