Commit Graph

17 Commits

Author SHA1 Message Date
Tomasz Sowa 08da4a56b8 change licence from 3-Clause BSD to 2-Clause BSD 2022-07-03 08:54:36 +02:00
Tomasz Sowa 6f1e2eb518 removed: svn:executable atribute from files
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@987 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-11-01 17:14:39 +00:00
Tomasz Sowa 2fca5f3492 changed: SetCommentary() methods from Pattern were moved to PatternParser and Generator
added:   caching functions and blocks
         caching is added into Pattern and Blocks
         methods: CacheFunctions() and CacheBlocks()
		 




git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@975 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-19 05:42:25 +00:00
Tomasz Sowa ad2fb11a5c fixed: compile error in item.h (in CacheFunctions)
fixed: Pattern::ClearCache() was missing



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@973 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-17 23:56:30 +00:00
Tomasz Sowa 429021f687 changed: a header info in each source file to:
* This file is a part of EZC -- Easy templating in C++ library
 * and is distributed under the BSD 3-Clause licence.




git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@971 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-17 21:48:11 +00:00
Tomasz Sowa 71c5bd11d5 added: possibility to define a block
changed: in Functions
         Functions are only for user-defined functions now
         (before they could remember a string variable too)
added:   class Vars for variables
         a variable can be a string or an alias to an other function or block
added:   now we can have nested functions calls e.g.:
         [function1 [function2]]
         in the above example an output (stream) from function2 will be passed
         as the first argument to funcion1 (will be passed as a string)
removed: UTF8() method from PatternParser
         now it is treated that when we have only std::string (or char*)
         that this is an UTF-8 string




git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@970 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-17 21:36:55 +00:00
Tomasz Sowa b5faf171e3 changed: Pattern class has been split into two classes: Pattern and PatternParser
in Pattern we have only the tree
         in PatternParser there is the whole logic used to parse a file


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@969 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-11 19:56:48 +00:00
Tomasz Sowa 759be64379 changed: now Patterns are read with UTF-8 enabled by default
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@966 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-09 20:46:58 +00:00
Tomasz Sowa ef16ae4ebd added: prefix/namespace Winix:: when using winix logger
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@449 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-02-12 16:26:48 +00:00
Tomasz Sowa 9215130b9d added: possibility to generate output to more than one stream
Generate() methods can take std::vector with pointers to streams
added: 'ezc' keyword -- currently only for selecting streams
       e.g.
       [ezc stream "0" "3"] - after now the output is generated to streams 0 and 3
  


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@445 e52654a7-88a9-db11-a3e9-0013d4bc506e
2013-11-07 10:16:10 +00:00
Tomasz Sowa a728f86e05 now ezc is using 'pikotools' (utf8)
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@372 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-01-12 02:32:04 +00:00
Tomasz Sowa 542e50d757 added filters:
a new statement [filter]
 syntax:
 [filter funcion_name]....[end]
 everything which is between [filter] and [end] is processed normally and
 at the end it is passed to the function (function_name)
 FunInfo struct has 'in' input stream now



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@333 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-01-26 12:42:49 +00:00
Tomasz Sowa fd2194623a changed: now [for] statements with the same function can be nested
sample:
[for my_function]
 [for my_function]
   foo
 [end]
[end]

changed: FunInfo::iter has a value from the last [for] statement now
sample:
[for my_function]
 [other_function]
[end]

void other_function(Info &i)
{
// here i.iter is the number of iteration
// previously was always zero
}

changed: small optimization in [for]
the proper function is being looking for only once at the beginning
previously it was searched in each iteration



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@331 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-01-14 23:59:30 +00:00
Tomasz Sowa c4f5f79218 fixed: Item::Item(const Item & i) should clear the item table
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@330 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-12-06 00:22:38 +00:00
Tomasz Sowa 0b09b5454f added: Pattern::CacheFunctions(Functions<StreamType> & fun)
you can cache all functions (their addresses) in the pattern

changed: now we have two methods for generating content:
       Generator<>::Generate(StreamType & o, Pattern & p, Functions<StreamType> & f);
       similar like previous -- Set(...) methods were removed as well as the second ctor 

       and a second one:
       Generate(StreamType & o, Pattern & p);
       without functions, the functions should be cached beforehand in the pattern
       by calling CacheFunctions() method on the pattern
       this gives O(1) complexity when looking for a specific function
       previously was O(log n) 
       


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@329 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-11-25 22:39:58 +00:00
Tomasz Sowa 33c86d494b fixed: performance (memcpy used too often)
in some places there were reserve() method used (on std::wstring/std::string objects)
         especially in AssignString() methods
         if we add a new string we should check the new size
         and only call reserve() if the new size will be greater than existing one
         (plus some constant)
added:   Functions<>::Size() method



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@327 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-11-23 21:59:52 +00:00
Tomasz Sowa 8f94937ed1 added: support for UTF-8 (files utf8.h utf8.cpp)
they can be even used without the rest library
         as only a library for converting between wide characters and UTF-8
changed: everywhere we use std::wstring instead of std::string
changed: Generator and Functions are templates now
         they take a stream type
renamed: Info to FunInfo and it is a template too
         taking a stream type

now you can use other kind of streams with the library
previous was only std::ostringstream



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@326 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-11-22 01:23:32 +00:00