Commit Graph

  • 632c81812f Makefile.dep Tomasz Sowa 2019-01-11 19:09:43 +00:00
  • 1e85922d4e changed: PatternParser now uses Log from pikotools Tomasz Sowa 2018-11-23 18:33:17 +00:00
  • bf62d44346 fixed: program_mode was not set in cctor fixed: container was not correctly parsed (in template mode) Tomasz Sowa 2018-11-01 21:52:33 +00:00
  • a6b767a223 some work on a 'program mode' Tomasz Sowa 2018-10-30 20:59:17 +00:00
  • c825c85878 start working on a 'program mode' a new syntax for simple scripting Tomasz Sowa 2018-10-29 23:50:10 +00:00
  • 54387e43bb Makefile.o.dep Tomasz Sowa 2018-05-10 17:25:04 +00:00
  • eace4d41cc changed: in PatternParser: the way how nested ezc funcions are parsed now we can have: [fun] [[fun]] or even [[[fun]]] also when using keywords: [if fun] [if [fun]] or [if [[[[fun]]]]] Tomasz Sowa 2016-08-25 13:11:33 +00:00
  • 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 Tomasz Sowa 2016-04-04 15:53:11 +00:00
  • 18696d412b added a 'for_name' (std::string*) in Stack this is a user defined name of a [for] statement Tomasz Sowa 2016-03-23 15:22:59 +00:00
  • 2190fae789 changed: using relative paths calculated with relative_path now Tomasz Sowa 2016-03-18 09:22:13 +00:00
  • 0e99ded5b8 added: include path to ezc to Makefile (it is referenced from Winix) Tomasz Sowa 2016-02-01 11:12:26 +00:00
  • a1ea2e3ccd changed: OutStreams<>::streams_map should not have null pointers to StreamType objects Tomasz Sowa 2015-11-16 12:09:34 +00:00
  • 0dc807dbff some #include moved in other places Tomasz Sowa 2015-11-15 21:45:49 +00:00
  • c3deb960c5 fixed: 'typename' keyword is missing in some places Tomasz Sowa 2015-11-12 11:08:53 +00:00
  • 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) Tomasz Sowa 2015-11-12 09:53:20 +00:00
  • 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) Tomasz Sowa 2015-06-14 18:20:00 +00:00
  • 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] Tomasz Sowa 2015-03-08 02:31:21 +00:00
  • 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 Tomasz Sowa 2014-11-02 17:26:56 +00:00
  • 6f1e2eb518 removed: svn:executable atribute from files Tomasz Sowa 2014-11-01 17:14:39 +00:00
  • ad50c01b15 deleted: vars.h and vars.cpp as they are not needed now Tomasz Sowa 2014-10-28 17:52:45 +00:00
  • 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 Tomasz Sowa 2014-10-28 17:46:24 +00:00
  • 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 Tomasz Sowa 2014-10-21 07:21:20 +00:00
  • 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 Tomasz Sowa 2014-10-19 21:09:34 +00:00
  • 6f9f274e08 removed: AssignString() functions now we are using UTF-8 <-> wide characters conversions Tomasz Sowa 2014-10-19 05:46:49 +00:00
  • 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() Tomasz Sowa 2014-10-19 05:42:25 +00:00
  • ad2fb11a5c fixed: compile error in item.h (in CacheFunctions) fixed: Pattern::ClearCache() was missing Tomasz Sowa 2014-10-17 23:56:30 +00:00
  • 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 Tomasz Sowa 2014-10-17 22:14:28 +00:00
  • 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. Tomasz Sowa 2014-10-17 21:48:11 +00:00
  • 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 Tomasz Sowa 2014-10-17 21:36:55 +00:00
  • 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 Tomasz Sowa 2014-10-11 19:56:48 +00:00
  • fd75a1f119 copied: pattern.cpp -> patternparser.cpp Tomasz Sowa 2014-10-11 19:01:17 +00:00
  • d9a8426ebc copied: parser.h -> patternparser.h Tomasz Sowa 2014-10-11 19:00:57 +00:00
  • 759be64379 changed: now Patterns are read with UTF-8 enabled by default Tomasz Sowa 2014-10-09 20:46:58 +00:00
  • ef16ae4ebd added: prefix/namespace Winix:: when using winix logger Tomasz Sowa 2014-02-12 16:26:48 +00:00
  • 417e52a5a1 added some files/directories to svn:ignore Tomasz Sowa 2013-11-25 03:39:51 +00:00
  • 5de31cfe41 fixed: renamed a local variable in Generator (it did not compile) Tomasz Sowa 2013-11-17 21:53:53 +00:00
  • 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 Tomasz Sowa 2013-11-07 10:16:10 +00:00
  • 23ce3e83df changed: if EZC_USE_WINIX_LOGGER macro is defined then we add -I../../winix flag for compiling Tomasz Sowa 2013-10-15 23:48:06 +00:00
  • ac37982ee7 fixed: in Generator: empty_stream() should be inited with its default cctor (an error when compiling with clang) Tomasz Sowa 2012-06-30 23:24:09 +00:00
  • 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) Tomasz Sowa 2012-03-03 20:58:55 +00:00
  • 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 Tomasz Sowa 2012-02-27 17:39:46 +00:00
  • 4fc842ad91 added: to FunInfo<>: bool remove_fun_data fun_data is removed only when remove_fun_data is true (default) Tomasz Sowa 2012-02-25 03:29:44 +00:00
  • 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] Tomasz Sowa 2012-02-24 12:04:36 +00:00
  • 4480268172 added: two flags to FunInfo<> struct: // indicates that this function is from [for ...] statement bool is_for; Tomasz Sowa 2012-01-17 22:57:06 +00:00
  • 71bec1049b updated Makefile Tomasz Sowa 2012-01-12 03:20:01 +00:00
  • a728f86e05 now ezc is using 'pikotools' (utf8) Tomasz Sowa 2012-01-12 02:32:04 +00:00
  • 2c3a2160af moving utf8.cpp from ezc to pikotools Tomasz Sowa 2012-01-11 11:15:36 +00:00
  • faaac0de8a moving utf8.h from ezc to pikotools Tomasz Sowa 2012-01-11 11:15:20 +00:00
  • c6b4db0aa9 added: methods Begin() and End() to Functions<> we can iterate through the whole functions table 0.9.5 Tomasz Sowa 2012-01-06 12:05:10 +00:00
  • b4f7d4b8de added: size_t UTF8ToInt(const char * utf8, int & res, bool & correct) Tomasz Sowa 2011-08-27 19:14:20 +00:00
  • 542587e5e8 deleted debug log Tomasz Sowa 2011-07-15 02:09:40 +00:00
  • fb05eb6860 added some debug log Tomasz Sowa 2011-07-13 23:15:12 +00:00
  • 8df9aa86a0 small changes in Makefile Tomasz Sowa 2011-06-06 20:36:19 +00:00
  • 2d304a9714 changed to UTF-8: added support for UTF-16 when wchar_t is 2 bytes long Tomasz Sowa 2011-05-25 21:43:40 +00:00
  • 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 Tomasz Sowa 2011-04-26 17:17:06 +00:00
  • 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 Tomasz Sowa 2011-01-26 12:42:49 +00:00
  • 3c85fa1a75 fixed: the exception for if-index in pattern (when caching is used) Tomasz Sowa 2011-01-23 14:16:49 +00:00
  • fd2194623a changed: now [for] statements with the same function can be nested sample: [for my_function] [for my_function] foo [end] [end] Tomasz Sowa 2011-01-14 23:59:30 +00:00
  • c4f5f79218 fixed: Item::Item(const Item & i) should clear the item table Tomasz Sowa 2010-12-06 00:22:38 +00:00
  • 0b09b5454f added: Pattern::CacheFunctions(Functions<StreamType> & fun) you can cache all functions (their addresses) in the pattern Tomasz Sowa 2010-11-25 22:39:58 +00:00
  • 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) Tomasz Sowa 2010-11-25 01:55:32 +00:00
  • 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 Tomasz Sowa 2010-11-23 21:59:52 +00:00
  • 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 Tomasz Sowa 2010-11-22 01:23:32 +00:00
  • 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 Tomasz Sowa 2010-09-07 23:52:41 +00:00
  • 376fe414f8 small refactoring: changed item_table to item_tab Tomasz Sowa 2010-08-17 23:22:55 +00:00
  • 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) Tomasz Sowa 2010-08-02 18:47:19 +00:00
  • 573d241dc1 changed: functions can have more than one parameter and the parameters can be used in [if...] statements too Tomasz Sowa 2010-07-19 23:07:00 +00:00
  • c807d1c9b3 as a white character can be ascii 160 code (nonbreakable space) Tomasz Sowa 2010-06-30 18:43:33 +00:00
  • 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 Tomasz Sowa 2010-05-30 21:07:15 +00:00
  • 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 Tomasz Sowa 2010-02-15 00:19:31 +00:00
  • bb00f23f29 changed: limits in generator Tomasz Sowa 2010-02-13 19:55:51 +00:00
  • 31156d33f3 added: directive [is-no ...] negative to [is ...] Tomasz Sowa 2010-02-11 20:03:51 +00:00
  • e71c213ad1 added: Pattern::Clear() Tomasz Sowa 2010-01-28 16:14:47 +00:00
  • b2aacc2da3 changed: [is ...] command struct Info doesn't have out_string now Tomasz Sowa 2010-01-25 05:19:54 +00:00
  • 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 Tomasz Sowa 2009-12-09 00:34:17 +00:00
  • 9b4586d7be small changes in Makefile Tomasz Sowa 2009-11-13 21:10:06 +00:00
  • 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 Tomasz Sowa 2009-01-23 23:18:54 +00:00
  • f8f55eae77 added: src/Makefile and src/Makefile.dep the ezc.a library is built now Tomasz Sowa 2008-12-30 01:21:30 +00:00
  • 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) 0.9.2 Tomasz Sowa 2008-12-23 20:08:11 +00:00
  • 0760313ec3 changing version info to: 0.9.1 0.9.1 Tomasz Sowa 2008-12-10 01:59:39 +00:00
  • 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 Tomasz Sowa 2008-12-10 01:46:10 +00:00
  • bf585d3716 moving cgi/ezc into / Tomasz Sowa 2008-12-10 00:56:56 +00:00
  • 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 0.9.0 Tomasz Sowa 2007-01-27 13:52:18 +00:00
  • e42117714a completely rewritten * Ezc is now a namespace * added Ezc::Pattern * added Ezc::Generator added [if-one] fixed a problem with memory lack Tomasz Sowa 2007-01-26 19:29:36 +00:00
  • 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) Tomasz Sowa 2007-01-25 21:42:54 +00:00
  • ac632987f3 added [for] EzcInfo pushed into Ezc:: added info about a wrong directive Tomasz Sowa 2007-01-25 08:25:40 +00:00
  • 700dcd0571 initial import Tomasz Sowa 2007-01-24 20:01:55 +00:00