Commit Graph

128 Commits

Author SHA1 Message Date
Tomasz Sowa 363605bde5 changed: a function can have a postfix now e.g. [my_function:my_postfix]
this will be mainly used in conjuction with [for ...] statements

[for my_function:xxx]
  [for my_function]
    [my_function_value]
    [my_function_valu:xxx] (references the first loop)
  [end]
[end]

added: to FunInfo<>: a reference to current item from a pattern (const Item & item)
       similary on the stack is added a pointer to an item
       by having this reference you can compare a function's name and its postfix
       added methods:
       Stack * FindLastFor(const std::wstring & name);
       Stack * FindLastFor(const std::wstring & name, const std::wstring & postfix);
       template<class FunUserObject> FunUserObject * FindUserObject(const std::wstring & function_name, Stack ** ezc_stack = 0);




git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1038 e52654a7-88a9-db11-a3e9-0013d4bc506e
2016-04-04 15:53:11 +00:00
Tomasz Sowa 18696d412b added a 'for_name' (std::string*) in Stack
this is a user defined name of a [for] statement



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1037 e52654a7-88a9-db11-a3e9-0013d4bc506e
2016-03-23 15:22:59 +00:00
Tomasz Sowa 2190fae789 changed: using relative paths calculated with relative_path now
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1032 e52654a7-88a9-db11-a3e9-0013d4bc506e
2016-03-18 09:22:13 +00:00
Tomasz Sowa 0e99ded5b8 added: include path to ezc to Makefile (it is referenced from Winix)
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1022 e52654a7-88a9-db11-a3e9-0013d4bc506e
2016-02-01 11:12:26 +00:00
Tomasz Sowa a1ea2e3ccd changed: OutStreams<>::streams_map should not have null pointers to StreamType objects
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1018 e52654a7-88a9-db11-a3e9-0013d4bc506e
2015-11-16 12:09:34 +00:00
Tomasz Sowa 0dc807dbff some #include moved in other places
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1016 e52654a7-88a9-db11-a3e9-0013d4bc506e
2015-11-15 21:45:49 +00:00
Tomasz Sowa c3deb960c5 fixed: 'typename' keyword is missing in some places
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1015 e52654a7-88a9-db11-a3e9-0013d4bc506e
2015-11-12 11:08:53 +00:00
Tomasz Sowa 7b6f7ad328 changed: [ezc streams "..."] to [ezc out "..."] or just [out "..."]
the syntax has been changed, now [ezc ...] is used with [end] statement
added: OutStreams<StreamType> class with a pool with output streams,
the Generator::Generate() method can take it as its argument
(Generator API has been changed)



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1014 e52654a7-88a9-db11-a3e9-0013d4bc506e
2015-11-12 09:53:20 +00:00
Tomasz Sowa 76490d4c19 added: now ezc functions can be methods of a special object
added: objects.h with a base class for the object
       and Objects container (similar as Functions container)



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1011 e52654a7-88a9-db11-a3e9-0013d4bc506e
2015-06-14 18:20:00 +00:00
Tomasz Sowa 6b42cdf76e changed: the way how functions' arguments are parsed
now this [fun1 fun2 "something" fun3]
         will call fun1 with three arguments: fun2, "something" and fun3
         and this [fun1 [fun2 "something"] fun3]
         will call fun1 with two arguments: [fun2 "something] and fun3
         "something" is an argument for fun2 function
removed: statements: [if-one] [if-any] [if-no] [if-any-no] [if-one-no]



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@1004 e52654a7-88a9-db11-a3e9-0013d4bc506e
2015-03-08 02:31:21 +00:00
Tomasz Sowa b519c79a3e removed: statements: [if-index ...] [is ...] and [is-no ...]
we can provide a user definied function which does the same
added:   to FunInfo<>:
         Stack * stack_tab
         size_t stack_index
         a stack table and an index to the current stack item



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@988 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-11-02 17:26:56 +00: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 ad50c01b15 deleted: vars.h and vars.cpp as they are not needed now
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@982 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-28 17:52:45 +00:00
Tomasz Sowa 0a7bd3159a added: [return ...] statement for a block
changed: a user definied function now is able to get a string and a boolean value (parameters)
changed: we do not longer support aliases for variables
         a variable is only a string and a boolean value now



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@981 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-28 17:46:24 +00:00
Tomasz Sowa 6bd8889456 fixed: in cache.cpp there was headerfile_ezc_cache macro used
(copied from cache.h)
fixed: in Generator: memory leak from block_stack
       objects pointing by block_stack_tab[].out_stream
       were not deleted
fixed: in Item: ClearCache() didn't clear all pointers
       Function::parameters table were not used




git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@979 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-21 07:21:20 +00:00
Tomasz Sowa 03fe124ad9 fixed: function and blocks were incorrectly cached
(now we have a tree in Item::Function.parameters too
        and we should go through that tree as well)
fixed: in Generator: Item::Function.par should be cleared
       only if Item::Function.name is not empty
changed: in Generator: use method 'write' of an output stream
       instead of operator<<
added: Clear() method to Blocks class
changed: in Generator
       Generator has its own Vars class now
       we don't need SetVars() method
added: to Generator:
       void CanUseCache(bool can_use_cache);
       // set whether or not we can use cache for functions or blocks
       // true by default

       void CanUseVars(bool can_use_variables);
       // set whether or not we can use variables: [def ...] statement
       // true by default





git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@977 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-19 21:09:34 +00:00
Tomasz Sowa 6f9f274e08 removed: AssignString() functions
now we are using UTF-8 <-> wide characters conversions



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@976 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-19 05:46:49 +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 00f8af232b fixed: a 'typename' keywords were missing in some places
fixed: removed GetStringFromStream() method 
       it returns a reference to a local object (from stream.str())
       now the code is used directly




git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@972 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-17 22:14:28 +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 fd75a1f119 copied: pattern.cpp -> patternparser.cpp
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@968 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-11 19:01:17 +00:00
Tomasz Sowa d9a8426ebc copied: parser.h -> patternparser.h
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@967 e52654a7-88a9-db11-a3e9-0013d4bc506e
2014-10-11 19:00:57 +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 5de31cfe41 fixed: renamed a local variable in Generator (it did not compile)
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@446 e52654a7-88a9-db11-a3e9-0013d4bc506e
2013-11-17 21:53:53 +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 23ce3e83df changed: if EZC_USE_WINIX_LOGGER macro is defined then we add -I../../winix flag
for compiling



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@442 e52654a7-88a9-db11-a3e9-0013d4bc506e
2013-10-15 23:48:06 +00:00
Tomasz Sowa ac37982ee7 fixed: in Generator: empty_stream() should be inited with its default cctor
(an error when compiling with clang)



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@420 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-06-30 23:24:09 +00:00
Tomasz Sowa 68c1fb8ef8 fixed: Generator: when making [if-index]
[if-index] statement has to look for a last [for] statement on the stack
       (because the stack is for all items now)


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@394 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-03-03 20:58:55 +00:00
Tomasz Sowa 787b5e99b2 changed: in Generator:
now we have a stack item for all statements [if...] [normal_fun] etc.
         previously was only for [for ...] statements
changed: FunInfo<> has a pointer to the current stack item
changed: now we have a static number of stack items (default: 300)
         so you can remember a pointer to a stack item and this pointer 
         is always valid


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@393 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-02-27 17:39:46 +00:00
Tomasz Sowa 4fc842ad91 added: to FunInfo<>:
bool remove_fun_data
       fun_data is removed only when remove_fun_data is true (default)


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@392 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-02-25 03:29:44 +00:00
Tomasz Sowa 8e85a398d6 added: FunInfo<>::fun_data
now we have a pointer to FunData struct
         by default the pointer is null
         you can create an object of a class derived from FunData
         an set the pointer to the object
         those pointers will be kept on the [for] stack
         and will be auto removed
         (not finished yet -- need some testing)
added:   to FunInfo<>::
         bool is_if;
         bool is_is;
         bool is_normal;
         bool is_filter;
removed: from FunInfo<>:
         bool is_for_first_iter;
changed: in FunInfo<>:
         int iter -> size_t iter
         now it indicates the number of a current iteration for the [for] statement 
         for other statements than [for] this is always zero
         (the same old behaviour as before revision 331)
added:   in FunInfo<>:
         size_t last_iter
         it indicates the number of a previous [for] iteration
         for a [for] it returns not the current iterator but a value from a previous [for]



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@391 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-02-24 12:04:36 +00:00
Tomasz Sowa 4480268172 added: two flags to FunInfo<> struct:
// indicates that this function is from [for ...] statement
       bool is_for;

       // indicates that this function is from [for ...] statement
       // and this is a first iteration (iter=0 too)
       // this is only for convenience -- you don't have to check is_for and iter==0
       bool is_for_first_iter;



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@380 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-01-17 22:57:06 +00:00
Tomasz Sowa 71bec1049b updated Makefile
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@378 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-01-12 03:20:01 +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 2c3a2160af moving utf8.cpp from ezc to pikotools
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@367 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-01-11 11:15:36 +00:00
Tomasz Sowa faaac0de8a moving utf8.h from ezc to pikotools
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@366 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-01-11 11:15:20 +00:00
Tomasz Sowa c6b4db0aa9 added: methods Begin() and End() to Functions<>
we can iterate through the whole functions table


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@360 e52654a7-88a9-db11-a3e9-0013d4bc506e
2012-01-06 12:05:10 +00:00
Tomasz Sowa b4f7d4b8de added: size_t UTF8ToInt(const char * utf8, int & res, bool & correct)
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@359 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-08-27 19:14:20 +00:00
Tomasz Sowa 542587e5e8 deleted debug log
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@358 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-07-15 02:09:40 +00:00
Tomasz Sowa fb05eb6860 added some debug log
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@357 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-07-13 23:15:12 +00:00
Tomasz Sowa 8df9aa86a0 small changes in Makefile
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@356 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-06-06 20:36:19 +00:00
Tomasz Sowa 2d304a9714 changed to UTF-8: added support for UTF-16 when wchar_t is 2 bytes long
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@345 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-05-25 21:43:40 +00:00
Tomasz Sowa 861269383e changed: [is...] statements use only the output string now (when comparing)
previously they used FunInfo::res, now they use FunInfo::out
         and the out string is not put to the main output stream
added:   FunInfo<>::case_sensitive (default true)
         when false then [is] statement is comparing in case insensitive manner
changed: the out stream in [if...] [for] statements
         the output text is ingored now



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@344 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-04-26 17:17:06 +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 3c85fa1a75 fixed: the exception for if-index in pattern (when caching is used)
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@332 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-01-23 14:16: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 5108495540 changed in Generator<>:
StreamType
 we use method write where the content should not be escaped (html escaping)
 we use operator<< where the content can be escaped (such as error messages)

PrintSpecialText() and PrintNormalText() are a little faster now
we use 'write' for a whole text instead of printing each character



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@328 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-11-25 01:55:32 +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
Tomasz Sowa b5ea2514e2 added to Generator:
void RecognizeSpecialChars(bool spec);
  recognizing some special characters in text patterns (item_text in Patterns)
  \r will be a carriage return (13)
  \n will be a new line (10)
  \t will be a tabulator (9)
  \s will be a space
  \\ will be one '\'
  default: false

void TrimWhite(bool trim);
  trimming white characters (at the beginning and at the end of an item_text)
  (special char \s if enabled is not treated as a white character here)
  default: false 

void SkipNewLine(bool skip);
  skipping new line characters (from the whole string in an item_text)
  but you can use a new line character written as "\n" (if special chars are turn on)
  default: false
						       


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@305 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-09-07 23:52:41 +00:00
Tomasz Sowa 376fe414f8 small refactoring: changed item_table to item_tab
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@300 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-08-17 23:22:55 +00:00
Tomasz Sowa 7554630395 changed: testing file names
now it is allowed to use a slash (we can use directories)
only ".." is not allowed (you cannot go up in a directory structure)


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@299 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-08-02 18:47:19 +00:00
Tomasz Sowa 573d241dc1 changed:
functions can have more than one parameter and the parameters can be used in [if...] statements too

sample:
[normal_function "par1" "par2" "par3"]
[if-one function "par1" "par2" "par3"]...[end]

each function can have its own parameters:
[if-one function1 "par1" "par2" "par3" function2 "par" "par2"]...[end]

changed:
[is] is now [if] (not exactly but very similar)
[is-no] is now [if-no] (the same)

[if] and [if-no] are taking one function (with or without arguments)
sample:
[if function]...[end]
[if function "par1"]...[end]
[if function "par1" "par2" "par3" "par4"]...[end]

[is] is taking two functions now and evaluates them to boolean value
(variables are also evaluated to boolean - if not empty that means true)

[is function1 function2]...[end]
[is variable1 variable2] either variable1 and variable2 are empty or both are not empty
(they don't have to be equal)[end]

added:
[if-any-no fun1 fun2 fun3] the three functions have to return false [end] 
[if-one-no fun1 fun2 fun3] one the the three functions have to return false [end]

removed:
extracting the unix directory from the file name (in patterns)
you have to call Pattern::Directory() method first to set directories



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@298 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-07-19 23:07:00 +00:00
Tomasz Sowa c807d1c9b3 as a white character can be ascii 160 code (nonbreakable space)
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@297 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-06-30 18:43:33 +00:00
Tomasz Sowa b89c6daa7d added: an optional string parameter to normal statement e.g. [function "parameter"]
parameters to "for" statement  [for function "parameter"]
changed: in Info struct there is a "par" std::string reference now
changed: Info::result to Info::res
removed: Info::is


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@295 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-05-30 21:07:15 +00:00
Tomasz Sowa f65178dd0e fixed: when Pattern::allow_include was false then nothing was read
added: ezc can use the logger from winix
added: we check how many [include] directive was called
       (if more than 100 then we break - supposing infinite loop)
added: in Pattern we read from two directories
       if a file is not in the first directory then we try to read
       from the other one




git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@292 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-02-15 00:19:31 +00:00
Tomasz Sowa bb00f23f29 changed: limits in generator
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@291 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-02-13 19:55:51 +00:00
Tomasz Sowa 31156d33f3 added: directive [is-no ...] negative to [is ...]
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@290 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-02-11 20:03:51 +00:00
Tomasz Sowa e71c213ad1 added: Pattern::Clear()
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@282 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-01-28 16:14:47 +00:00
Tomasz Sowa b2aacc2da3 changed: [is ...] command
struct Info doesn't have out_string now



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@281 e52654a7-88a9-db11-a3e9-0013d4bc506e
2010-01-25 05:19:54 +00:00
Tomasz Sowa dbe91a6d91 added: Patter::delete_all_white flag
if true all text-items which have only white characters (with new lines as well)
       will be deleted
       this not actually delete the whole item but only the string
       the item will be present with an empty string
       default: false



git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@260 e52654a7-88a9-db11-a3e9-0013d4bc506e
2009-12-09 00:34:17 +00:00
Tomasz Sowa 9b4586d7be small changes in Makefile
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@241 e52654a7-88a9-db11-a3e9-0013d4bc506e
2009-11-13 21:10:06 +00:00
Tomasz Sowa 141e1f67b3 added: Pattern::allow_include flag (default true)
if false there is no allowed [include ...] directive
       (this directive will be skipped)
added: Pattern::ParseString(const std::string & str);
       Pattern::ParseString(const char * str);
       can create the pattern from a string


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@94 e52654a7-88a9-db11-a3e9-0013d4bc506e
2009-01-23 23:18:54 +00:00
Tomasz Sowa f8f55eae77 added: src/Makefile and src/Makefile.dep
the ezc.a library is built now


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@93 e52654a7-88a9-db11-a3e9-0013d4bc506e
2008-12-30 01:21:30 +00:00
Tomasz Sowa 0b88257e08 added: directive [if-no fun1 fun2 ...]
if fun1 fun2 ... return false
       then the content is evaluated
changed: [if-one fun1 fun2 ...]
       when a function (from left to right) returns true 
       then the content is evaluated
       (previous all functions were called)


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@91 e52654a7-88a9-db11-a3e9-0013d4bc506e
2008-12-23 20:08:11 +00:00
Tomasz Sowa 0760313ec3 changing version info to: 0.9.1
git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@89 e52654a7-88a9-db11-a3e9-0013d4bc506e
2008-12-10 01:59:39 +00:00
Tomasz Sowa 54be9c0489 changed: the interface in this version is not the same as previous
added: class Functions, you can define your own set of functions and then
       put them into the Generator
added: variables
       parser is able to parse the "def" directive:
       [def variable "value"]
       [def variable another_variable]
       [def variable another_function]
       variables are put into a Functions object
added: class Info has a reference to std::ostringstream (out)
added: limit for a "for" directive
       limit for the whole tree (when genereting)
       this is to protect for a case when someone makes an infinite loop
changed: many small changes


git-svn-id: svn://ttmath.org/publicrep/ezc/trunk@88 e52654a7-88a9-db11-a3e9-0013d4bc506e
2008-12-10 01:46:10 +00:00
Tomasz Sowa 69bd57f428 added Ezc::SplitUnixDirectory(...)
it's possible to give the path into the working directory in the Pattern::ParseFile(...) without using the Pattern::Directory(...)
added [#] (commentary)
[include] now can open a file only in a specific directory


git-svn-id: svn://ttmath.org/publicrep/cgi/ezc/trunk@9 e52654a7-88a9-db11-a3e9-0013d4bc506e
2007-01-27 13:52:18 +00:00
Tomasz Sowa e42117714a completely rewritten
* Ezc is now a namespace
 * added Ezc::Pattern
 * added Ezc::Generator
added [if-one]
fixed a problem with memory lack


git-svn-id: svn://ttmath.org/publicrep/cgi/ezc/trunk@7 e52654a7-88a9-db11-a3e9-0013d4bc506e
2007-01-26 19:29:36 +00:00
Tomasz Sowa 043a5f2131 Ezc::ReadFile has gone
Ezc::CreateTree takes a name of an input file
added [for ...]
added [if-index ...]
added [is ....]
added [include...] (not all finished)


git-svn-id: svn://ttmath.org/publicrep/cgi/ezc/trunk@6 e52654a7-88a9-db11-a3e9-0013d4bc506e
2007-01-25 21:42:54 +00:00
Tomasz Sowa ac632987f3 added [for]
EzcInfo pushed into Ezc::
added info about a wrong directive


git-svn-id: svn://ttmath.org/publicrep/cgi/ezc/trunk@5 e52654a7-88a9-db11-a3e9-0013d4bc506e
2007-01-25 08:25:40 +00:00
Tomasz Sowa 700dcd0571 initial import
git-svn-id: svn://ttmath.org/publicrep/cgi/ezc/trunk@4 e52654a7-88a9-db11-a3e9-0013d4bc506e
2007-01-24 20:01:55 +00:00