Commit Graph

137 Commits

Author SHA1 Message Date
Tomasz Sowa 3001707c69
add QT Creator files to .gitignore 2023-10-22 23:37:18 +02:00
Tomasz Sowa 5814bfca0d
fix: correctly initialize FunInfo<> object when calling a model field 2023-02-22 00:38:36 +01:00
Tomasz Sowa 369cefacdf fix: do not evaluate content in [for] statement if the function was not found 2022-08-01 15:20:02 +02:00
Tomasz Sowa 43fbf3b56c make depend 2022-07-30 03:32:45 +02:00
Tomasz Sowa d023abce74 fix: set the last boolean result when evaluating a space structure 2022-07-29 03:24:19 +02:00
Tomasz Sowa 3095d2d31f add LICENSE file 2022-07-03 10:59:48 +02:00
Tomasz Sowa 08da4a56b8 change licence from 3-Clause BSD to 2-Clause BSD 2022-07-03 08:54:36 +02:00
Tomasz Sowa cd4d8e025d add src/version.h with macros: EZC_VERSION_MAJOR, EZC_VERSION_MINOR, EZC_VERSION_PATCH 2022-06-30 13:20:57 +02:00
Tomasz Sowa a03e3f5d21 add global Makefile
src/Makefile uses now 'find' for looking for *.cpp files
and we don't need Makefile.o.dep anymore
2022-06-26 06:16:09 +02:00
Tomasz Sowa c31c7dfb63 make depend 2022-04-26 23:48:00 +02:00
Tomasz Sowa 0c058d4313 added to Models: ModelsMap & GetMap() 2021-10-12 19:56:59 +02:00
Tomasz Sowa d8692f6ed5 added options: "index" and "index-one" for space tables e.g. [table_name "index-one"] 2021-09-23 14:03:26 +02:00
Tomasz Sowa b047a10e8d added: "this" virtual field for a table - only if the next field is not an object
       [for space_object]
       	    [space_object.this] instead of [space_object "current"]
       "this" can be nested, e.g. if we have two nested tables:
       [for space_object]
          [for space_object.this]

removed: "current" parameter for tables
2021-09-23 04:02:34 +02:00
Tomasz Sowa a983698e3d Generator: some methods take std::vector<Var> parameters not through a reference 2021-08-17 17:33:51 +02:00
Tomasz Sowa 6a8cb019f5 added parameters "only_date" and "only_time" when printing a pt::Date 2021-08-14 19:40:05 +02:00
Tomasz Sowa b0afdf7f0f check block arguments e.g. [1] at the beginning - before all other lookups 2021-08-14 17:44:11 +02:00
Tomasz Sowa b956f1c401 fixed: fields table was not copied in Item::Function::operator=(...) 2021-08-14 17:40:40 +02:00
Tomasz Sowa 5e47313af8 fixed: when incrementing space tables iterators in [for] statements we should invalidate indices for nested tables 2021-08-13 21:44:07 +02:00
Tomasz Sowa 44407c2a4b changed: added two new parameters to Generator class: template<class StreamType, bool is_pikotools_stream = false, bool is_autoescape_stream = false> class Generator
changed: added one new parameter to Outstreams class: template<class StreamType, bool is_pikotools_stream = false> class OutStreams
2021-07-12 23:00:11 +02:00
Tomasz Sowa ae6a5c52a1 fixed in Generator: ezc_frames_stack_index was not initialized 2021-07-06 23:56:29 +02:00
Tomasz Sowa 9f416d31de Merge branch 'api2021' 2021-07-06 22:46:36 +02:00
Tomasz Sowa b9b9a881e0 added "roman" and "no_sec" parameters when serializing a date 2021-07-06 21:47:42 +02:00
Tomasz Sowa 995cccdace add two new ezc statements: [if-def ...] and [if-not-def ...]
[if-def my_function] returns true if my_function is defined somewhere (either a model, model container, space, date, block, function or variable)
add support for "noescape" or "raw" parameters to Space fields
fixed: CallWrapper() didn't return a status if a model/space/date/container was found
2021-07-02 20:23:20 +02:00
Tomasz Sowa 849b3e9ecc changed the way how we iterate through Models, instead of ModelWrapper now we have Wrapper which has pointers to: model, model container, space or date 2021-07-01 23:21:20 +02:00
Tomasz Sowa acb42f453c added support for two new ezc statements for clearing/trimming text nodes
[ezc clear_all_white_nodes "yes"]...[end] - will clear a text node if the text consists of only white characters
[ezc trim_text_nodes "yes"]...[end] - will trim text nodes (removes white characters at the beginning and at the end)

"yes" is assumed by default if not present, also "no" can be specified to change the behavior
2021-06-29 23:38:38 +02:00
Tomasz Sowa c2283f70d4 Generator when printing Model/Space is recognizing now such parameters:
- "dump" or "dump_to_space" parameters to make a dump in Space format
- "dump_to_json" parameter to make json dump
- "pretty" parameter to make the dump pretty (with new lines and indents)
2021-06-27 22:42:00 +02:00
Tomasz Sowa 3926793a17 fixed in Generator::CallSpace() when a middle field was a table: last_res should be set only for last field
refactoring in Generator::CallSpace()
2021-06-25 16:16:30 +02:00
Tomasz Sowa 5bd8eef3f2 make depend 2021-06-24 20:53:26 +02:00
Tomasz Sowa 16bce07c75 fixed: in Space::CallSpace() we should not increment field index when a new table item is prepared 2021-06-23 21:56:04 +02:00
Tomasz Sowa 87ee461dd1 make depend 2021-06-23 17:02:19 +02:00
Tomasz Sowa 526d57b72e added possibility to take a Space struct in Models: Models::Add(const std::wstring & name, pt::Space & space); 2021-06-23 06:53:43 +02:00
Tomasz Sowa eda276356f added possibility to iterate through Space object in Models objects 2021-06-22 18:01:47 +02:00
Tomasz Sowa e442ee4720 make depend 2021-06-20 16:55:39 +02:00
Tomasz Sowa 615bad7372 renamed macro: EZC_HAS_SPECIAL_STREAM -> EZC_GENERATOR_HAS_PT_STREAM
added macro EZC_GENERATOR_HAS_WINIX_STREAM which is used by Generator::CopyStream(pt::WTextStream & src_stream, StreamType & dst_stream, bool should_escape)
if this macro is defined then Generator is able to escape output stream
2021-06-20 16:54:55 +02:00
Tomasz Sowa 9c4fe51790 Generator uses now pt::Log as a logger
- added method SetLogger(pt::Log & logger)
- removed SetCommentary(...) methods
- added logs when a model is not found

PatternParser uses only pt::Log
- removed SetCommentary(...) methods
2021-06-19 20:18:30 +02:00
Tomasz Sowa d76bb9349b added typename keyword to Generator::CallModelHelper Generator::FindLastModelWrapper(...) 2021-06-18 18:55:39 +02:00
Tomasz Sowa 4a64336864 added support for morm containers with pointers to models 2021-06-17 21:33:28 +02:00
Tomasz Sowa abb60def6e added .editorconfig file 2021-06-16 14:21:08 +02:00
Tomasz Sowa 9022d4a5fc changed how models from morm library are used
now we are using morm::ModelWrapper... classes as wrappers on models and list/vector of models
and Models class is using these wrappers
this allows us to iterate through list/vectors in [for...] statements
2021-06-16 14:16:49 +02:00
Tomasz Sowa e6fd9aad37 added basic support for calling variables and functions from morm::Model objects 2021-05-31 18:37:09 +02:00
Tomasz Sowa 3b858650f2 Merge branch 'api2021' 2021-05-28 16:11:50 +02:00
Tomasz Sowa 052f803eac renamed [ezc out ...] statement to [ezc frame ...], similar [out ...] to [frame ...] 2021-05-28 16:10:16 +02:00
Tomasz Sowa 0bcaca4770 Merge pull request 'api2021 part I' (#5) from api2021 into master
Reviewed-on: #5
2021-05-27 10:41:16 +02:00
Tomasz Sowa 0ac8e05c04 changed semantic of [def] statements:
- [def] is used to define a variable (like before)
  but if we assign a string such as [def var "string"] the string is evaluated to bool
  in a different way: empty string is false, not empty string is true
- added [def?] statement - similar like [def] but define a variable only if such
  a variable is not already defined
- added [let] statement - similar like [def] but with lazy evaluation (it is an alias to a function)
  if it is called to assign a string e.g. [let var "string"] then this has the
  same meaning like [def] - an alias is only created when we assign a function e.g. [let var my_function]
  both [def] and [let] are using the same Vars object
- added [let?] - make an alias but only if such a variable is not already defined
- a std::map of variables moved outside of Generator
  added method void SetVariables(Vars & variables);
- fixed: a result status was not correctly propagated when evaluating [def] statements,
  this was in Call(...) function: last_res from variables was set in Find()
  but later was overwritten by Call(...) called for parameters (recursively)
2021-05-23 10:02:51 +02:00
Tomasz Sowa 6f6df9524c updated to the new pikotools api: changed utf8 functions PascalCase to snake_case 2021-05-21 00:32:05 +02:00
Tomasz Sowa cd1c24d0a5 updated to new pikotools api: namespace PT renamed to pt 2021-05-20 16:12:41 +02:00
Tomasz Sowa d1a15ad153 make depend 2021-05-14 21:02:56 +02:00
Tomasz Sowa 29c7163d9b updated to the new pikotools api (api2021 branch) 2021-05-14 21:02:27 +02:00
Tomasz Sowa b289aa7f0a added .gitignore file 2021-02-17 17:06:12 +01:00
Tomasz Sowa 9e82aa9bcf src/Makefile.dep
git-svn-id: svn:// e52654a7-88a9-db11-a3e9-0013d4bc506e
2019-03-06 18:20:12 +00:00