// demoVectorAccess.txt

//-------------------------------------------------------------------------------------------------
// All types:
// void, bool, char, int, float, double, digit, [interval],
// string, vector, set, map, graph, program, function, module.  *


// Container types:
// vector, set, map.

void main(){

	W = "GOOD!";

	X = {"OK",1,&W};

	Data = {
		Q: {1,4,7,888},
		B: {1,"ABCD",&X},
		S: (set){7,7,3,2,1}
		};

	//trace(Data.export());
	//trace(Data[{"B",2,"*",2,"*"}]); // .export()
	command = PROGRAM("{0,1}");
	command.setSub({0},command);

	trace(command);



	getstring();
}

// getFunction(getThisFunctionName()) - вернёт функцию, в которой оно находится.

// program# .getSub({}) - вернёт под выражение (под команду).
// program# .setSub({},PROGRAM("X")) - заменит под выражение.
// program# .getRowSize({}) - вернёт количество операндов в указанном операторе.

// function# .getLabel(10) - вернёт идентификатор блока с указанной меткой
// function# .setCommand(id,command) - 
//			заменит содержание (команду) блока, схемы алгоритма данной функции, указанной командой.




/*
	command = PROGRAM("a*(b+n)");
	//command.setSub({},PROGRAM("1"));
	trace(command);
	//trace(command.getRowSize({}));

	F = getFunction(getThisFunctionName());
	trace(F.exportText());
	id = F.getLabel(10);
	F.setCommand(id,command);

	<label:10>
*/
