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
This commit is contained in:
2015-03-08 02:31:21 +00:00
parent b519c79a3e
commit 6b42cdf76e
7 changed files with 256 additions and 406 deletions

View File

@@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2007-2014, Tomasz Sowa
* Copyright (c) 2007-2015, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -89,7 +89,8 @@ void Item::Clear()
text.clear();
file_name.clear();
functions.clear();
has_function = false;
function.Clear();
type = item_none;
}
@@ -123,8 +124,10 @@ Item::Item()
Item::Item(const Item & i) : type(i.type), text(i.text), file_name(i.file_name), functions(i.functions)
Item::Item(const Item & i) : text(i.text), file_name(i.file_name), function(i.function)
{
type = i.type;
has_function = i.has_function;
CopyItemTable(i);
}
@@ -134,8 +137,9 @@ Item & Item::operator=(const Item & i)
{
type = i.type;
text = i.text;
file_name = i.file_name;
functions = i.functions;
file_name = i.file_name;
has_function = i.has_function;
function = i.function;
ClearItems();
CopyItemTable(i);
@@ -173,8 +177,7 @@ void Item::ClearCache(Item::Function & function)
void Item::ClearCache()
{
for(size_t f = 0; f < functions.size() ; ++f)
ClearCache(functions[f]);
ClearCache(function);
for(size_t i = 0; i < item_tab.size() ; ++i)
item_tab[i]->ClearCache();