/*
 * built-in program copyright (C) 2009 - 2011 H.Niwa
 */


/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA.
 */

#include "config.h"

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#include <string>
#include <complex>

#include "syserr.h"

#include "bin_node.h"
#include "gc.h"
#include "var.h"
#include "pred.h"
#include "context.h"
#include "unify.h"
#include "builtin.h"
#include "sysmodule.h"

int HelpPrint(std::string s);

int HelpBuiltinCmd();
int HelpSysCmd();
int HelpCompilerCmd();
int HelpMatrixCmd();
int HelpListCmd();
int HelpGeneratorCmd();

int HelpBuiltin(const char* name);
int HelpSys(const char* name);
int HelpCompiler(const char* name);
int HelpMatrix(const char* name);
int HelpList(const char* name);
int HelpGenerator(const char* name);

#if HAVE_LIBNCURSES
int HelpCursesCmd();
int HelpCurses(const char* name);
#endif /* HAVE_LIBNCURSES */

int Help(Context* cx, Node* goalscar, List* module)
{
	int ll = ListLength(goalscar->Cdr());

	if (ll == 0) {
		printf("\n");
		HelpBuiltinCmd();
		HelpSysCmd();

#if HAVE_LIBNCURSES
		HelpCursesCmd();
#endif /* HAVE_LIBNCURSES */

		HelpCompilerCmd();
		HelpMatrixCmd();
		HelpListCmd();
		HelpGeneratorCmd();
		printf(
			 "Details will be displayed when \"help ITEM\" is inputted. \n" \
			  "Or please input \"help builtin\", \"help sys\", \"help curses\", \"help matrix\", \"help list\", \"help generator\". \n");
		return 1;
	} else if (ll == 1) {

		if (goalscar->Cdr()->Car()->Eq(mka("builtin"))) {
			HelpBuiltin("");
			return 1;
		} else if (goalscar->Cdr()->Car()->Eq(mka("sys"))) {
			HelpSys("");
			return 1;
#if HAVE_LIBNCURSES
		} else if (goalscar->Cdr()->Car()->Eq(mka("curses"))) {
			HelpCurses("");
			return 1;
#endif /* HAVE_LIBNCURSES */
		} else if (goalscar->Cdr()->Car()->Eq(mka("compiler"))) {
			HelpCompiler("");
			return 1;
		} else if (goalscar->Cdr()->Car()->Eq(mka("matrix"))) {
			HelpMatrix("");
			return 1;
		} else if (goalscar->Cdr()->Car()->Eq(mka("list"))) {
			HelpList("");
			return 1;
		} else if (goalscar->Cdr()->Car()->Eq(mka("generator"))) {
			HelpGenerator("");
			return 1;
		}

		std::string s;
		if (goalscar->Cdr()->Car()->kind() == ATOM) {
			((Atom*)(goalscar->Cdr()->Car()))->toString(s);
			HelpPrint(s);
			return 1;
		}
	}
	return 0;
}

/**********************************************************************/
int HelpPrint(std::string s)
{
	if ((s == "alt") ) { 
		printf("<alt PRED...>\n");
		printf("\n");
		printf("	Alternative predicate execution is shown.\n");
		printf("	Even if the results of Argument PRED are true, false,\n");
		printf("	and unknown, it is certainly set to true.\n");
		printf("	It expresses [PRED...] as substitution.It uses by syntax\n");
		printf("	analysis as [] of the method of EBNF.\n");
		printf("\n");
	} else if ((s == "assert") || (s == "asserta") || (s == "assertz") ) { 
		printf("<assert CLAUSE>\n");
		printf("<asserta CLAUSE>\n");
		printf("<assertz CLAUSE>\n");
		printf("\n");
		printf("	CLAUSE is added.\n");
		printf("	asserta is added to a head and assertz is added at\n");
		printf("	the end.\n");
		printf("	assert is the same as asserta and is added to a head.\n");
		printf("\n");
	} else if ((s == "catch") ) { 
		printf("<catch VAR PRED ...>\n");
		printf("\n");
		printf("	The processing after that is interrupted when the throw \n");
		printf("	predicate is executed while executing the predicate of \n");
		printf("	the argument, the entire processing of this catch predicate \n");
		printf("	succeeds, and it ends. At that time, the argument of \n");
		printf("	the throw predicate is set to the variable of the catch \n");
		printf("	predicate. When all predicates of the argument are executed \n");
		printf("	without executing throw, '()' is set to the variable of \n");
		printf("	the catch predicate. \n");
		printf("\n");
	} else if ((s == "cd") ) { 
		printf("<cd PATH>\n");
		printf("\n");
		printf("	A current directory is moved to the PATH specified\n");
		printf("	by the argument.\n");
		printf("\n");
	} else if ((s == "compare") || (s == "comparef") ) { 
		printf("<compare EXPRESSION>\n");
		printf("<comparef EXPRESSION>\n");
		printf("\n");
		printf("	EXPRESSION is evaluated.\n");
		printf("	compare is an integer and comparef is comparison of\n");
		printf("	a float number.\n");
		printf("\n");
	} else if ((s == "dir") ) { 
		printf("<dir>\n");
		printf("\n");
		printf("	A current directory is displayed.\n");
		printf("\n");
	} else if ((s == "eachproc") || (s == "eachproc") ) { 
		printf("<eachproc (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
		printf("<eachproc RESULT_VAR (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
		printf("\n");
		printf("	The eachproc predicate is a function that executes \n");
		printf("	it in parallel specifying the number of parallel processes. \n");
		printf("	The process of the element of the specified list is \n");
		printf("	generated in parallel.  The control returns to the \n");
		printf("	called eachproc predicate when all processes generated \n");
		printf("	with eachproc end, and the result of all processes is collected. \n");
		printf("\n");
	} else if ((s == "edit") ) { 
		printf("<edit FILE-NAME>\n");
		printf("\n");
		printf("	A FILE-NAME is edited using the editor set as the \n");
		printf("	environment variables DEDITORPATH and EDITOR.\n");
		printf("\n");
	} else if ((s == "eq") ) { 
		printf("<eq ARG1 ARG2>\n");
		printf("\n");
		printf("	It compares, and if it is the same, it becomes true about ARG1 and ARG2. \n");
		printf("\n");
	} else if ((s == "erase") ) { 
		printf("<erase CLAUSE-NAME>\n");
		printf("\n");
		printf("	All the programs, variables and objects corresponding to CLAUSE-NAME are\n");
		printf("	deleted.\n");
		printf("\n");
	} else if ((s == "exit") ) { 
		printf("<exit>\n");
		printf("\n");
		printf("	Execution is interrupted on the way.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "f") || (s == "func") ) { 
		printf("<f VAR PRED...>\n");
		printf("<func VAR PRED...>\n");
		printf("\n");
		printf("	Execution evaluation of the function predicate contained\n");
		printf("	in PRED-LIST is carried out. A value is replaced.\n");
		printf("	After performing all, a result is set to a variable.\n");
		printf("\n");
	} else if ((s == "findall") ) { 
		printf("<findall PRED...>\n");
		printf("\n");
		printf("	PRED is performed and all the solutions are calculated.\n");
		printf("\n");
	} else if ((s == "firsteachproc") || (s == "firsteachproc") ) { 
		printf("<firsteachproc (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
		printf("<firsteachproc RESULT_VAR (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
		printf("\n");
		printf("	The firsteachproc predicate is a function that executes it \n");
		printf("	in parallel specifying the number of parallel processes. \n");
		printf("	The process of the element of the specified list is generated \n");
		printf("	in parallel. \n");
		printf("	The control returns to the called firsteachproc predicate when \n");
		printf("	as much as one all processes generated with firsteachproc end, \n");
		printf("	and the result of the process that ended first is collected. \n");
		printf("	As for the process of the remainder, it breaks off processing. \n");
		printf("\n");
	} else if ((s == "firstfor") || (s == "firstfor") || (s == "firstfor") || (s == "firstfor") ) { 
		printf("<firstfor (VAR lastvalue) PRED...>\n");
		printf("<firstfor (VAR initialvalue lastvalue) PRED...>\n");
		printf("<firstfor RESULT_VAR (VAR lastvalue) PRED...>\n");
		printf("<firstfor RESULT_VAR (VAR initialvalue lastvalue) PRED...>\n");
		printf("\n");
		printf("	The result of the predicate that ends first with true is set \n");
		printf("	to the result variable, and it breaks off processing thereafter \n");
		printf("	though the firstfor predicate operates just like the for sentence. \n");
		printf("\n");
	} else if ((s == "firstforeach") || (s == "firstforeach") ) { 
		printf("<firstforeach (VAR LIST) PRED...>\n");
		printf("<firstforeach RESULT_VAR (VAR LIST) PRED...>\n");
		printf("\n");
		printf("	The result of the predicate that ends first with true is set to \n");
		printf("	the result variable, and it breaks off processing thereafter \n");
		printf("	though the firstforeach predicate operates just like the foreach sentence. \n");
		printf("\n");
	} else if ((s == "firstnewproc") || (s == "firstnewproc") || (s == "firstnewproc") || (s == "firstnewproc") ) { 
		printf("<firstnewproc (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
		printf("<firstnewproc (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
		printf("<firstnewproc RESULT_VAR (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
		printf("<firstnewproc RESULT_VAR (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
		printf("\n");
		printf("	The firstnewproc predicate is a function that executes it \n");
		printf("	in parallel specifying the number of parallel processes. \n");
		printf("	The processes of the specified number are generated in parallel.  \n");
		printf("	The control returns to the called newproc predicate when \n");
		printf("	as much as one process generated with firstnewproc ends, \n");
		printf("	and the result of the process that ended first is collected. \n");
		printf("	As for the process of the remainder, it breaks off processing. \n");
		printf("\n");
	} else if ((s == "for") || (s == "for") || (s == "for") || (s == "for") ) { 
		printf("<for (VAR lastvalue) PRED...>\n");
		printf("<for (VAR initialvalue lastvalue) PRED...>\n");
		printf("<for RESULT_VAR (VAR lastvalue) PRED...>\n");
		printf("<for RESULT_VAR (VAR initialvalue lastvalue) PRED...>\n");
		printf("\n");
		printf("	The predicate of the specified number of times and an\n");
		printf("	argument is performed.\n");
		printf("	When the initial value is not specified, the value\n");
		printf("	from 0 is set to a VAR.\n");
		printf("	When the result variable is specified, the one that the \n");
		printf("	first arguments of the first executed predicate were \n");
		printf("	sequentially collected is returned to the result variable \n");
		printf("	as a list. \n");
		printf("\n");
	} else if ((s == "foreach") || (s == "foreach") ) { 
		printf("<foreach (VAR LIST) PRED...>\n");
		printf("<foreach RESULT_VAR (VAR LIST) PRED...>\n");
		printf("\n");
		printf("	PRED of arguments are performed for every element\n");
		printf("	of LIST.\n");
		printf("	The value of a list is set to a variable in order.\n");
		printf("	When the result variable is specified, the one that the \n");
		printf("	first arguments of the first executed predicate were \n");
		printf("	sequentially collected is returned to the result variable \n");
		printf("	as a list. \n");
		printf("\n");
	} else if ((s == "include") ) { 
		printf("<include FILENAME>\n");
		printf("\n");
		printf("	The library of a FILE-NAME is read.\n");
		printf("\n");
	} else if ((s == "help") || (s == "help") ) { 
		printf("<help>\n");
		printf("<help PRED>\n");
		printf("\n");
		printf("	HELP manual is displayed.\n");
		printf("	If it performs without an argument, the list of an built-in \n");
		printf("	predicate and the predicates of the library of a sys module \n");
		printf("	will be displayed.\n");
		printf("\n");
	} else if ((s == "is") ) { 
		printf("<is ARG1 ARG2>\n");
		printf("\n");
		printf("	It is true when the unification doing becoming the same as for ARG1 and ARG2. \n");
		printf("	When the item is a variable, it becomes substitution of the value. \n");
		printf("\n");
	} else if ((s == "let") || (s == "letf") || (s == "letc") ) { 
		printf("<let VAR = EXPRESSION>\n");
		printf("<letf VAR = EXPRESSION>\n");
		printf("<letc VAR = EXPRESSION>\n");
		printf("\n");
		printf("	Expression is calculated.\n");
		printf("	A calculation result is substituted when the left\n");
		printf("	side is a variable.\n");
		printf("	When the left side is a numerical value, it is\n");
		printf("	judged whether it is equal to a calculation result.\n");
		printf("	let calculates an integer and letf is calculation\n");
		printf("	of floating number.\n");
		printf("	letc calculates a complex number.\n");
		printf("\n");
	} else if ((s == "list") ) { 
		printf("<list [VAR]>\n");
		printf("\n");
		printf("	A program list is displayed.\n");
		printf("\n");
	} else if ((s == "load") ) { 
		printf("<load FILE-NAME>\n");
		printf("\n");
		printf("	The program of a FILE-NAME is read.\n");
		printf("\n");
	} else if ((s == "loop") ) { 
		printf("<loop PRED...>\n");
		printf("\n");
		printf("	A repetition of predicate execution is shown.\n");
		printf("	It was called inside. Failure of a predicate\n");
		printf("	will escape from a loop.\n");
		printf("	It is the predicate which is surely successful\n");
		printf("	by true,\n");
		printf("	It expresses {PRED...} as substitution.\n");
		printf("	It uses by syntax analysis as {} of the method\n");
		printf("	of EBNF.\n");
		printf("\n");
	} else if ((s == "ls") ) { 
		printf("<ls>\n");
		printf("\n");
		printf("	A current directory is displayed.\n");
		printf("\n");
	} else if ((s == "map") ) { 
		printf("<map (VAR LIST) PRED...>\n");
		printf("\n");
		printf("	PRED of arguments are performed for every element\n");
		printf("	of LIST.\n");
		printf("	The value of a list is set to a variable in order.\n");
		printf("\n");
	} else if ((s == "module") ) { 
		printf("<module VAR>\n");
		printf("\n");
		printf("	The library module used now is set to a variable.\n");
		printf("\n");
	} else if ((s == "new") ) { 
		printf("<new>\n");
		printf("\n");
		printf("	All program is cleared.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "newproc") || (s == "newproc") || (s == "newproc") || (s == "newproc") ) { 
		printf("<newproc (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
		printf("<newproc (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
		printf("<newproc RESULT_VAR (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
		printf("<newproc RESULT_VAR (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
		printf("\n");
		printf("	The newproc predicate is a function that executes \n");
		printf("	it in parallel specifying the number of parallel processes. \n");
		printf("	The processes of the specified number are generated in parallel.  \n");
		printf("	The control returns to the called newproc predicate when all \n");
		printf("	processes generated with newproc end, and the result of all \n");
		printf("	processes is collected. \n");
		printf("\n");
		printf("\n");
	} else if ((s == "nop") ) { 
		printf("<nop ...>\n");
		printf("\n");
		printf("	Nothing is operated for the argument. \n");
		printf("	This any predicate is not operated (No OPeration). \n");
		printf("	True is always returned. \n");
		printf("\n");
	} else if ((s == "not") ) { 
		printf("<not PRED...>\n");
		printf("	false is returned when predicate execution is true.\n");
		printf("	In false, true is returned.\n");
		printf("	In unknown, unknown is returned.\n");
		printf("\n");
	} else if ((s == "noteq") ) { 
		printf("<noteq ARG1 ARG2>\n");
		printf("\n");
		printf("	If it compares, and it is not the same, it becomes true about ARG1 and ARG2.\n");
		printf("\n");
	} else if ((s == "obj") ) { 
		printf("<obj OBJECTNAME PRED...>\n");
		printf("\n");
		printf("	A predicate is performed using the specified object\n");
		printf("	or module.\n");
		printf("	A module is the same as an object.\n");
		printf("	It can be described as ::object <PRED...> as an\n");
		printf("	omitted type.\n");
		printf("\n");
	} else if ((s == "or") ) { 
		printf("<or PRED PRED PRED ...>\n");
		printf("\n");
		printf("	In the place which performed the predicate of the\n");
		printf("	argument from the head and was set to true Processing\n");
		printf("	is closed and true is returned.\n");
		printf("	In the place which performed the predicate of the argument\n");
		printf("	from the head and was set to false Processing is closed\n");
		printf("	and false is returned.\n");
		printf("	unknown is returned when all the predicates are unknown.\n");
		printf("	It uses by syntax analysis as | of the method\n");
		printf("	of EBNF.\n");
		printf("\n");
	} else if ((s == "print") ) { 
		printf("<print LIST>\n");
		printf("\n");
		printf("	After outputting a list, a new line is started.\n");
		printf("	<writenl LIST> is the same as <print LIST>.\n");
		printf("\n");
	} else if ((s == "printf") ) { 
		printf("<printf LIST>\n");
		printf("\n");
		printf("	LIST is outputted. \n");
		printf("	The differences from print are a blanks not entering \n");
		printf("	between the elements of a list, and not starting a new \n");
		printf("	line automatically. \n");
		printf("\n");
	} else if ((s == "printlist") ) { 
		printf("<printlist LIST>\n");
		printf("\n");
		printf("	A parenthesis is removed and LIST is outputted.\n");
		printf("\n");
	} else if ((s == "printlistnl") ) { 
		printf("<printlistnl LIST>\n");
		printf("\n");
		printf("	LIST is outputted removing a parenthesis and starting \n");
		printf("	a new line for every element.\n");
		printf("\n");
	} else if ((s == "pwd") ) { 
		printf("<pwd [VAR]>\n");
		printf("\n");
		printf("	The current directory is set to VAR.\n");
		printf("\n");
	} else if ((s == "quit") ) { 
		printf("<quit>\n");
		printf("\n");
		printf("	Execution of a program is stopped and it ends.\n");
		printf("\n");
	} else if ((s == "quote") ) { 
		printf("<quote PRED>\n");
		printf("\n");
		printf("	Evaluation of the function predicate of an argument\n");
		printf("	is deterred.\n");
		printf("\n");
	} else if ((s == "retract") ) { 
		printf("<retract CLAUSE-NAME>\n");
		printf("\n");
		printf("	All the programs, variables and objects corresponding to CLAUSE-NAME are\n");
		printf("	deleted.\n");
		printf("\n");
	} else if ((s == "retractpred") ) { 
		printf("<retractpred HEAD-NAME>\n");
		printf("\n");
		printf("	All the programs corresponding to HEAD-NAME are\n");
		printf("	deleted.\n");
		printf("\n");
	} else if ((s == "rpn") || (s == "rpnf") || (s == "rpnc") ) { 
		printf("<rpn VAR RPNEXPRESSION>\n");
		printf("<rpnf VAR RPNEXPRESSION>\n");
		printf("<rpnc VAR RPNEXPRESSION>\n");
		printf("\n");
		printf("	A reverse Poland style is calculated and a result\n");
		printf("	is set to a variable.\n");
		printf("	rpn calculates an integer and rpnf calculates floating\n");
		printf("	number.\n");
		printf("	rpnc calculates a complex number.\n");
		printf("\n");
	} else if ((s == "save") ) { 
		printf("<save FILE-NAME>\n");
		printf("\n");
		printf("	The program of a FILE-NAME is written in.\n");
		printf("\n");
	} else if ((s == "self") ) { 
		printf("<self VAR>\n");
		printf("\n");
		printf("	An own object name is set as a variable.\n");
		printf("\n");
	} else if ((s == "super") ) { 
		printf("<super VAR>\n");
		printf("\n");
		printf("	LIST of the object name inherited to VAR is set up.\n");
		printf("\n");
	} else if ((s == "throw") ) { 
		printf("<throw VAL>\n");
		printf("\n");
		printf("	The processing after that is interrupted when the throw \n");
		printf("	predicate is executed while executing the predicate of \n");
		printf("	the argument, the entire processing of this catch predicate \n");
		printf("	succeeds, and it ends. At that time, the argument of \n");
		printf("	the throw predicate is set to the variable of the catch \n");
		printf("	predicate. When all predicates of the argument are executed \n");
		printf("	without executing throw, '()' is set to the variable of \n");
		printf("	the catch predicate. \n");
		printf("\n");
	} else if ((s == "timeout") ) { 
		printf("<timeout limittime PRED>\n");
		printf("\n");
		printf("	Within the set-up time, when execution of a predicate\n");
		printf("	is not completed, processing is closed, and unknown is\n");
		printf("	returned. A set period is a micro second bit.\n");
		printf("\n");
	} else if ((s == "troff") ) { 
		printf("<troff>\n");
		printf("\n");
		printf("	Debugging trace is turned OFF.\n");
		printf("\n");
	} else if ((s == "tron") ) { 
		printf("<tron>\n");
		printf("\n");
		printf("	Debugging trace is turned ON.\n");
		printf("\n");
	} else if ((s == "true") || (s == "false") || (s == "unknown") ) { 
		printf("<true>\n");
		printf("<false>\n");
		printf("<unknown>\n");
		printf("\n");
		printf("	return true, false, unknown\n");
		printf("\n");
	} else if ((s == "unify") ) { 
		printf("<unify MODULENAME PRED...>\n");
		printf("\n");
		printf("	A predicate is performed using the specified object\n");
		printf("	or module.\n");
		printf("	A module is the same as an object.\n");
		printf("	It can be described as ::object <PRED...> as an\n");
		printf("	omitted type.\n");
		printf("\n");
	} else if ((s == "warn") ) { 
		printf("<warn LIST>\n");
		printf("\n");
		printf("	LIST is outputted to an stderr error output. \n");
		printf("	A new line is started after an output.\n");
		printf("\n");
	} else if ((s == "x") ) { 
		printf("<x PRED...>\n");
		printf("\n");
		printf("	Usually, nothing is performed. \n");
		printf("	The predicate of an argument is performed when it backtracks.\n");
		printf("\n");
	} else if ((s == "!") ) { 
		printf("<!>\n");
		printf("	cut operator\n");
		printf("\n");
	} else if ((s == "%") ) { 
		printf("<%% _ FORMAT ARG>\n");
		printf("\n");
		printf("	A format is operated for printf.\n");
		printf("\n");
	} else if ((s == "\\") ) { 
		printf("<\\ _ CHAR>\n");
		printf("\n");
		printf("	Escape character\n");
		printf("\n");
		printf("\n");
		printf("EBNF Syntax analysis\n");
		printf("\n");
	} else if ((s == "TOKEN") ) { 
		printf("<TOKEN VAR PRED...>\n");
		printf("\n");
		printf("	After syntax-analysis PRED execution of an input, \n");
		printf("	obtained token is set as VAR.\n");
		printf("\n");
	} else if ((s == "SKIPSPACE") ) { 
		printf("<SKIPSPACE>\n");
		printf("\n");
		printf("	The space of an input is skipped.\n");
		printf("\n");
	} else if ((s == "C") ) { 
		printf("<C [VAR]>\n");
		printf("\n");
		printf("	An input is set as one-character VAR.\n");
		printf("\n");
	} else if ((s == "N") ) { 
		printf("<N [VAR]>\n");
		printf("\n");
		printf("	When an input is a number, it is set as VAR. \n");
		printf("	unknown is returned when different.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "A") ) { 
		printf("<A [VAR]>\n");
		printf("\n");
		printf("	When an input is the ASCII character, it is set as VAR. \n");
		printf("	unknown is returned when different.\n");
		printf("\n");
	} else if ((s == "AN") ) { 
		printf("<AN [VAR]>\n");
		printf("\n");
		printf("	When an input is the ASCII character or a number, \n");
		printf("	it is set as VAR. unknown is returned when different.\n");
		printf("\n");
	} else if ((s == "^") ) { 
		printf("<^>\n");
		printf("	The head of a line is matched.\n");
		printf("\n");
	} else if ((s == "$") ) { 
		printf("<$>\n");
		printf("	The last of a line is matched.\n");
		printf("\n");
	} else if ((s == "*") ) { 
		printf("<* [VAR]>\n");
		printf("	Arbitrary character strings are matched.\n");
		printf("\n");
	} else if ((s == "CR") ) { 
		printf("<CR>\n");
		printf("\n");
		printf("	true is returned when an input is a CR. \n");
		printf("	unknown is returned when different.\n");
		printf("\n");
	} else if ((s == "CNTL") ) { 
		printf("<CNTL [VAR]>\n");
		printf("\n");
		printf("	When an input is the CNTL character, it is set as VAR. \n");
		printf("	unknown is returned when different.\n");
		printf("\n");
	} else if ((s == "EOF") ) { 
		printf("<EOF>\n");
		printf("\n");
		printf("	true is returned when an input is a EOF(End Of FIle). \n");
		printf("	unknown is returned when different.\n");
		printf("\n");
	} else if ((s == "SPACE") ) { 
		printf("<SPACE>\n");
		printf("\n");
		printf("	true is returned when an input is a space. unknown is \n");
		printf("	returned when different.\n");
		printf("\n");
	} else if ((s == "PUNCT") ) { 
		printf("<PUNCT [VAR]>\n");
		printf("\n");
		printf("	true is returned when it is characters other than the \n");
		printf("	alphabet and a number.\n");
		printf("\n");
	} else if ((s == "WORD") ) { 
		printf("<WORD [VAR]>\n");
		printf("\n");
		printf("	In STRINGS(s) other than the alphabet, a number, \n");
		printf("	and _, unknown is returned by arbitrary STRINGS.\n");
		printf("\n");
	} else if ((s == "NUM") ) { 
		printf("<NUM [VAR]>\n");
		printf("\n");
		printf("	The unsigned integer of an input is is set as VAR.\n");
		printf("\n");
	} else if ((s == "FNUM") ) { 
		printf("<FNUM [VAR]>\n");
		printf("\n");
		printf("	The unsigned floating point number of an input is set as VAR.\n");
		printf("\n");
	} else if ((s == "SNUM") ) { 
		printf("<SNUM [VAR]>\n");
		printf("\n");
		printf("	The signed integer of an input is is set as VAR.\n");
		printf("\n");
	} else if ((s == "SFNUM") ) { 
		printf("<SFNUM [VAR]>\n");
		printf("\n");
		printf("	The signed floating point number of an input is set as VAR.\n");
		printf("\n");
	} else if ((s == "GETTOKEN") ) { 
		printf("<GETTOKEN VAR>\n");
		printf("\n");
		printf("	The token which is a result of the last syntax \n");
		printf("	analysis is set as VAR.\n");
		printf("\n");
	} else if ((s == "ID") ) { 
		printf("<ID [VAR]>\n");
		printf("\n");
		printf("	If an input STRINGS (a head is the alphabet and a \n");
		printf("	number is also good except it) and it agrees, it \n");
		printf("	will be set as VAR.\n");
		printf("\n");
	} else if ((s == "INDENT") ) { 
		printf("<INDENT VAR>\n");
		printf("\n");
		printf("	The length of the space of the indent of a current line \n");
		printf("	is set to the variable. \n");
		printf("	The tab is counted with eight characters. The blank of \n");
		printf("	multi byte character is counted with two characters. \n");
		printf("	It becomes true in case of the agreement compared with the \n");
		printf("	length of the space of the indent of a current line when \n");
		printf("	the argument is not a variable but a number. \n");
		printf("\n");
	} else if ((s == "RANGE") || (s == "NONRANGE") ) { 
		printf("<RANGE VAR CHAR1 CHAR2>\n");
		printf("<NONRANGE VAR CHAR1 CHAR2>\n");
		printf("\n");
		printf("	It will be set to true if contained in the range of \n");
		printf("	a character 1 and a character 2.\n");
		printf("\n");
	} else if ((s == "NEXTCHAR") ) { 
		printf("<NEXTCHAR VAR>\n");
		printf("\n");
		printf("	The value is set to the variable reading one character ahead. \n");
		printf("\n");
	} else if ((s == "NEXTINDENT") ) { 
		printf("<NEXTINDENT VAR>\n");
		printf("\n");
		printf("	The length of the space of the indent of the line of a current \n");
		printf("	next line is set to the variable. \n");
		printf("	The tab is counted with eight characters. The blank of multi byte \n");
		printf("	character is counted with two characters. \n");
		printf("	It becomes true in case of the agreement compared with the length \n");
		printf("	of the space of the indent of the following line of a current \n");
		printf("	line when the argument is not a variable but a number. \n");
		printf("\n");
		printf("\n");
	} else if ((s == "NEXTSTR") ) { 
		printf("<NEXTSTR STRINGS>\n");
		printf("\n");
		printf("	Whether the equal to the character string is judged reading ahead. \n");
		printf("\n");
	} else if ((s == "NEXTSYNTAX") ) { 
		printf("<NEXTSYNTAX PRED...>\n");
		printf("\n");
		printf("	The program is executed reading ahead. \n");
		printf("	When parsing fails, it becomes true. \n");
		printf("	The reading position of the file returns to the position of beginning \n");
		printf("	after it executes it. \n");
		printf("\n");
	} else if ((s == "NOTNEXTSTR") ) { 
		printf("<NOTNEXTSTR STRINGS>\n");
		printf("\n");
		printf("	Whether the equal to the character string is judged reading ahead. \n");
		printf("	It becomes true when the result is not equal. \n");
		printf("\n");
	} else if ((s == "NOTNEXTSYNTAX") ) { 
		printf("<NOTNEXTSYNTAX PRED...>\n");
		printf("\n");
		printf("	The program is executed reading ahead. \n");
		printf("	The reading position of the file returns to the position of beginning \n");
		printf("	after it executes it. \n");
		printf("\n");
	} else if ((s == "NULLLINE") ) { 
		printf("<NULLLINE>\n");
		printf("\n");
		printf("	It is judged whether it is a null line. \n");
		printf("\n");
	} else if ((s == "SKIP") ) { 
		printf("<SKIP STR>\n");
		printf("\n");
		printf("	Syntax analysis to STR is made to stop and skip.\n");
		printf("\n");
	} else if ((s == "SKIPCR") ) { 
		printf("<SKIPCR>\n");
		printf("\n");
		printf("	Syntax analysis to CR is made to stop and skip.\n");
		printf("\n");
		printf("\n");
		printf("OBJECT operation\n");
	} else if ((s == "newObj") ) { 
		printf("<newObj NAME>\n");
		printf("\n");
		printf("	create a new NAME object.\n");
		printf("\n");
	} else if ((s == "cloneObj") ) { 
		printf("<cloneObj NEWOBJECT NAME>\n");
		printf("\n");
		printf("	The object of NAME is reproduced and NEWOBJECT is generated. \n");
		printf("\n");
	} else if ((s == "delObj") ) { 
		printf("<delObj NAME>\n");
		printf("\n");
		printf("	delete NAME objects.\n");
		printf("\n");
	} else if ((s == "method") ) { 
		printf("<method NAME>\n");
		printf("\n");
		printf("	The method of a new name is generated \n");
		printf("\n");
	} else if ((s == "methoda") ) { 
		printf("<methoda NAME>\n");
		printf("\n");
		printf("	The method of a new name is generated from a head.\n");
		printf("\n");
	} else if ((s == "methodz") ) { 
		printf("<methodz NAME>\n");
		printf("\n");
		printf("	The method of a new name is generated at the end.\n");
		printf("\n");
	} else if ((s == "delmethod") ) { 
		printf("<delmethod NAME>\n");
		printf("\n");
		printf("	The method of the specified name is deleted.\n");
		printf("\n");
	} else if ((s == "delmethoda") ) { 
		printf("<delmethoda NAME>\n");
		printf("\n");
		printf("	The method of the specified name is deleted from a head.\n");
		printf("\n");
	} else if ((s == "delmethodz") ) { 
		printf("<delmethodz NAME>\n");
		printf("\n");
		printf("	The method of the specified name is deleted from an end.\n");
		printf("\n");
	} else if ((s == "setVar") ) { 
		printf("<setVar VAR VAL>\n");
		printf("\n");
		printf("	A value is assigned to global VAR. Global VAR \n");
		printf("	is registered in the form of the following as PRED.\n");
		printf("		 <VAR VAL>;\n");
		printf("\n");
	} else if ((s == "delVar") ) { 
		printf("<delVar VAR>\n");
		printf("\n");
		printf("	The variable corresponding to a VAR identifier \n");
		printf("	is deleted.\n");
		printf("\n");
	} else if ((s == "setArray") ) { 
		printf("<setArray VAR VAL INDEX>\n");
		printf("\n");
		printf("	A value is set as global VAR arrangement. \n");
		printf("	Global VAR is registered in the form of the \n");
		printf("	following as PRED.\n");
		printf("		 <VAR VAL INDEX>;\n");
		printf("\n");
	} else if ((s == "delArray") ) { 
		printf("<delArray VAR INDEX>\n");
		printf("\n");
		printf("	The variable corresponding to a VAR identifier \n");
		printf("	is deleted.\n");
		printf("\n");
	} else if ((s == "VAR") ) { 
		printf("<VAR VAL INDEX>;\n");
		printf("\n");
		printf("	When carrying out specification of the arrangement \n");
		printf("	of many dimensions, an index is specified as LIST.\n");
		printf("\n");
	} else if ((s == "VAR") ) { 
		printf("<VAR VAL (INDEX1 INDEX2 ...)>\n");
		printf("\n");
		printf("	Indexes are a number, a character string, and LIST.\n");
		printf("\n");
	} else if ((s == "append") ) { 
		printf("::sys <append VAR LIST1 LIST2>\n");
		printf("\n");
		printf("	LIST1 is connected with LIST2, and it sets it to \n");
		printf("	the variable. \n");
		printf("	It is a high-speed version of the predicate of \n");
		printf("	the same name of the list module library. \n");
		printf("\n");
	} else if ((s == "reverse") ) { 
		printf("::sys <reverse #out #in>\n");
		printf("\n");
		printf("	List #in is converted in reverse the order and it \n");
		printf("	sets it to #out. \n");
		printf("	It is a high-speed version of the predicate of \n");
		printf("	the same name of the list module library. \n");
		printf("\n");
	} else if ((s == "member") ) { 
		printf("::sys <member #mem #list>\n");
		printf("\n");
		printf("	Whether #mem is included in #list is judged. \n");
		printf("	It is a high-speed version of the predicate of \n");
		printf("	the same name of the list module library. \n");
		printf("\n");
	} else if ((s == "arg") ) { 
		printf("::sys <arg VAR COMPLEX>\n");
		printf("\n");
		printf("	angle of a complex number is set as a variable.\n");
		printf("\n");
	} else if ((s == "args") ) { 
		printf("::sys <args VAR>\n");
		printf("\n");
		printf("	ARG when starting the Descartes language is \n");
		printf("	assigned to VAR.\n");
		printf("\n");
	} else if ((s == "avg") || (s == "avgf") ) { 
		printf("::sys <avg VAR LIST>\n");
		printf("::sys <avgf VAR LIST>\n");
		printf("\n");
		printf("	The average value of LIST element is set as a VAR variable. \n");
		printf("	LIST element is calculated after being evaluated. \n");
		printf("	avg is calculated integrally. \n");
		printf("	avgf is calculated by a floating point number.\n");
		printf("\n");
	} else if ((s == "basename") ) { 
		printf("::sys <basename VAR PATH>\n");
		printf("\n");
		printf("	A file name is extracted from a path and \n");
		printf("	it is set as a variable.\n");
		printf("\n");
	} else if ((s == "checkObj") ) { 
		printf("::sys <checkObj NAME>\n");
		printf("\n");
		printf("	Whether the name is an object is judged. \n");
		printf("\n");
	} else if ((s == "chomp") ) { 
		printf("::sys <chomp VAR STRINGS>\n");
		printf("\n");
		printf("	When CR has adhered after the character STRINGS, it deletes it\n");
		printf("\n");
	} else if ((s == "chop") ) { 
		printf("::sys <chop VAR STRINGS>\n");
		printf("\n");
		printf("	The last character of the character STRINGS is deleted. \n");
		printf("\n");
	} else if ((s == "clear") ) { 
		printf("::sys <clear>\n");
		printf("\n");
		printf("	A screen is cleared.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "conj") ) { 
		printf("::sys <conj VAR COMPLEX>\n");
		printf("\n");
		printf("	The mark of the imaginary number part of a complex number is \n");
		printf("	reversed, and a conjugate complex number is set as a variable.\n");
		printf("\n");
	} else if ((s == "dirname") ) { 
		printf("::sys <dirname VAR PATH>\n");
		printf("\n");
		printf("	A directory name is extracted from a path and \n");
		printf("	it is set as a variable.\n");
		printf("\n");
	} else if ((s == "DLIBPATH") ) { 
		printf("::sys <DLIBPATH VAR>\n");
		printf("\n");
		printf("	The path DLIBPATH which the Descartes language \n");
		printf("	uses is displayed on VAR. \n");
		printf("\n");
	} else if ((s == "EqOR") ) { 
		printf("::sys <EqOR COMPARISON_VAL VAL1 VAL2 ...>\n");
		printf("	When agreeing even by one (other value 1 and value 2) compared \n");
		printf("	with the comparison value, true is returned. \n");
		printf("	If any doesn't agree, unknown is returned. \n");
		printf("\n");
	} else if ((s == "erasealltags") ) { 
		printf("::sys <erasealltags VAR STR>\n");
		printf("\n");
		printf("	All tag is erased from the character string, and it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "erasestr") ) { 
		printf("::sys <erasestr VAR STR STR1 [STR2]>\n");
		printf("\n");
		printf("	Character string STR1 is deleted, and it sets it \n");
		printf("	to the variable from among the character string. \n");
		printf("	When STR2 is specified, the character string enclosed \n");
		printf("	by character string STR1 and character string STR2 \n");
		printf("	in the character string is deleted and it sets it \n");
		printf("	to the variable. \n");
		printf("\n");
	} else if ((s == "erasetags") ) { 
		printf("::sys <erasetags VAR STR TAG [TAG2] >\n");
		printf("\n");
		printf("	TAG specified from the character string is erased and it \n");
		printf("	sets it to the variable. \n");
		printf("	When TAG2 is specified, the range of TAG2 is erased from TAG \n");
		printf("	and it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "findlist") ) { 
		printf("::sys <findlist VAR KEY LIST>\n");
		printf("\n");
		printf("	The LIST is a form like ((key1 value ...)  (key2 value ...) ...). \n");
		printf("	The data that agrees with the specified KEY is extracted from among this LIST. \n");
		printf("	The result is set to the variable VAR. \n");
		printf("\n");
	} else if ((s == "getenv") ) { 
		printf("::sys <getenv VAR name>\n");
		printf("\n");
		printf("	The value of the environment variable is taken out, \n");
		printf("	and it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "gsub") ) { 
		printf("::sys <gsub PATTERN STRINGS CORRESDED-STRINGS AFTER-STRINGS>\n");
		printf("\n");
		printf("	The result of having transposed the portion which \n");
		printf("	corresponded to STRINGS with the application of \n");
		printf("	the regular expression pattern to Substitution \n");
		printf("	STRINGS is set as Output STRINGS. Replacement is \n");
		printf("	performed into all the applicable portions of \n");
		printf("	STRINGS. (It does not operate on Windows.)\n");
		printf("\n");
	} else if ((s == "htmldecode") ) { 
		printf("::sys <htmldecode VAR STR>\n");
		printf("\n");
		printf("	The character that cannot be used in the html document \n");
		printf("	is converted from &quot, &amp, &lt, &gt, and &nbsp. \n");
		printf("\n");
	} else if ((s == "htmlencode") ) { 
		printf("::sys <htmlencode VAR STR>\n");
		printf("\n");
		printf("	The character that cannot be used in the html document \n");
		printf("	is converted with &quot, &amp, &lt, &gt, and &nbsp. \n");
		printf("\n");
	} else if ((s == "htmltags") ) { 
		printf("::sys <htmltags VAR STR TAG [TAG2]>\n");
		printf("\n");
		printf("	The list that pulls out TAG is set to the variable from \n");
		printf("	among the character string. \n");
		printf("	When TAG2 is specified, the list that pulls out the range \n");
		printf("	enclosed by TAG and TAG2 is set to the variable. \n");
		printf("\n");
	} else if ((s == "httpget") ) { 
		printf("::sys <httpget VAR_Header VAR_Body uri [proxy]>\n");
		printf("\n");
		printf("	It is HTTP client function and the GET method is executed. \n");
		printf("	Html is taken out of the site specified with uri and \n");
		printf("	it sets it to the VAR_Body variable. \n");
		printf("	The connection status at that time is set to the \n");
		printf("	VAR_Header variable. \n");
		printf("	When proxy is set, it accesses it via it. \n");
		printf("\n");
	} else if ((s == "httphead") ) { 
		printf("::sys <httphead VAR_Header uri [proxy]>\n");
		printf("\n");
		printf("	It is HTTP client function and the HEAD method is \n");
		printf("	executed. \n");
		printf("	Only it connects with the site specified with uri, \n");
		printf("	and the connection status is set to the VAR_Header \n");
		printf("	variable. \n");
		printf("	When proxy is set, it accesses it via it. \n");
		printf("\n");
	} else if ((s == "httppost") ) { 
		printf("::sys <httppost VAR_Header VAR_Body uri data [proxy]>\n");
		printf("\n");
		printf("	It is HTTP client function, and the POST method is executed. \n");
		printf("	Html is taken out of the site specified with uri and it sets\n");
		printf("	 it to the VAR_Body variable. \n");
		printf("	The connection status at that time is set to the VAR_Header \n");
		printf("	variable. \n");
		printf("	When proxy is set, it accesses it via it. \n");
		printf("	It transmits to the site for which the character string \n");
		printf("	specified for data was specified. \n");
		printf("\n");
	} else if ((s == "iconv") ) { 
		printf("::sys <iconv VAR_tostr fromstr tocode fromcode>\n");
		printf("\n");
		printf("	The fromstr character string is converted into the \n");
		printf("	character-code specified from the character-code specified \n");
		printf("	for fromcode for tocode and it sets it to VAR_tostr. \n");
		printf("	The character-code is 'SJIS', 'EUC-JP', and 'UTF-8', etc.\n");
		printf("\n");
	} else if ((s == "image") ) { 
		printf("::sys <image VAR COMPLEX>\n");
		printf("\n");
		printf("	The imaginary part of a complex number is set as a variable.\n");
		printf("\n");
	} else if ((s == "insertstr") ) { 
		printf("::sys <insertstr VAR STR1 POS STR2>\n");
		printf("\n");
		printf("	The character string 2 is inserted in the position of the \n");
		printf("	character string 1.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "isNil") || (s == "isAtom") || (s == "isList") || (s == "isPred") || (s == "isVar") || (s == "isUndefVar") || (s == "isFloat") || (s == "isInteger") || (s == "isInf") || (s == "isNan") ) { 
		printf("::sys <isNil ARG>\n");
		printf("::sys <isAtom ARG>\n");
		printf("::sys <isList ARG>\n");
		printf("::sys <isPred ARG>\n");
		printf("::sys <isVar ARG>\n");
		printf("::sys <isUndefVar ARG>\n");
		printf("::sys <isFloat ARG>\n");
		printf("::sys <isInteger ARG>\n");
		printf("::sys <isInf ARG>\n");
		printf("::sys <isNan ARG>\n");
		printf("\n");
		printf("	true will be returned, if ARG is judged and it \n");
		printf("	corresponds. unknown is returned if it does not \n");
		printf("	correspond.\n");
		printf("\n");
	} else if ((s == "isObj") ) { 
		printf("::sys <isObj ARG>\n");
		printf("\n");
		printf("	If the ARG argument is an object, true is returned. \n");
		printf("	Otherwise, unknown is returned. \n");
		printf("\n");
	} else if ((s == "isTrue") || (s == "isFalse") || (s == "isUnknown") ) { 
		printf("::sys <isTrue PRED>\n");
		printf("::sys <isFalse PRED>\n");
		printf("::sys <isUnknown PRED>\n");
		printf("\n");
		printf("	The result of PRED of ARG is judged, and true will \n");
		printf("	be returned if it corresponds. unknown is returned \n");
		printf("	if it does not correspond.\n");
		printf("\n");
	} else if ((s == "isRegistered") ) { 
		printf("::sys <isRegistered VAL LIST>\n");
		printf("\n");
		printf("	If VAL is an element of LIST, true is returned. \n");
		printf("	Otherwise, unknown is returned. \n");
		printf("\n");
	} else if ((s == "isUnregistered") ) { 
		printf("::sys <isUnregistered VAL LIST>\n");
		printf("\n");
		printf("	If VAL is not an element of LIST, true is returned. \n");
		printf("	Otherwise, unknown is returned. \n");
		printf("\n");
	} else if ((s == "leftstr") ) { 
		printf("::sys <leftstr VAR STR LENGTH>\n");
		printf("\n");
		printf("	The character string of length is cut out from the left of \n");
		printf("	a character string, and it is set as a variable.\n");
		printf("\n");
	} else if ((s == "lefttrim") ) { 
		printf("::sys <lefttrim VAR STRINGS>\n");
		printf("\n");
		printf("	The blank before the character string is removed and \n");
		printf("	it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "max") ) { 
		printf("::sys <max VAR LIST>\n");
		printf("\n");
		printf("	The greatest integer value of the element of a list \n");
		printf("	is set as a variable.\n");
		printf("\n");
	} else if ((s == "maxf") ) { 
		printf("::sys <maxf VAR LIST>\n");
		printf("\n");
		printf("	The greatest floating point number value of the element of \n");
		printf("	a list is set as a variable.\n");
		printf("\n");
	} else if ((s == "min") ) { 
		printf("::sys <min VAR LIST>\n");
		printf("\n");
		printf("	The minimum integer value of the element of a list\n");
		printf("	 is set as a variable.\n");
		printf("\n");
	} else if ((s == "minf") ) { 
		printf("::sys <minf VAR LIST>\n");
		printf("\n");
		printf("	The minimum floating point number value of the element of \n");
		printf("	a list is set as a variable.\n");
		printf("\n");
	} else if ((s == "mkpred") ) { 
		printf("::sys <mkpred ARG>\n");
		printf("\n");
		printf("	ARG is changed into PRED.\n");
		printf("\n");
	} else if ((s == "nth") ) { 
		printf("::sys <nth VAR LIST INDEX>\n");
		printf("	The VAL of the INDEX of the LIST is set to the VAR. \n");
		printf("\n");
	} else if ((s == "setnth") ) { 
		printf("::sys <setnth VAR LIST INDEX VAL>\n");
		printf("	The LIST that puts the VAL in the INDEX of the LIST is \n");
		printf("	set to the VAR. \n");
		printf("\n");
	} else if ((s == "norm") ) { 
		printf("::sys <norm VAR COMPLEX>\n");
		printf("\n");
		printf("	The square of a real part and an imaginary number part sum \n");
		printf("	total is set as a variable.\n");
		printf("\n");
	} else if ((s == "polar") ) { 
		printf("::sys <polar VAR ABSOLUTE-VALUE ANGLE>\n");
		printf("\n");
		printf("	The complex number by a polar coordinate system is set as a variable.\n");
		printf("\n");
	} else if ((s == "pulloutstr") ) { 
		printf("::sys <pulloutstr VAR STR STR1 STR2>\n");
		printf("\n");
		printf("	The character string enclosed by character string STR1 \n");
		printf("	and character string STR2 in the character string is \n");
		printf("	listed and it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "real") ) { 
		printf("::sys <real VAR COMPLEX>\n");
		printf("\n");
		printf("	The real part of a complex number is set as a variable.\n");
		printf("\n");
	} else if ((s == "regex") ) { 
		printf("::sys <regex PATTERN STRINGS BEFORE-STRINGS MATCH-STRINGS AFTER-STRINGS>\n");
		printf("\n");
		printf("	The result of having applied the regular expression \n");
		printf("	pattern to STRINGS is set as Match STRINGS, and \n");
		printf("	STRINGS of order is set as front STRINGS and back \n");
		printf("	STRINGS. (It does not operate on Windows.)\n");
		printf("\n");
	} else if ((s == "rightstr") ) { 
		printf("::sys <rightstr VAR STR LENGTH>\n");
		printf("\n");
		printf("	The character string of length is cut out from the right of \n");
		printf("	a character string, and it is set as a variable.\n");
		printf("\n");
	} else if ((s == "righttrim") ) { 
		printf("::sys <righttrim VAR STRINGS>\n");
		printf("\n");
		printf("	The blank behind the character string is removed and \n");
		printf("	it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "padding") ) { 
		printf("::sys <padding VAR NUM ITEM>\n");
		printf("\n");
		printf("	The list including ITEM of the repetition of the number \n");
		printf("	is set to the variable. \n");
		printf("\n");
	} else if ((s == "replacestr") ) { 
		printf("::sys <replacestr VAR STR STR1 STR2>\n");
		printf("\n");
		printf("	All character strings STR1 in the character string STR \n");
		printf("	are replaced with character string STR2 and it sets it \n");
		printf("	to the variable. \n");
		printf("\n");
	} else if ((s == "seq") ) { 
		printf("::sys <seq VAR INIT LAST>\n");
		printf("\n");
		printf("	The list of the number from an initial value(INIT) to the end \n");
		printf("	value(LAST) is set to the variable. \n");
		printf("	If the INIT is smaller than the LAST, the list of \n");
		printf("	the ascending order is generated. \n");
		printf("	If the INIT is larger than the LAST, the list of \n");
		printf("	the descending order is generated. \n");
		printf("\n");
		printf("\n");
	} else if ((s == "sort") || (s == "sortascend") ) { 
		printf("::sys <sort VAR LIST>\n");
		printf("::sys <sortascend VAR LIST>\n");
		printf("\n");
		printf("	The LIST is sorted in ascending order, and it sets it to the VAR. \n");
		printf("\n");
	} else if ((s == "sortdescend") ) { 
		printf("::sys <sortdescend VAR LIST>\n");
		printf("\n");
		printf("	The LIST is sorted in descending order, and it sets it to the VAR. \n");
		printf("\n");
	} else if ((s == "split") ) { 
		printf("::sys <split VAR STRINGS [DELIMITER]>\n");
		printf("\n");
		printf("	What divided STRINGS by the DELIMITER and was \n");
		printf("	set to LIST is set as VAR. When the delimiter \n");
		printf("	is not specified, it is divided with a blank \n");
		printf("	and a tab.\n");
		printf("\n");
	} else if ((s == "strbyte") ) { 
		printf("::sys <strbyte VAR STRINGS>\n");
		printf("\n");
		printf("	The number of byte of character strings is set to the variable. \n");
		printf("\n");
	} else if ((s == "strdelcntl") ) { 
		printf("::sys <strdelcntl VAR STRINGS>\n");
		printf("\n");
		printf("	The control character in the character string is deleted, and \n");
		printf("	it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "strfry") ) { 
		printf("::sys <strfry VAR STRINGS>\n");
		printf("\n");
		printf("	The order of the character of the character string is changed at \n");
		printf("	random, and it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "strlen") ) { 
		printf("::sys <strlen VAR STRINGS>\n");
		printf("\n");
		printf("	The length of the character string is set to the variable. \n");
		printf("\n");
	} else if ((s == "strrepeat") ) { 
		printf("::sys <strrepeat VAR STRINGS NUM>\n");
		printf("\n");
		printf("	The value in which the character string is repeated is set to the variable. \n");
		printf("\n");
	} else if ((s == "strrotateleft") || (s == "strrotateright") ) { 
		printf("::sys <strrotateleft VAR STRINGS [SHIFT-NUMBER]>\n");
		printf("::sys <strrotateright VAR STRINGS [SHIFT-NUMBER]>\n");
		printf("\n");
		printf("	The value in which the character string shifts several and \n");
		printf("	moved is set to the variable. \n");
		printf("	The overflowing character is moved to the other side. \n");
		printf("	When the number of shifts is omitted, it shifts only by one character. \n");
		printf("\n");
	} else if ((s == "strshiftleft") || (s == "strshiftright") ) { 
		printf("::sys <strshiftleft VAR STRINGS [NUM]>\n");
		printf("::sys <strshiftright VAR STRINGS [NUM]>\n");
		printf("\n");
		printf("	The value in which the character string shifts several and \n");
		printf("	moved is set to the variable. \n");
		printf("	When the number of shifts is omitted, it shifts only by one character. \n");
		printf("\n");
		printf("\n");
	} else if ((s == "strsort") || (s == "strsortreverse") ) { 
		printf("::sys <strsort VAR STRINGS>\n");
		printf("::sys <strsortreverse VAR STRINGS>\n");
		printf("\n");
		printf("	The character in the character string is sorted and it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "sum") || (s == "sumf") ) { 
		printf("::sys <sum VAR LIST>\n");
		printf("::sys <sumf VAR LIST>\n");
		printf("\n");
		printf("	The element of a list is totaled and it is set as a variable. \n");
		printf("	A function predicate can also be described to the element of a list. \n");
		printf("	sum is totaled as an integer. \n");
		printf("	sumf is totaled as a floating point number.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "sub") ) { 
		printf("::sys <sub PATTERN STRINGS CORRESDED-STRINGS AFTER-STRINGS>\n");
		printf("\n");
		printf("	The result of having transposed the portion which \n");
		printf("	corresponded to STRINGS with the application of \n");
		printf("	the regular expression pattern to Substitution \n");
		printf("	STRINGS is set as Output STRINGS. Replacement \n");
		printf("	is performed only once. \n");
		printf("	(It does not operate on Windows.)\n");
		printf("\n");
	} else if ((s == "suffix") ) { 
		printf("::sys <suffix VAR PATH SUFFIX>\n");
		printf("\n");
		printf("	The suffix of a path is changed into the SUFFIX of an argument.\n");
		printf("\n");
	} else if ((s == "substr") ) { 
		printf("::sys <substr VAR STR POS LENGTH>\n");
		printf("\n");
		printf("	The character string of length is cut out from the position \n");
		printf("	of a character string, and it is set as a variable.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "switch") ) { 
		printf("::sys <switch comparison-val VAL1 PRED1 VAL2 PRED2 ...>\n");
		printf("	The predicate that pairs when agreeing to the value compared \n");
		printf("	with the comparison value is executed. \n");
		printf("	The execution corpse situation bundles two or more predicates \n");
		printf("	by parentheses ().\n");
		printf("\n");
		printf("\n");
	} else if ((s == "toupper") ) { 
		printf("::sys <toupper VAR STRINGS>\n");
		printf("\n");
		printf("	A character string is made into a capital letter.\n");
		printf("\n");
	} else if ((s == "tolower") ) { 
		printf("::sys <tolower VAR STRINGS>\n");
		printf("\n");
		printf("	A character string is made into a small letter.\n");
		printf("\n");
	} else if ((s == "trim") ) { 
		printf("::sys <trim VAR STRINGS>\n");
		printf("\n");
		printf("	The blank before and behind the character string is removed and \n");
		printf("	it sets it to the variable. \n");
		printf("\n");
	} else if ((s == "writenl") ) { 
		printf("::sys <writenl LIST>\n");
		printf("\n");
		printf("	After outputting LIST, a new line is started.\n");
		printf("\n");
	} else if ((s == "write") || (s == "w") ) { 
		printf("::sys <write LIST>\n");
		printf("::sys <w LIST>\n");
		printf("\n");
		printf("	Outputting LIST.\n");
		printf("\n");
	} else if ((s == "length") ) { 
		printf("::sys <length VAR LIST>\n");
		printf("\n");
		printf("	The length of LIST is set as VAR.\n");
		printf("\n");
	} else if ((s == "random") ) { 
		printf("::sys <random VAR>\n");
		printf("\n");
		printf("	A random number is assigned to VAR.\n");
		printf("\n");
	} else if ((s == "PI") ) { 
		printf("::sys <PI VAR>\n");
		printf("\n");
		printf("	The value of a circular constant PI is set as a variable.\n");
		printf("\n");
	} else if ((s == "sin") || (s == "cos") || (s == "tan") ) { 
		printf("::sys <sin VAR RADIAN>\n");
		printf("::sys <cos VAR RADIAN>\n");
		printf("::sys <tan VAR RADIAN>\n");
		printf("\n");
		printf("	Trigonometric functions\n");
		printf("\n");
	} else if ((s == "asin") || (s == "acos") || (s == "atan") || (s == "atan2") ) { 
		printf("::sys <asin VAR VAL>\n");
		printf("::sys <acos VAR VAL>\n");
		printf("::sys <atan VAR VAL>\n");
		printf("::sys <atan2 VAR VAL1 VAL2>\n");
		printf("\n");
		printf("	Inverse trigonometric function\n");
		printf("\n");
	} else if ((s == "sinh") || (s == "cosh") || (s == "tanh") ) { 
		printf("::sys <sinh VAR RADIAN>\n");
		printf("::sys <cosh VAR RADIAN>\n");
		printf("::sys <tanh VAR RADIAN>\n");
		printf("\n");
		printf("	Hyperbolic trigonometric functions\n");
		printf("\n");
	} else if ((s == "asinh") || (s == "acosh") || (s == "atanh") ) { 
		printf("::sys <asinh VAR VAL>\n");
		printf("::sys <acosh VAR VAL>\n");
		printf("::sys <atanh VAR VAL>\n");
		printf("\n");
		printf("	Hyperbolic inverse trigonometric function\n");
		printf("\n");
	} else if ((s == "e") ) { 
		printf("::sys <e VAR>\n");
		printf("\n");
		printf("	The bottom e of a natural logarithm e is set as a variable.\n");
		printf("\n");
	} else if ((s == "log") || (s == "log10") || (s == "exp") || (s == "exp2") || (s == "exp10") || (s == "pow") ) { 
		printf("::sys <log VAR VAL>\n");
		printf("::sys <log10 VAR VAL>\n");
		printf("::sys <exp VAR VAL>\n");
		printf("::sys <exp2 VAR VAL>\n");
		printf("::sys <exp10 VAR VAL>\n");
		printf("::sys <pow VAR VAL1 VAL2>\n");
		printf("\n");
		printf("	Logarithmic function\n");
		printf("\n");
	} else if ((s == "sqrt") ) { 
		printf("::sys <sqrt VAR VAL>\n");
		printf("\n");
		printf("	Square root\n");
		printf("\n");
	} else if ((s == "abs") ) { 
		printf("::sys <abs VAR VAL>\n");
		printf("\n");
		printf("	Absolute value\n");
		printf("\n");
	} else if ((s == "int") ) { 
		printf("::sys <int VAR VAL>\n");
		printf("\n");
		printf("	Integral value\n");
		printf("\n");
	} else if ((s == "ceil") ) { 
		printf("::sys <ceil VAR VAL>\n");
		printf("\n");
		printf("	smallest integral value not less than argument\n");
		printf("\n");
	} else if ((s == "floor") ) { 
		printf("::sys <floor VAR VAL>\n");
		printf("\n");
		printf("	largest integral value not greater than argument\n");
		printf("\n");
	} else if ((s == "trunc") ) { 
		printf("::sys <trunc VAR VAL>\n");
		printf("\n");
		printf("	round to interger, towards zero\n");
		printf("\n");
	} else if ((s == "car") || (s == "cdr") ) { 
		printf("::sys <car VAR LIST>\n");
		printf("::sys <cdr VAR LIST>\n");
		printf("\n");
		printf("	car, cdr of LIST\n");
		printf("\n");
	} else if ((s == "caar") ) { 
		printf("::sys <caar VAR LIST>\n");
		printf("\n");
		printf("	car(car(LIST))\n");
		printf("\n");
	} else if ((s == "cadr") ) { 
		printf("::sys <cadr VAR LIST>\n");
		printf("\n");
		printf("	car(cdr(LIST))\n");
		printf("\n");
	} else if ((s == "cdar") ) { 
		printf("::sys <cdar VAR LIST>\n");
		printf("\n");
		printf("	cdr(car(LIST))\n");
		printf("\n");
	} else if ((s == "cddr") ) { 
		printf("::sys <cddr VAR LIST>\n");
		printf("\n");
		printf("	cdr(cdr(LIST))\n");
		printf("\n");
		printf("\n");
		printf("\n");
	} else if ((s == "caaar") ) { 
		printf("::sys <caaar VAR LIST>\n");
		printf("\n");
		printf("	car(car(car(LIST)))\n");
		printf("\n");
	} else if ((s == "caadr") ) { 
		printf("::sys <caadr VAR LIST>\n");
		printf("\n");
		printf("	car(car(cdr(LIST)))\n");
		printf("\n");
	} else if ((s == "cadar") ) { 
		printf("::sys <cadar VAR LIST>\n");
		printf("\n");
		printf("	car(cdr(car(LIST)))\n");
		printf("\n");
	} else if ((s == "caddr") ) { 
		printf("::sys <caddr VAR LIST>\n");
		printf("\n");
		printf("	car(cdr(cdr(LIST)))\n");
		printf("\n");
	} else if ((s == "cdaar") ) { 
		printf("::sys <cdaar VAR LIST>\n");
		printf("\n");
		printf("	cdr(car(car(LIST)))\n");
		printf("\n");
	} else if ((s == "cdadr") ) { 
		printf("::sys <cdadr VAR LIST>\n");
		printf("\n");
		printf("	cdr(car(cdr(LIST)))\n");
		printf("\n");
	} else if ((s == "cddar") ) { 
		printf("::sys <cddar VAR LIST>\n");
		printf("\n");
		printf("	cdr(cdr(car(LIST)))\n");
		printf("\n");
	} else if ((s == "cdddr") ) { 
		printf("::sys <cdddr VAR LIST>\n");
		printf("\n");
		printf("	cdr(cdr(cdr(LIST)))\n");
		printf("\n");
		printf("\n");
	} else if ((s == "caaaar") ) { 
		printf("::sys <caaaar VAR LIST>\n");
		printf("\n");
		printf("	car(car(car(car(LIST))))\n");
		printf("\n");
	} else if ((s == "caaadr") ) { 
		printf("::sys <caaadr VAR LIST>\n");
		printf("\n");
		printf("	car(car(car(cdr(LIST))))\n");
		printf("\n");
	} else if ((s == "caadar") ) { 
		printf("::sys <caadar VAR LIST>\n");
		printf("\n");
		printf("	car(car(cdr(car(LIST))))\n");
		printf("\n");
	} else if ((s == "caaddr") ) { 
		printf("::sys <caaddr VAR LIST>\n");
		printf("\n");
		printf("	car(car(cdr(cdr(LIST))))\n");
		printf("\n");
	} else if ((s == "cadaar") ) { 
		printf("::sys <cadaar VAR LIST>\n");
		printf("\n");
		printf("	car(cdr(car(car(LIST))))\n");
		printf("\n");
	} else if ((s == "cadadr") ) { 
		printf("::sys <cadadr VAR LIST>\n");
		printf("\n");
		printf("	car(cdr(car(cdr(LIST))))\n");
		printf("\n");
	} else if ((s == "caddar") ) { 
		printf("::sys <caddar VAR LIST>\n");
		printf("\n");
		printf("	car(cdr(cdr(car(LIST))))\n");
		printf("\n");
	} else if ((s == "cadddr") ) { 
		printf("::sys <cadddr VAR LIST>\n");
		printf("\n");
		printf("	car(cdr(cdr(cdr(LIST))))\n");
		printf("\n");
	} else if ((s == "cdaaar") ) { 
		printf("::sys <cdaaar VAR LIST>\n");
		printf("\n");
		printf("	cdr(car(car(car(LIST))))\n");
		printf("\n");
	} else if ((s == "cdaadr") ) { 
		printf("::sys <cdaadr VAR LIST>\n");
		printf("\n");
		printf("	cdr(car(car(cdr(LIST))))\n");
		printf("\n");
	} else if ((s == "cdadar") ) { 
		printf("::sys <cdadar VAR LIST>\n");
		printf("\n");
		printf("	cdr(car(cdr(car(LIST))))\n");
		printf("\n");
	} else if ((s == "cdaddr") ) { 
		printf("::sys <cdaddr VAR LIST>\n");
		printf("\n");
		printf("	cdr(car(cdr(cdr(LIST))))\n");
		printf("\n");
	} else if ((s == "cddaar") ) { 
		printf("::sys <cddaar VAR LIST>\n");
		printf("\n");
		printf("	cdr(cdr(car(car(LIST))))\n");
		printf("\n");
	} else if ((s == "cddadr") ) { 
		printf("::sys <cddadr VAR LIST>\n");
		printf("\n");
		printf("	cdr(cdr(car(cdr(LIST))))\n");
		printf("\n");
	} else if ((s == "cdddar") ) { 
		printf("::sys <cdddar VAR LIST>\n");
		printf("\n");
		printf("	cdr(cdr(cdr(car(LIST))))\n");
		printf("\n");
	} else if ((s == "cddddr") ) { 
		printf("::sys <cddddr VAR LIST>\n");
		printf("\n");
		printf("	cdr(cdr(cdr(cdr(LIST))))\n");
		printf("\n");
		printf("\n");
		printf("\n");
	} else if ((s == "cons") ) { 
		printf("::sys <cons VAR LIST1 LIST2>\n");
		printf("\n");
		printf("	Connection of LIST\n");
		printf("\n");
	} else if ((s == "code") ) { 
		printf("::sys <code CODE-NAME>\n");
		printf("\n");
		printf("	A setup of a character code. \n");
		printf("	UTF8, EUCJP, and SJIS can be specified.\n");
		printf("\n");
	} else if ((s == "char") ) { 
		printf("::sys <char VAR STRINGS>\n");
		printf("\n");
		printf("	STRINGS is decomposed for every be character, and it \n");
		printf("	is made LIST, and is set as VAR. A multibyte character \n");
		printf("	like a Japanese character is also right, and it is every \n");
		printf("	character. \n");
		printf("\n");
	} else if ((s == "byte") ) { 
		printf("::sys <byte VAR STRINGS>\n");
		printf("\n");
		printf("	STRINGS is decomposed for every character code, \n");
		printf("	and it is made LIST, and is set as VAR.\n");
		printf("\n");
	} else if ((s == "asciichar") || (s == "utf8char") || (s == "eucchar") || (s == "sjischar") ) { 
		printf("::sys <asciichar VAR STRINGS>\n");
		printf("::sys <utf8char VAR STRINGS>\n");
		printf("::sys <eucchar VAR STRINGS>\n");
		printf("::sys <sjischar VAR STRINGS>\n");
		printf("\n");
		printf("	STRINGS is decomposed for every character code, \n");
		printf("	and it is made LIST, and is set as VAR.\n");
		printf("\n");
	} else if ((s == "concat") ) { 
		printf("::sys <concat VAR LIST>\n");
		printf("\n");
		printf("	Strings LIST is made to unite, STRINGS is compounded and \n");
		printf("	it is set as VAR.\n");
		printf("\n");
	} else if ((s == "concatcode") ) { 
		printf("::sys <concatcode VAR LIST>\n");
		printf("\n");
		printf("	Character code LIST is made to unite, STRINGS is compounded and \n");
		printf("	it is set as VAR.\n");
		printf("\n");
	} else if ((s == "bitand") || (s == "bitor") || (s == "bitxor") || (s == "bitnot") ) { 
		printf("::sys <bitand VAR NUMBER1 NUMBER2>\n");
		printf("::sys <bitor VAR NUMBER1 NUMBER2>\n");
		printf("::sys <bitxor VAR NUMBER1 NUMBER2>\n");
		printf("::sys <bitnot VAR NUMBER1>\n");
		printf("\n");
		printf("	bit operation\n");
		printf("\n");
	} else if ((s == "shiftl") || (s == "shiftr") ) { 
		printf("::sys <shiftl VAR NUMBER SHIFT>\n");
		printf("::sys <shiftr VAR NUMBER SHIFT>\n");
		printf("\n");
		printf("	The bit shift of an integral value. shiftl is shifted \n");
		printf("	to the left and shifutr is shifted to the right.\n");
		printf("\n");
	} else if ((s == "eq") || (s == "noteq") || (s == "is") ) { 
		printf("::sys <eq ARG1 ARG2>\n");
		printf("::sys <noteq ARG1 ARG2>\n");
		printf("::sys <is ARG1 ARG2>\n");
		printf("\n");
		printf("	Comparison of ARG1 and ARG2\n");
		printf("\n");
	} else if ((s == "getc") ) { 
		printf("::sys <getc VAR>\n");
		printf("\n");
		printf("	One character is inputted into VAR.\n");
		printf("\n");
	} else if ((s == "putc") ) { 
		printf("::sys <putc CHAR>\n");
		printf("\n");
		printf("	One character is outputted.\n");
		printf("\n");
	} else if ((s == "getline") ) { 
		printf("::sys <getline VAR [PRED...]>\n");
		printf("\n");
		printf("	One line is inputted and it is set as VAR. When \n");
		printf("	PRED is set up, PRED is performed by considering \n");
		printf("	a tmp file as an input.\n");
		printf("\n");
	} else if ((s == "syntax") ) { 
		printf("::sys <syntax STRINGS PRED...>\n");
		printf("\n");
		printf("	A predicate is performed by making a character string \n");
		printf("	into an input file.\n");
		printf("\n");
	} else if ((s == "tmpfile") ) { 
		printf("::sys <tmpfile VAR>\n");
		printf("\n");
		printf("	Temporary FILE NAME is set as VAR\n");
		printf("\n");
		printf("\n");
	} else if ((s == "openr") ) { 
		printf("::sys <openr FILE-NAME PRED...>\n");
		printf("\n");
		printf("	The file of FILE-NAME is opened in postscript \n");
		printf("	reading, and PRED is performed.\n");
		printf("\n");
	} else if ((s == "openw") ) { 
		printf("::sys <openw FILE-NAME PRED...>\n");
		printf("\n");
		printf("	The file of FILE-NAME is opened in postscript \n");
		printf("	writing, and PRED is performed.\n");
		printf("\n");
	} else if ((s == "openwp") ) { 
		printf("::sys <openwp FILE-NAME PRED...>\n");
		printf("\n");
		printf("	The file of FILE-NAME is opened in postscript \n");
		printf("	writing, and PRED is performed.\n");
		printf("\n");
	} else if ((s == "gettime") ) { 
		printf("::sys <gettime VAR>\n");
		printf("\n");
		printf("	The present time is set as a variable by a micro second bit.\n");
		printf("\n");
	} else if ((s == "time") ) { 
		printf("::sys <time VAR>\n");
		printf("\n");
		printf("	List of (the user time, sys time, and elapsed time) \n");
		printf("	of the predicate under execution is set as a variable.\n");
		printf("\n");
	} else if ((s == "date") ) { 
		printf("::sys <date VAR>\n");
		printf("\n");
		printf("	Time is set as a variable.\n");
		printf("\n");
	} else if ((s == "sleep") ) { 
		printf("::sys <sleep SEC>\n");
		printf("\n");
		printf("	Sleep is done during SEC second. \n");
		printf("\n");
	} else if ((s == "usleep") ) { 
		printf("::sys <usleep SEC>\n");
		printf("\n");
		printf("	Sleep is done during micro SEC second. \n");
		printf("\n");
	} else if ((s == "pause") ) { 
		printf("::sys <pause>\n");
		printf("\n");
		printf("	It waits until Enter is pushed. \n");
		printf("\n");
		printf("\n");
	} else if ((s == "uname") ) { 
		printf("::sys <uname VAR>\n");
		printf("\n");
		printf("	The information on a system is set as VAR.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "countnode") ) { 
		printf("::sys <countnode VAR>\n");
		printf("\n");
		printf("	The number of nodes currently used is set as VAR.\n");
		printf("\n");
	} else if ((s == "PrintResultOff") ) { 
		printf("::sys <PrintResultOff>\n");
		printf("\n");
		printf("	The result display is made disable. \n");
		printf("\n");
	} else if ((s == "PrintResultOn") ) { 
		printf("::sys <PrintResultOn>\n");
		printf("\n");
		printf("	The result display is made enable. \n");
		printf("\n");
	} else if ((s == "urldecode") ) { 
		printf("::sys <urldecode VAR strings>\n");
		printf("\n");
		printf("	The character string is decoded in URL encode form. \n");
		printf("	The result of the decryption is set to the variable. \n");
		printf("\n");
	} else if ((s == "urlencode") ) { 
		printf("::sys <urlencode VAR strings>\n");
		printf("\n");
		printf("	The character string is encoded in URL encode form. \n");
		printf("	The result of the encryption is set to the variable. \n");
		printf("\n");
		printf("\n");
	} else if ((s == "gc") ) { 
		printf("::sys <gc>\n");
		printf("\n");
		printf("	A garbage collector is started.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "startcurses") ) { 
		printf("::curses <startcurses PRED...>\n");
		printf("\n");
		printf("	Initialization and rearrangement processing for using a curses \n");
		printf("	module are performed. \n");
		printf("	curses is processed in the predicate of an argument.\n");
		printf("\n");
	} else if ((s == "mvprintw") ) { 
		printf("::curses <mvprintw X Y STRING>\n");
		printf("\n");
		printf("	STRING is displayed on the position (X, Y) of a screen.\n");
		printf("\n");
	} else if ((s == "printw") ) { 
		printf("::curses <printw STRING>\n");
		printf("\n");
		printf("	STRING is displayed on the position of a screen.\n");
		printf("\n");
	} else if ((s == "refresh") ) { 
		printf("::curses <refresh>\n");
		printf("\n");
		printf("	A screen is updated.\n");
		printf("\n");
	} else if ((s == "move") ) { 
		printf("::curses <move X Y>\n");
		printf("\n");
		printf("	Cursor is moved to the position (X, Y) of a screen.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "cbreak") ) { 
		printf("::curses <cbreak>\n");
		printf("\n");
		printf("	A keystroke is made into mode who receives immediately.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "nobreak") ) { 
		printf("::curses <nobreak>\n");
		printf("\n");
		printf("	A keystroke is made into the mode which carries out a buffer until \n");
		printf("	a new-line or a carriage return is inputted.\n");
		printf("\n");
	} else if ((s == "echo") ) { 
		printf("::curses <echo>\n");
		printf("\n");
		printf("	When a key is typed, it is made the mode echoed to a screen.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "noecho") ) { 
		printf("::curses <noecho>\n");
		printf("\n");
		printf("	When a key is typed, it is set in mode which does not echo in a screen.\n");
		printf("\n");
	} else if ((s == "border") ) { 
		printf("::curses <border ls rs ts bs tl tr bl br>\n");
		printf("\n");
		printf("	A ruled line is drawn around a screen.\n");
		printf("\n");
	} else if ((s == "erase") ) { 
		printf("::curses <erase>\n");
		printf("\n");
		printf("	It is blank and the whole screen is buried.\n");
		printf("\n");
	} else if ((s == "clear") ) { 
		printf("::curses <clear>\n");
		printf("\n");
		printf("	A screen is cleared.\n");
		printf("\n");
	} else if ((s == "clrtobot") ) { 
		printf("::curses <clrtobot>\n");
		printf("\n");
		printf("	A lower screen is cleared from the position of cursor.\n");
		printf("\n");
	} else if ((s == "clrtoeol") ) { 
		printf("::curses <clrtoeol>\n");
		printf("\n");
		printf("	It clears from the position of cursor to the end of the sentence.\n");
		printf("\n");
	} else if ((s == "getch") ) { 
		printf("::curses <getch VAR>\n");
		printf("\n");
		printf("	The key code of one character is inputted and it is set as VAR.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "ungetch") ) { 
		printf("::curses <ungetch CHAR>\n");
		printf("\n");
		printf("	The key code of one character is returned.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "getstr") ) { 
		printf("::curses <getstr VAR>\n");
		printf("\n");
		printf("	A character string is inputted and it is set as VAR.\n");
		printf("\n");
		printf("\n");
	} else if ((s == "inch") ) { 
		printf("::curses <inch VAR>\n");
		printf("\n");
		printf("	The character of the cursor position is set as VAR.\n");
		printf("\n");
	} else if ((s == "instr") ) { 
		printf("::curses <instr VAR>\n");
		printf("\n");
		printf("	The character string of the cursor position is set as VAR.\n");
		printf("\n");
	} else if ((s == "beep") ) { 
		printf("::curses <beep>\n");
		printf("\n");
		printf("	The beep sounds an audible alarm on the terminal.\n");
		printf("\n");
	} else if ((s == "flash") ) { 
		printf("::curses <flash>\n");
		printf("\n");
		printf("	The flash flashes the screen.\n");
		printf("\n");
	} else if ((s == "hline") ) { 
		printf("::curses <hline CHAR LENGTH>\n");
		printf("\n");
		printf("	The  hline  and whline functions draw a horizontal line \n");
		printf("	using CHAR starting at the current cursor position.\n");
		printf("\n");
	} else if ((s == "vline") ) { 
		printf("::curses <vline CHAR LENGTH>\n");
		printf("\n");
		printf("	The  hline  and whline functions draw a vertical line \n");
		printf("	using CHAR starting at the current cursor position.\n");
		printf("\n");
	} else if ((s == "raw") ) { 
		printf("::curses <raw>\n");
		printf("\n");
		printf("	The raw  place the terminal into raw mode.\n");
		printf("\n");
	} else if ((s == "noraw") ) { 
		printf("::curses <noraw>\n");
		printf("\n");
		printf("	The noraw place the terminal out of raw mode.\n");
		printf("\n");
	} else if ((s == "keypad") ) { 
		printf("::curses <keypad VAL>\n");
		printf("\n");
		printf("	If TRUE is set as VAL, a cursor key and a function key will become effective.\n");
		printf("\n");
	} else if ((s == "LINES") ) { 
		printf("::curses <LINES VAR>\n");
		printf("\n");
		printf("	The number of lines of a screen is set as variable VAR.\n");
		printf("\n");
	} else if ((s == "COLS") ) { 
		printf("::curses <COLS VAR>\n");
		printf("\n");
		printf("	The number of characters of one line of a screen is set as variable VAR.\n");
		printf("\n");
	} else if ((s == "delch") ) { 
		printf("::curses <delch>\n");
		printf("\n");
		printf("	The character of the position of cursor is deleted.\n");
		printf("\n");
	} else if ((s == "mvdelch") ) { 
		printf("::curses <mvdelch X Y>\n");
		printf("\n");
		printf("	The character of a position (X.Y) is deleted.\n");
		printf("\n");
	} else if ((s == "scrollok") ) { 
		printf("::curses <scrollok VAL>\n");
		printf("\n");
		printf("	A scroll function will become effective if TRUE is set as VAL.\n");
		printf("\n");
	} else if ((s == "scrl") ) { 
		printf("::curses <scrl NUM>\n");
		printf("\n");
		printf("	NUM line scrolling is carried out. In a negative value, it scrolls \n");
		printf("	to an opposite direction. . \n");
		printf("\n");
		printf("\n");
		printf("\n");
		printf("\n");
		printf("\n");
	} else if ((s == "CheckReserved") ) { 
		printf("::compiler <CheckReserved NAME LIST>\n");
		printf("\n");
		printf("	Whether NAME is included in the reserved word included in LIST is checked. \n");
		printf("\n");
	} else if ((s == "GetVar") ) { 
		printf("::compiler <GetVar VAR KEY LIST>\n");
		printf("\n");
		printf("	Information on the variable that corresponds from LIST to KEY is taken out, \n");
		printf("	and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "AddVar") ) { 
		printf("::compiler <AddVar VAR KEY VAL LIST>\n");
		printf("\n");
		printf("	The variable and VAL information on KEY are registered in LIST, and it sets \n");
		printf("	it to VAR. \n");
		printf("\n");
	} else if ((s == "CheckVar") ) { 
		printf("::compiler <CheckVar KEY LIST>\n");
		printf("\n");
		printf("	Whether the variable of KEY is registered in LIST is examined. \n");
		printf("\n");
	} else if ((s == "GetConst") ) { 
		printf("::compiler <GetConst VAR KEY LIST>\n");
		printf("\n");
		printf("	Information on the constant that corresponds from LIST to KEY \n");
		printf("	is taken out, and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "AddConst") ) { 
		printf("::compiler <AddConst VAR KEY VAL LIST>\n");
		printf("\n");
		printf("	The constant and VAL information on KEY are registered in LIST, and it sets \n");
		printf("	it to VAR. \n");
		printf("\n");
	} else if ((s == "CheckConst") ) { 
		printf("::compiler <CheckConst KEY LIST>\n");
		printf("\n");
		printf("	Whether the constant of KEY is registered in LIST is examined. \n");
		printf("\n");
	} else if ((s == "NewFunc") ) { 
		printf("::compiler <NewFunc VAR LIST>\n");
		printf("\n");
		printf("	LIST is set to the environment of a new function, and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "EndFunc") ) { 
		printf("::compiler <EndFunc VAR LIST>\n");
		printf(" \n");
		printf("	The function environment of LIST is released, and it sets it to VAR. \n");
		printf("\n");
		printf("\n");
	} else if ((s == "add") ) { 
		printf("::matrix <add VAR LIST1 LIST2>\n");
		printf("\n");
		printf("	LIST1 is added to LIST2, and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "det") ) { 
		printf("::matrix <det VAR LIST>\n");
		printf("\n");
		printf("	Determinant of LIST is set to VAR. \n");
		printf("\n");
	} else if ((s == "display") ) { 
		printf("::matrix <display LIST>\n");
		printf("\n");
		printf("	LIST is displayed. \n");
		printf("\n");
	} else if ((s == "divscalar") ) { 
		printf("::matrix <divscalar VAR LIST1 VAL2>\n");
		printf("\n");
		printf("	The value in which LIST1 is divided in scalar value VAL2 is set to VAR. \n");
		printf("\n");
	} else if ((s == "eigen") ) { 
		printf("::matrix <eigen VARLIST VARVAL LIST>\n");
		printf("\n");
		printf("	Eigenvector of LIST is set to VARLIST, and eigenvalue is set to VARVAL. \n");
		printf("\n");
	} else if ((s == "equal") ) { 
		printf("::matrix <equal LIST1 LIST2>\n");
		printf("\n");
		printf("	It judges whether LIST1 is equal to matrix of LIST2. \n");
		printf("\n");
	} else if ((s == "fourier") ) { 
		printf("::matrix <fourier VAR LIST>\n");
		printf("\n");
		printf("	Do the Fourier transform of the data of LIST, and the result is set to VAR. \n");
		printf("\n");
	} else if ((s == "getcolumn") ) { 
		printf("::matrix <getcolumn VAR COLUMN LIST>\n");
		printf("\n");
		printf("	Column of COLUMN of LIST is taken out, and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "getrow") ) { 
		printf("::matrix <getrow VAR ROW LIST>\n");
		printf("\n");
		printf("	Row of ROW of LIST is taken out, and it sets it to VAR.\n");
		printf("\n");
	} else if ((s == "getval") ) { 
		printf("::matrix <getval VAR ROW COLUMN LIST>\n");
		printf("\n");
		printf("	The value of (COLUMN, ROW) of LIST is taken out, and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "inv") ) { 
		printf("::matrix <inv VAR LIST>\n");
		printf("\n");
		printf("	The matrix inverse of LIST is set to VAR. \n");
		printf("\n");
	} else if ((s == "invfourier") ) { 
		printf("::matrix <invfourier VAR LIST>\n");
		printf("\n");
		printf("	The reverse Fourier transform of LIST, and the result is set to VAR. \n");
		printf("\n");
	} else if ((s == "isdiagonal") ) { 
		printf("::matrix <isdiagonal LIST>\n");
		printf("\n");
		printf("	Whether LIST is a diagonal matrix is judged. \n");
		printf("\n");
	} else if ((s == "ismatrix") ) { 
		printf("::matrix <ismatrix LIST>\n");
		printf("\n");
		printf("	Whether LIST is matrix is judged. \n");
		printf("\n");
	} else if ((s == "isnull") ) { 
		printf("::matrix <isnull LIST>\n");
		printf("\n");
		printf("	The element of LIST is all 0 is judged.  \n");
		printf("\n");
	} else if ((s == "isregular") ) { 
		printf("::matrix <isregular LIST>\n");
		printf("\n");
		printf("	It is judged that LIST is a regular matrix. \n");
		printf("\n");
	} else if ((s == "issingular") ) { 
		printf("::matrix <issingular LIST>\n");
		printf("\n");
		printf("	It is judged that LIST is not a regular \n");
		printf("\n");
	} else if ((s == "issquare") ) { 
		printf("::matrix <issquare LIST>\n");
		printf("\n");
		printf("	It is judged that LIST is a square matrix. \n");
		printf("\n");
	} else if ((s == "issymmetric") ) { 
		printf("::matrix <issymmetric LIST>\n");
		printf("\n");
		printf("	It is judged that LIST is a symmetric matrix. \n");
		printf("\n");
	} else if ((s == "isvector") ) { 
		printf("::matrix <isvector LIST>\n");
		printf("\n");
		printf("	It is judged that LIST is a vector. \n");
		printf("\n");
	} else if ((s == "mul") ) { 
		printf("::matrix <mul VAR LIST1 LIST2>\n");
		printf("\n");
		printf("	Matrix LIST1*LIST2 is set to VAR. \n");
		printf("\n");
	} else if ((s == "mulscalar") ) { 
		printf("::matrix <mulscalar VAR VAL1 LIST2>\n");
		printf("\n");
		printf("	VAL1*LIST2 is set to VAR. \n");
		printf("\n");
	} else if ((s == "notequal") ) { 
		printf("::matrix <notequal LIST1 LIST2>\n");
		printf("\n");
		printf("	It is judged that LIST1 is not equal to matrix of LIST2. \n");
		printf("\n");
	} else if ((s == "random") ) { 
		printf("::matrix <random VAR ROW COLUMN>\n");
		printf("\n");
		printf("	The element of ROW x COLUMN sets matrix of random numbers to VAR. \n");
		printf("\n");
	} else if ((s == "range") ) { 
		printf("::matrix <range VAR ROW1 ROW2 COLUMN1 COLUMN2 LIST>\n");
		printf("\n");
		printf("	It takes out of matirx LIST in the part of ROW1-ROW2 and \n");
		printf("	COLUMN1-COLUMN2 and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "rangecolumn") ) { 
		printf("::matrix <rangecolumn VAR COLUMN1 COLUMN2 LIST>\n");
		printf("\n");
		printf("	The part of COLUMN1-COLUMN2 is taken out of matrix LIST and it sets it \n");
		printf("	to VAR. \n");
		printf("\n");
	} else if ((s == "rangerow") ) { 
		printf("::matrix <rangerow VAR ROW1 ROW2 LIST>\n");
		printf("\n");
		printf("	The part of ROW1-ROW2 is taken out of matrix LIST and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "RowSortAscendig") ) { 
		printf("::matrix <RowSortAscendig VAR LIST>\n");
		printf("\n");
		printf("	It sorts it in ascending order by the first element of LIST. \n");
		printf("\n");
	} else if ((s == "set") ) { 
		printf("::matrix <set VAR ROW COLUMN LIST>\n");
		printf("\n");
		printf("	LIST is converted into matrix of ROWxCOLUMN and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "setval") ) { 
		printf("::matrix <setval VAR ROW COLUMN VAL LIST>\n");
		printf("\n");
		printf("	The value of the position of (ROW, COLUMN) of LIST is replaced \n");
		printf("	with VAL, and it sets it to VAR. \n");
		printf("\n");
	} else if ((s == "size") ) { 
		printf("::matrix <size VARROW VARCOLUMN LIST>\n");
		printf("\n");
		printf("	The size of ROW and COLUMN of LIST is set to (VARROW, VARCOLUMN). \n");
		printf("\n");
	} else if ((s == "solve") ) { 
		printf("::matrix <solve VAR LIST1 LIST2>\n");
		printf("\n");
		printf("	Simultaneous equations LIST1*X=LIST2 is solved. \n");
		printf("\n");
	} else if ((s == "sub") ) { 
		printf("::matrix <sub VAR LIST1 LIST2>\n");
		printf("\n");
		printf("	The difference of matrix of LIST1 and LIST2 is set to VAR. \n");
		printf("\n");
	} else if ((s == "swapcolumn") ) { 
		printf("::matrix <swapcolumn VAR COLUMN1 COLUMN2 LIST>\n");
		printf("\n");
		printf("	COLUMN1 of LIST is replaced with COLUMN2. \n");
		printf("\n");
	} else if ((s == "swaprow") ) { 
		printf("::matrix <swaprow VAR ROW1 ROW2 LIST>\n");
		printf("\n");
		printf("	ROW1 of LIST is replaced with ROW2. \n");
		printf("\n");
	} else if ((s == "transposed") ) { 
		printf("::matrix <transposed VAR LIST>\n");
		printf("\n");
		printf("	The transposed matrix of LIST is set to VAR. \n");
		printf("\n");
	} else if ((s == "unit") ) { 
		printf("::matrix <unit VAR ROW>\n");
		printf("\n");
		printf("	The unit matrix of ROWxROW is set to VAR. \n");
		printf("\n");
	} else if ((s == "zero") ) { 
		printf("::matrix <zero VAR ROW COLUMN>\n");
		printf("\n");
		printf("	Zero matrix of ROWxCOLUMN is set to VAR. \n");
		printf("\n");
	} else if ((s == "append") ) { 
		printf("::list <append #out #in1 #in2>\n");
		printf("\n");
		printf("	#In1 is connected with # in2 list, and it sets it to # out. \n");
		printf("\n");
	} else if ((s == "reverse") ) { 
		printf("::list <reverse #out #in>\n");
		printf("\n");
		printf("	List #in is converted in reverse the order and it sets it to #out. \n");
		printf("\n");
	} else if ((s == "member") ) { 
		printf("::list <member #mem #list>\n");
		printf("\n");
		printf("	Whether #mem is included in #list is judged. \n");
		printf("\n");
	} else if ((s == "last") ) { 
		printf("::list <last #out #list>\n");
		printf("\n");
		printf("	The last element of list #list is set to #out. \n");
		printf("\n");
	} else if ((s == "flatten") ) { 
		printf("::list <flatten #out #in>\n");
		printf("\n");
		printf("	The list of the nest in list #in is converted into a smooth \n");
		printf("	list and it sets it to #out. \n");
		printf("\n");
	} else if ((s == "difference") ) { 
		printf("::list <difference #out #in1 #in2>\n");
		printf("\n");
		printf("	An element in the element of list #in1 and #in2 lists not \n");
		printf("	common is set the list of the element that doesn't exist \n");
		printf("	in #in2 is set to #out though it is in #in1 as a difference. \n");
		printf("\n");
	} else if ((s == "intersect") ) { 
		printf("::list <intersect #out #in1 #in2>\n");
		printf("\n");
		printf("	Elements of list #in1 and #in2 are compared, and the list \n");
		printf("	of a common element is set to #out. The universal component \n");
		printf("	is extracted regardless of the order of the element. \n");
		printf("\n");
	} else if ((s == "union") ) { 
		printf("::list <union #out #in1 #in2>\n");
		printf("\n");
		printf("	The element of list #in1 and #in2 is unified, and a common \n");
		printf("	element makes to one so as not to overlap, and sets all \n");
		printf("	elements to #out. \n");
		printf("\n");
	} else if ((s == "subset") ) { 
		printf("::list <subset #subset #set>\n");
		printf("\n");
		printf("	When #subset is a subset of #set, it becomes true. \n");
		printf("\n");
	} else if ((s == "join") ) { 
		printf("::list <join #out #in1 #in2>\n");
		printf("\n");
		printf("	The list that annexes #in1 to #in2 is set to #out. \n");
		printf("	Annexation is done in each element of the order of #in1 \n");
		printf("	and #in2 corresponding. The first #in1 and the first #in2 \n");
		printf("	are added to #out, and in a word, the following queue up \n");
		printf("	the second element, and set this to #out repeatedly even \n");
		printf("	by the last element of the list. \n");
		printf("\n");
	} else if ((s == "occures") ) { 
		printf("::list <occures #n #e #list>\n");
		printf("\n");
		printf("	Element #e sets the frequency that appears in #list to #n. \n");
		printf("\n");
	} else if ((s == "append") ) { 
		printf("::generator <append #out #in1 #in2>\n");
		printf("\n");
		printf("	The permutation that chooses the number of LEN from the element \n");
		printf("	of LIST is set to VAR variable. \n");
		printf("	The set permutation is chosen at random. \n");
		printf("\n");
	} else if ((s == "combination") ) { 
		printf("::generator <combination VAR LIST [LEN]>\n");
		printf("\n");
		printf("	The combination that chooses the number of LEN from the element \n");
		printf("	of LIST is set to VAR variable. \n");
		printf("	The set combination is chosen at random. \n");
		printf("\n");
	} else if ((s == "perm_rep") ) { 
		printf("::generator <perm_rep VAR LIST [LEN]>\n");
		printf("\n");
		printf("	The permutation that chooses the number of LEN from the element \n");
		printf("	of LIST is set to VAR variable. \n");
		printf("	Repetition is permitted. \n");
		printf("	The set permutation is chosen at random. \n");
		printf("\n");
	} else if ((s == "combi_rep") ) { 
		printf("::generator <combi_rep VAR LIST [LEN]>\n");
		printf("\n");
		printf("	The combination that chooses the number of LEN from the element \n");
		printf("	of LIST is set to VAR variable. \n");
		printf("	Repetition is permitted. \n");
		printf("	The set combination is chosen at random. \n");
		printf("\n");
	} else if ((s == "permutationAll") ) { 
		printf("::generator <permutationAll [RESULT_VAR] (VAR LIST [LEN]) PRED ... >\n");
		printf("\n");
		printf("	The permutation that chooses the number of LEN from the element \n");
		printf("	of LIST is set to VAR variable, and the PRED predicate of \n");
		printf("	the argument is called. \n");
		printf("	All permutations are sequentially executed. \n");
		printf("	The one that the first arguments of PRED were collected is returned \n");
		printf("	to RESULT_VAR as a result. \n");
		printf("\n");
	} else if ((s == "combinationAll") ) { 
		printf("::generator <combinationAll [RESULT_VAR] (VAR LIST [LEN]) PRED ... >\n");
		printf("\n");
		printf("	The combination that chooses the number of LEN from the element \n");
		printf("	of LIST is set to VAR variable, and the PRED predicate of \n");
		printf("	the argument is called. \n");
		printf("	All cominations are sequentially executed. \n");
		printf("	The one that the first arguments of PRED were collected is returned \n");
		printf("	to RESULT_VAR as a result. \n");
		printf("\n");
	}

	return 1;
}

int HelpBuiltinCmd()
{
	printf("Builtin predicate: \n");

	printf("alt, ");
	printf("assert, ");
	printf("asserta, ");
	printf("assertz, ");
	printf("catch, ");
	printf("cd, ");
	printf("compare, ");
	printf("comparef, ");
	printf("dir, ");
	printf("eachproc, ");
	printf("eachproc, ");
	printf("edit, ");
	printf("eq, ");
	printf("erase, ");
	printf("exit, ");
	printf("f, ");
	printf("func, ");
	printf("findall, ");
	printf("firsteachproc, ");
	printf("firsteachproc, ");
	printf("firstfor, ");
	printf("firstfor, ");
	printf("firstfor, ");
	printf("firstfor, ");
	printf("firstforeach, ");
	printf("firstforeach, ");
	printf("firstnewproc, ");
	printf("firstnewproc, ");
	printf("firstnewproc, ");
	printf("firstnewproc, ");
	printf("for, ");
	printf("for, ");
	printf("for, ");
	printf("for, ");
	printf("foreach, ");
	printf("foreach, ");
	printf("include, ");
	printf("help, ");
	printf("help, ");
	printf("is, ");
	printf("let, ");
	printf("letf, ");
	printf("letc, ");
	printf("list, ");
	printf("load, ");
	printf("loop, ");
	printf("ls, ");
	printf("map, ");
	printf("module, ");
	printf("new, ");
	printf("newproc, ");
	printf("newproc, ");
	printf("newproc, ");
	printf("newproc, ");
	printf("nop, ");
	printf("not, ");
	printf("noteq, ");
	printf("obj, ");
	printf("or, ");
	printf("print, ");
	printf("printf, ");
	printf("printlist, ");
	printf("printlistnl, ");
	printf("pwd, ");
	printf("quit, ");
	printf("quote, ");
	printf("retract, ");
	printf("retractpred, ");
	printf("rpn, ");
	printf("rpnf, ");
	printf("rpnc, ");
	printf("save, ");
	printf("self, ");
	printf("super, ");
	printf("throw, ");
	printf("timeout, ");
	printf("troff, ");
	printf("tron, ");
	printf("true, ");
	printf("false, ");
	printf("unknown, ");
	printf("unify, ");
	printf("warn, ");
	printf("x, ");
	printf("!, ");
	printf("%%, ");
	printf("\\, ");
	printf("TOKEN, ");
	printf("SKIPSPACE, ");
	printf("C, ");
	printf("N, ");
	printf("A, ");
	printf("AN, ");
	printf("^, ");
	printf("$, ");
	printf("*, ");
	printf("CR, ");
	printf("CNTL, ");
	printf("EOF, ");
	printf("SPACE, ");
	printf("PUNCT, ");
	printf("WORD, ");
	printf("NUM, ");
	printf("FNUM, ");
	printf("SNUM, ");
	printf("SFNUM, ");
	printf("GETTOKEN, ");
	printf("ID, ");
	printf("INDENT, ");
	printf("RANGE, ");
	printf("NONRANGE, ");
	printf("NEXTCHAR, ");
	printf("NEXTINDENT, ");
	printf("NEXTSTR, ");
	printf("NEXTSYNTAX, ");
	printf("NOTNEXTSTR, ");
	printf("NOTNEXTSYNTAX, ");
	printf("NULLLINE, ");
	printf("SKIP, ");
	printf("SKIPCR, ");
	printf("newObj, ");
	printf("cloneObj, ");
	printf("delObj, ");
	printf("method, ");
	printf("methoda, ");
	printf("methodz, ");
	printf("delmethod, ");
	printf("delmethoda, ");
	printf("delmethodz, ");
	printf("setVar, ");
	printf("delVar, ");
	printf("setArray, ");
	printf("delArray, ");
	printf("VAR, ");
	printf("VAR, ");

	printf("\n\n");
	return 1;
}

int HelpSysCmd()
{
	printf("Sys MODULE predicate: \n");

	printf("append, ");
	printf("reverse, ");
	printf("member, ");
	printf("arg, ");
	printf("args, ");
	printf("avg, ");
	printf("avgf, ");
	printf("basename, ");
	printf("checkObj, ");
	printf("chomp, ");
	printf("chop, ");
	printf("clear, ");
	printf("conj, ");
	printf("dirname, ");
	printf("DLIBPATH, ");
	printf("EqOR, ");
	printf("erasealltags, ");
	printf("erasestr, ");
	printf("erasetags, ");
	printf("findlist, ");
	printf("getenv, ");
	printf("gsub, ");
	printf("htmldecode, ");
	printf("htmlencode, ");
	printf("htmltags, ");
	printf("httpget, ");
	printf("httphead, ");
	printf("httppost, ");
	printf("iconv, ");
	printf("image, ");
	printf("insertstr, ");
	printf("isNil, ");
	printf("isAtom, ");
	printf("isList, ");
	printf("isPred, ");
	printf("isVar, ");
	printf("isUndefVar, ");
	printf("isFloat, ");
	printf("isInteger, ");
	printf("isInf, ");
	printf("isNan, ");
	printf("isObj, ");
	printf("isTrue, ");
	printf("isFalse, ");
	printf("isUnknown, ");
	printf("isRegistered, ");
	printf("isUnregistered, ");
	printf("leftstr, ");
	printf("lefttrim, ");
	printf("max, ");
	printf("maxf, ");
	printf("min, ");
	printf("minf, ");
	printf("mkpred, ");
	printf("nth, ");
	printf("setnth, ");
	printf("norm, ");
	printf("polar, ");
	printf("pulloutstr, ");
	printf("real, ");
	printf("regex, ");
	printf("rightstr, ");
	printf("righttrim, ");
	printf("padding, ");
	printf("replacestr, ");
	printf("seq, ");
	printf("sort, ");
	printf("sortascend, ");
	printf("sortdescend, ");
	printf("split, ");
	printf("strbyte, ");
	printf("strdelcntl, ");
	printf("strfry, ");
	printf("strlen, ");
	printf("strrepeat, ");
	printf("strrotateleft, ");
	printf("strrotateright, ");
	printf("strshiftleft, ");
	printf("strshiftright, ");
	printf("strsort, ");
	printf("strsortreverse, ");
	printf("sum, ");
	printf("sumf, ");
	printf("sub, ");
	printf("suffix, ");
	printf("substr, ");
	printf("switch, ");
	printf("toupper, ");
	printf("tolower, ");
	printf("trim, ");
	printf("writenl, ");
	printf("write, ");
	printf("w, ");
	printf("length, ");
	printf("random, ");
	printf("PI, ");
	printf("sin, ");
	printf("cos, ");
	printf("tan, ");
	printf("asin, ");
	printf("acos, ");
	printf("atan, ");
	printf("atan2, ");
	printf("sinh, ");
	printf("cosh, ");
	printf("tanh, ");
	printf("asinh, ");
	printf("acosh, ");
	printf("atanh, ");
	printf("e, ");
	printf("log, ");
	printf("log10, ");
	printf("exp, ");
	printf("exp2, ");
	printf("exp10, ");
	printf("pow, ");
	printf("sqrt, ");
	printf("abs, ");
	printf("int, ");
	printf("ceil, ");
	printf("floor, ");
	printf("trunc, ");
	printf("car, ");
	printf("cdr, ");
	printf("caar, ");
	printf("cadr, ");
	printf("cdar, ");
	printf("cddr, ");
	printf("caaar, ");
	printf("caadr, ");
	printf("cadar, ");
	printf("caddr, ");
	printf("cdaar, ");
	printf("cdadr, ");
	printf("cddar, ");
	printf("cdddr, ");
	printf("caaaar, ");
	printf("caaadr, ");
	printf("caadar, ");
	printf("caaddr, ");
	printf("cadaar, ");
	printf("cadadr, ");
	printf("caddar, ");
	printf("cadddr, ");
	printf("cdaaar, ");
	printf("cdaadr, ");
	printf("cdadar, ");
	printf("cdaddr, ");
	printf("cddaar, ");
	printf("cddadr, ");
	printf("cdddar, ");
	printf("cddddr, ");
	printf("cons, ");
	printf("code, ");
	printf("char, ");
	printf("byte, ");
	printf("asciichar, ");
	printf("utf8char, ");
	printf("eucchar, ");
	printf("sjischar, ");
	printf("concat, ");
	printf("concatcode, ");
	printf("bitand, ");
	printf("bitor, ");
	printf("bitxor, ");
	printf("bitnot, ");
	printf("shiftl, ");
	printf("shiftr, ");
	printf("eq, ");
	printf("noteq, ");
	printf("is, ");
	printf("getc, ");
	printf("putc, ");
	printf("getline, ");
	printf("syntax, ");
	printf("tmpfile, ");
	printf("openr, ");
	printf("openw, ");
	printf("openwp, ");
	printf("gettime, ");
	printf("time, ");
	printf("date, ");
	printf("sleep, ");
	printf("usleep, ");
	printf("pause, ");
	printf("uname, ");
	printf("countnode, ");
	printf("PrintResultOff, ");
	printf("PrintResultOn, ");
	printf("urldecode, ");
	printf("urlencode, ");
	printf("gc, ");

	printf("\n\n");
	return 1;
}

int HelpCursesCmd()
{
	printf("Curses MODULE predicate: \n");

	printf("startcurses, ");
	printf("mvprintw, ");
	printf("printw, ");
	printf("refresh, ");
	printf("move, ");
	printf("cbreak, ");
	printf("nobreak, ");
	printf("echo, ");
	printf("noecho, ");
	printf("border, ");
	printf("erase, ");
	printf("clear, ");
	printf("clrtobot, ");
	printf("clrtoeol, ");
	printf("getch, ");
	printf("ungetch, ");
	printf("getstr, ");
	printf("inch, ");
	printf("instr, ");
	printf("beep, ");
	printf("flash, ");
	printf("hline, ");
	printf("vline, ");
	printf("raw, ");
	printf("noraw, ");
	printf("keypad, ");
	printf("LINES, ");
	printf("COLS, ");
	printf("delch, ");
	printf("mvdelch, ");
	printf("scrollok, ");
	printf("scrl, ");

	printf("\n\n");
	return 1;
}

int HelpCompilerCmd()
{
	printf("Compiler MODULE predicate: \n");

	printf("CheckReserved, ");
	printf("GetVar, ");
	printf("AddVar, ");
	printf("CheckVar, ");
	printf("GetConst, ");
	printf("AddConst, ");
	printf("CheckConst, ");
	printf("NewFunc, ");
	printf("EndFunc, ");

	printf("\n\n");
	return 1;
}


int HelpMatrixCmd()
{
	printf("Matrix MODULE predicate: \n");

	printf("add, ");
	printf("det, ");
	printf("display, ");
	printf("divscalar, ");
	printf("eigen, ");
	printf("equal, ");
	printf("fourier, ");
	printf("getcolumn, ");
	printf("getrow, ");
	printf("getval, ");
	printf("inv, ");
	printf("invfourier, ");
	printf("isdiagonal, ");
	printf("ismatrix, ");
	printf("isnull, ");
	printf("isregular, ");
	printf("issingular, ");
	printf("issquare, ");
	printf("issymmetric, ");
	printf("isvector, ");
	printf("mul, ");
	printf("mulscalar, ");
	printf("notequal, ");
	printf("random, ");
	printf("range, ");
	printf("rangecolumn, ");
	printf("rangerow, ");
	printf("RowSortAscendig, ");
	printf("set, ");
	printf("setval, ");
	printf("size, ");
	printf("solve, ");
	printf("sub, ");
	printf("swapcolumn, ");
	printf("swaprow, ");
	printf("transposed, ");
	printf("unit, ");
	printf("zero, ");

	printf("\n\n");
	return 1;
}

int HelpListCmd()
{
	printf("List MODULE predicate: \n");

	printf("append, ");
	printf("reverse, ");
	printf("member, ");
	printf("last, ");
	printf("flatten, ");
	printf("difference, ");
	printf("intersect, ");
	printf("union, ");
	printf("subset, ");
	printf("join, ");
	printf("occures, ");

	printf("\n\n");
	return 1;
}

int HelpGeneratorCmd()
{
	printf("generator MODULE predicate: \n");

	printf("append, ");
	printf("combination, ");
	printf("perm_rep, ");
	printf("combi_rep, ");
	printf("permutationAll, ");
	printf("combinationAll, ");

	printf("\n\n");
	return 1;
}

int HelpBuiltin(const char* name)
{
	std::string sname = (const char*)name;

	printf("* Builtin PREDICATION\n");
	printf("\n");
	printf("  Unlike a library module, an builtin predicate is called without\n");
	printf("specifying a liblary-module name.\n");
	printf("\n");
	printf("---------------------------------------------------------------\n");
	printf("\n");
	printf("<alt PRED...>\n");
	printf("\n");
	printf("	Alternative predicate execution is shown.\n");
	printf("	Even if the results of Argument PRED are true, false,\n");
	printf("	and unknown, it is certainly set to true.\n");
	printf("	It expresses [PRED...] as substitution.It uses by syntax\n");
	printf("	analysis as [] of the method of EBNF.\n");
	printf("\n");
	printf("<assert CLAUSE>\n");
	printf("<asserta CLAUSE>\n");
	printf("<assertz CLAUSE>\n");
	printf("\n");
	printf("	CLAUSE is added.\n");
	printf("	asserta is added to a head and assertz is added at\n");
	printf("	the end.\n");
	printf("	assert is the same as asserta and is added to a head.\n");
	printf("\n");
	printf("<catch VAR PRED ...>\n");
	printf("\n");
	printf("	The processing after that is interrupted when the throw \n");
	printf("	predicate is executed while executing the predicate of \n");
	printf("	the argument, the entire processing of this catch predicate \n");
	printf("	succeeds, and it ends. At that time, the argument of \n");
	printf("	the throw predicate is set to the variable of the catch \n");
	printf("	predicate. When all predicates of the argument are executed \n");
	printf("	without executing throw, '()' is set to the variable of \n");
	printf("	the catch predicate. \n");
	printf("\n");
	printf("<cd PATH>\n");
	printf("\n");
	printf("	A current directory is moved to the PATH specified\n");
	printf("	by the argument.\n");
	printf("\n");
	printf("<compare EXPRESSION>\n");
	printf("<comparef EXPRESSION>\n");
	printf("\n");
	printf("	EXPRESSION is evaluated.\n");
	printf("	compare is an integer and comparef is comparison of\n");
	printf("	a float number.\n");
	printf("\n");
	printf("<dir>\n");
	printf("\n");
	printf("	A current directory is displayed.\n");
	printf("\n");
	printf("<eachproc (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
	printf("<eachproc RESULT_VAR (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
	printf("\n");
	printf("	The eachproc predicate is a function that executes \n");
	printf("	it in parallel specifying the number of parallel processes. \n");
	printf("	The process of the element of the specified list is \n");
	printf("	generated in parallel.  The control returns to the \n");
	printf("	called eachproc predicate when all processes generated \n");
	printf("	with eachproc end, and the result of all processes is collected. \n");
	printf("\n");
	printf("<edit FILE-NAME>\n");
	printf("\n");
	printf("	A FILE-NAME is edited using the editor set as the \n");
	printf("	environment variables DEDITORPATH and EDITOR.\n");
	printf("\n");
	printf("<eq ARG1 ARG2>\n");
	printf("\n");
	printf("	It compares, and if it is the same, it becomes true about ARG1 and ARG2. \n");
	printf("\n");
	printf("<erase CLAUSE-NAME>\n");
	printf("\n");
	printf("	All the programs, variables and objects corresponding to CLAUSE-NAME are\n");
	printf("	deleted.\n");
	printf("\n");
	printf("<exit>\n");
	printf("\n");
	printf("	Execution is interrupted on the way.\n");
	printf("\n");
	printf("\n");
	printf("<f VAR PRED...>\n");
	printf("<func VAR PRED...>\n");
	printf("\n");
	printf("	Execution evaluation of the function predicate contained\n");
	printf("	in PRED-LIST is carried out. A value is replaced.\n");
	printf("	After performing all, a result is set to a variable.\n");
	printf("\n");
	printf("<findall PRED...>\n");
	printf("\n");
	printf("	PRED is performed and all the solutions are calculated.\n");
	printf("\n");
	printf("<firsteachproc (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
	printf("<firsteachproc RESULT_VAR (ELEMEENT_VAR ELEMENT_LIST) PREDICATES ...>\n");
	printf("\n");
	printf("	The firsteachproc predicate is a function that executes it \n");
	printf("	in parallel specifying the number of parallel processes. \n");
	printf("	The process of the element of the specified list is generated \n");
	printf("	in parallel. \n");
	printf("	The control returns to the called firsteachproc predicate when \n");
	printf("	as much as one all processes generated with firsteachproc end, \n");
	printf("	and the result of the process that ended first is collected. \n");
	printf("	As for the process of the remainder, it breaks off processing. \n");
	printf("\n");
	printf("<firstfor (VAR lastvalue) PRED...>\n");
	printf("<firstfor (VAR initialvalue lastvalue) PRED...>\n");
	printf("<firstfor RESULT_VAR (VAR lastvalue) PRED...>\n");
	printf("<firstfor RESULT_VAR (VAR initialvalue lastvalue) PRED...>\n");
	printf("\n");
	printf("	The result of the predicate that ends first with true is set \n");
	printf("	to the result variable, and it breaks off processing thereafter \n");
	printf("	though the firstfor predicate operates just like the for sentence. \n");
	printf("\n");
	printf("<firstforeach (VAR LIST) PRED...>\n");
	printf("<firstforeach RESULT_VAR (VAR LIST) PRED...>\n");
	printf("\n");
	printf("	The result of the predicate that ends first with true is set to \n");
	printf("	the result variable, and it breaks off processing thereafter \n");
	printf("	though the firstforeach predicate operates just like the foreach sentence. \n");
	printf("\n");
	printf("<firstnewproc (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
	printf("<firstnewproc (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
	printf("<firstnewproc RESULT_VAR (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
	printf("<firstnewproc RESULT_VAR (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
	printf("\n");
	printf("	The firstnewproc predicate is a function that executes it \n");
	printf("	in parallel specifying the number of parallel processes. \n");
	printf("	The processes of the specified number are generated in parallel.  \n");
	printf("	The control returns to the called newproc predicate when \n");
	printf("	as much as one process generated with firstnewproc ends, \n");
	printf("	and the result of the process that ended first is collected. \n");
	printf("	As for the process of the remainder, it breaks off processing. \n");
	printf("\n");
	printf("<for (VAR lastvalue) PRED...>\n");
	printf("<for (VAR initialvalue lastvalue) PRED...>\n");
	printf("<for RESULT_VAR (VAR lastvalue) PRED...>\n");
	printf("<for RESULT_VAR (VAR initialvalue lastvalue) PRED...>\n");
	printf("\n");
	printf("	The predicate of the specified number of times and an\n");
	printf("	argument is performed.\n");
	printf("	When the initial value is not specified, the value\n");
	printf("	from 0 is set to a VAR.\n");
	printf("	When the result variable is specified, the one that the \n");
	printf("	first arguments of the first executed predicate were \n");
	printf("	sequentially collected is returned to the result variable \n");
	printf("	as a list. \n");
	printf("\n");
	printf("<foreach (VAR LIST) PRED...>\n");
	printf("<foreach RESULT_VAR (VAR LIST) PRED...>\n");
	printf("\n");
	printf("	PRED of arguments are performed for every element\n");
	printf("	of LIST.\n");
	printf("	The value of a list is set to a variable in order.\n");
	printf("	When the result variable is specified, the one that the \n");
	printf("	first arguments of the first executed predicate were \n");
	printf("	sequentially collected is returned to the result variable \n");
	printf("	as a list. \n");
	printf("\n");
	printf("<include FILENAME>\n");
	printf("\n");
	printf("	The library of a FILE-NAME is read.\n");
	printf("\n");
	printf("<help>\n");
	printf("<help PRED>\n");
	printf("\n");
	printf("	HELP manual is displayed.\n");
	printf("	If it performs without an argument, the list of an built-in \n");
	printf("	predicate and the predicates of the library of a sys module \n");
	printf("	will be displayed.\n");
	printf("\n");
	printf("<is ARG1 ARG2>\n");
	printf("\n");
	printf("	It is true when the unification doing becoming the same as for ARG1 and ARG2. \n");
	printf("	When the item is a variable, it becomes substitution of the value. \n");
	printf("\n");
	printf("<let VAR = EXPRESSION>\n");
	printf("<letf VAR = EXPRESSION>\n");
	printf("<letc VAR = EXPRESSION>\n");
	printf("\n");
	printf("	Expression is calculated.\n");
	printf("	A calculation result is substituted when the left\n");
	printf("	side is a variable.\n");
	printf("	When the left side is a numerical value, it is\n");
	printf("	judged whether it is equal to a calculation result.\n");
	printf("	let calculates an integer and letf is calculation\n");
	printf("	of floating number.\n");
	printf("	letc calculates a complex number.\n");
	printf("\n");
	printf("<list [VAR]>\n");
	printf("\n");
	printf("	A program list is displayed.\n");
	printf("\n");
	printf("<load FILE-NAME>\n");
	printf("\n");
	printf("	The program of a FILE-NAME is read.\n");
	printf("\n");
	printf("<loop PRED...>\n");
	printf("\n");
	printf("	A repetition of predicate execution is shown.\n");
	printf("	It was called inside. Failure of a predicate\n");
	printf("	will escape from a loop.\n");
	printf("	It is the predicate which is surely successful\n");
	printf("	by true,\n");
	printf("	It expresses {PRED...} as substitution.\n");
	printf("	It uses by syntax analysis as {} of the method\n");
	printf("	of EBNF.\n");
	printf("\n");
	printf("<ls>\n");
	printf("\n");
	printf("	A current directory is displayed.\n");
	printf("\n");
	printf("<map (VAR LIST) PRED...>\n");
	printf("\n");
	printf("	PRED of arguments are performed for every element\n");
	printf("	of LIST.\n");
	printf("	The value of a list is set to a variable in order.\n");
	printf("\n");
	printf("<module VAR>\n");
	printf("\n");
	printf("	The library module used now is set to a variable.\n");
	printf("\n");
	printf("<new>\n");
	printf("\n");
	printf("	All program is cleared.\n");
	printf("\n");
	printf("\n");
	printf("<newproc (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
	printf("<newproc (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
	printf("<newproc RESULT_VAR (PROC_NUMBER_VAR PROCNUM) PREDICATES ...>\n");
	printf("<newproc RESULT_VAR (PROC_NUMBER_VAR INIT_PROCNUM TO_PROCNUM) PREDICATES ...>\n");
	printf("\n");
	printf("	The newproc predicate is a function that executes \n");
	printf("	it in parallel specifying the number of parallel processes. \n");
	printf("	The processes of the specified number are generated in parallel.  \n");
	printf("	The control returns to the called newproc predicate when all \n");
	printf("	processes generated with newproc end, and the result of all \n");
	printf("	processes is collected. \n");
	printf("\n");
	printf("\n");
	printf("<nop ...>\n");
	printf("\n");
	printf("	Nothing is operated for the argument. \n");
	printf("	This any predicate is not operated (No OPeration). \n");
	printf("	True is always returned. \n");
	printf("\n");
	printf("<not PRED...>\n");
	printf("	false is returned when predicate execution is true.\n");
	printf("	In false, true is returned.\n");
	printf("	In unknown, unknown is returned.\n");
	printf("\n");
	printf("<noteq ARG1 ARG2>\n");
	printf("\n");
	printf("	If it compares, and it is not the same, it becomes true about ARG1 and ARG2.\n");
	printf("\n");
	printf("<obj OBJECTNAME PRED...>\n");
	printf("\n");
	printf("	A predicate is performed using the specified object\n");
	printf("	or module.\n");
	printf("	A module is the same as an object.\n");
	printf("	It can be described as ::object <PRED...> as an\n");
	printf("	omitted type.\n");
	printf("\n");
	printf("<or PRED PRED PRED ...>\n");
	printf("\n");
	printf("	In the place which performed the predicate of the\n");
	printf("	argument from the head and was set to true Processing\n");
	printf("	is closed and true is returned.\n");
	printf("	In the place which performed the predicate of the argument\n");
	printf("	from the head and was set to false Processing is closed\n");
	printf("	and false is returned.\n");
	printf("	unknown is returned when all the predicates are unknown.\n");
	printf("	It uses by syntax analysis as | of the method\n");
	printf("	of EBNF.\n");
	printf("\n");
	printf("<print LIST>\n");
	printf("\n");
	printf("	After outputting a list, a new line is started.\n");
	printf("	<writenl LIST> is the same as <print LIST>.\n");
	printf("\n");
	printf("<printf LIST>\n");
	printf("\n");
	printf("	LIST is outputted. \n");
	printf("	The differences from print are a blanks not entering \n");
	printf("	between the elements of a list, and not starting a new \n");
	printf("	line automatically. \n");
	printf("\n");
	printf("<printlist LIST>\n");
	printf("\n");
	printf("	A parenthesis is removed and LIST is outputted.\n");
	printf("\n");
	printf("<printlistnl LIST>\n");
	printf("\n");
	printf("	LIST is outputted removing a parenthesis and starting \n");
	printf("	a new line for every element.\n");
	printf("\n");
	printf("<pwd [VAR]>\n");
	printf("\n");
	printf("	The current directory is set to VAR.\n");
	printf("\n");
	printf("<quit>\n");
	printf("\n");
	printf("	Execution of a program is stopped and it ends.\n");
	printf("\n");
	printf("<quote PRED>\n");
	printf("\n");
	printf("	Evaluation of the function predicate of an argument\n");
	printf("	is deterred.\n");
	printf("\n");
	printf("<retract CLAUSE-NAME>\n");
	printf("\n");
	printf("	All the programs, variables and objects corresponding to CLAUSE-NAME are\n");
	printf("	deleted.\n");
	printf("\n");
	printf("<retractpred HEAD-NAME>\n");
	printf("\n");
	printf("	All the programs corresponding to HEAD-NAME are\n");
	printf("	deleted.\n");
	printf("\n");
	printf("<rpn VAR RPNEXPRESSION>\n");
	printf("<rpnf VAR RPNEXPRESSION>\n");
	printf("<rpnc VAR RPNEXPRESSION>\n");
	printf("\n");
	printf("	A reverse Poland style is calculated and a result\n");
	printf("	is set to a variable.\n");
	printf("	rpn calculates an integer and rpnf calculates floating\n");
	printf("	number.\n");
	printf("	rpnc calculates a complex number.\n");
	printf("\n");
	printf("<save FILE-NAME>\n");
	printf("\n");
	printf("	The program of a FILE-NAME is written in.\n");
	printf("\n");
	printf("<self VAR>\n");
	printf("\n");
	printf("	An own object name is set as a variable.\n");
	printf("\n");
	printf("<super VAR>\n");
	printf("\n");
	printf("	LIST of the object name inherited to VAR is set up.\n");
	printf("\n");
	printf("<throw VAL>\n");
	printf("\n");
	printf("	The processing after that is interrupted when the throw \n");
	printf("	predicate is executed while executing the predicate of \n");
	printf("	the argument, the entire processing of this catch predicate \n");
	printf("	succeeds, and it ends. At that time, the argument of \n");
	printf("	the throw predicate is set to the variable of the catch \n");
	printf("	predicate. When all predicates of the argument are executed \n");
	printf("	without executing throw, '()' is set to the variable of \n");
	printf("	the catch predicate. \n");
	printf("\n");
	printf("<timeout limittime PRED>\n");
	printf("\n");
	printf("	Within the set-up time, when execution of a predicate\n");
	printf("	is not completed, processing is closed, and unknown is\n");
	printf("	returned. A set period is a micro second bit.\n");
	printf("\n");
	printf("<troff>\n");
	printf("\n");
	printf("	Debugging trace is turned OFF.\n");
	printf("\n");
	printf("<tron>\n");
	printf("\n");
	printf("	Debugging trace is turned ON.\n");
	printf("\n");
	printf("<true>\n");
	printf("<false>\n");
	printf("<unknown>\n");
	printf("\n");
	printf("	return true, false, unknown\n");
	printf("\n");
	printf("<unify MODULENAME PRED...>\n");
	printf("\n");
	printf("	A predicate is performed using the specified object\n");
	printf("	or module.\n");
	printf("	A module is the same as an object.\n");
	printf("	It can be described as ::object <PRED...> as an\n");
	printf("	omitted type.\n");
	printf("\n");
	printf("<warn LIST>\n");
	printf("\n");
	printf("	LIST is outputted to an stderr error output. \n");
	printf("	A new line is started after an output.\n");
	printf("\n");
	printf("<x PRED...>\n");
	printf("\n");
	printf("	Usually, nothing is performed. \n");
	printf("	The predicate of an argument is performed when it backtracks.\n");
	printf("\n");
	printf("<!>\n");
	printf("	cut operator\n");
	printf("\n");
	printf("<%% _ FORMAT ARG>\n");
	printf("\n");
	printf("	A format is operated for printf.\n");
	printf("\n");
	printf("<\\ _ CHAR>\n");
	printf("\n");
	printf("	Escape character\n");
	printf("\n");
	printf("\n");
	printf("EBNF Syntax analysis\n");
	printf("\n");
	printf("<TOKEN VAR PRED...>\n");
	printf("\n");
	printf("	After syntax-analysis PRED execution of an input, \n");
	printf("	obtained token is set as VAR.\n");
	printf("\n");
	printf("<SKIPSPACE>\n");
	printf("\n");
	printf("	The space of an input is skipped.\n");
	printf("\n");
	printf("<C [VAR]>\n");
	printf("\n");
	printf("	An input is set as one-character VAR.\n");
	printf("\n");
	printf("<N [VAR]>\n");
	printf("\n");
	printf("	When an input is a number, it is set as VAR. \n");
	printf("	unknown is returned when different.\n");
	printf("\n");
	printf("\n");
	printf("<A [VAR]>\n");
	printf("\n");
	printf("	When an input is the ASCII character, it is set as VAR. \n");
	printf("	unknown is returned when different.\n");
	printf("\n");
	printf("<AN [VAR]>\n");
	printf("\n");
	printf("	When an input is the ASCII character or a number, \n");
	printf("	it is set as VAR. unknown is returned when different.\n");
	printf("\n");
	printf("<^>\n");
	printf("	The head of a line is matched.\n");
	printf("\n");
	printf("<$>\n");
	printf("	The last of a line is matched.\n");
	printf("\n");
	printf("<* [VAR]>\n");
	printf("	Arbitrary character strings are matched.\n");
	printf("\n");
	printf("<CR>\n");
	printf("\n");
	printf("	true is returned when an input is a CR. \n");
	printf("	unknown is returned when different.\n");
	printf("\n");
	printf("<CNTL [VAR]>\n");
	printf("\n");
	printf("	When an input is the CNTL character, it is set as VAR. \n");
	printf("	unknown is returned when different.\n");
	printf("\n");
	printf("<EOF>\n");
	printf("\n");
	printf("	true is returned when an input is a EOF(End Of FIle). \n");
	printf("	unknown is returned when different.\n");
	printf("\n");
	printf("<SPACE>\n");
	printf("\n");
	printf("	true is returned when an input is a space. unknown is \n");
	printf("	returned when different.\n");
	printf("\n");
	printf("<PUNCT [VAR]>\n");
	printf("\n");
	printf("	true is returned when it is characters other than the \n");
	printf("	alphabet and a number.\n");
	printf("\n");
	printf("<WORD [VAR]>\n");
	printf("\n");
	printf("	In STRINGS(s) other than the alphabet, a number, \n");
	printf("	and _, unknown is returned by arbitrary STRINGS.\n");
	printf("\n");
	printf("<NUM [VAR]>\n");
	printf("\n");
	printf("	The unsigned integer of an input is is set as VAR.\n");
	printf("\n");
	printf("<FNUM [VAR]>\n");
	printf("\n");
	printf("	The unsigned floating point number of an input is set as VAR.\n");
	printf("\n");
	printf("<SNUM [VAR]>\n");
	printf("\n");
	printf("	The signed integer of an input is is set as VAR.\n");
	printf("\n");
	printf("<SFNUM [VAR]>\n");
	printf("\n");
	printf("	The signed floating point number of an input is set as VAR.\n");
	printf("\n");
	printf("<GETTOKEN VAR>\n");
	printf("\n");
	printf("	The token which is a result of the last syntax \n");
	printf("	analysis is set as VAR.\n");
	printf("\n");
	printf("<ID [VAR]>\n");
	printf("\n");
	printf("	If an input STRINGS (a head is the alphabet and a \n");
	printf("	number is also good except it) and it agrees, it \n");
	printf("	will be set as VAR.\n");
	printf("\n");
	printf("<INDENT VAR>\n");
	printf("\n");
	printf("	The length of the space of the indent of a current line \n");
	printf("	is set to the variable. \n");
	printf("	The tab is counted with eight characters. The blank of \n");
	printf("	multi byte character is counted with two characters. \n");
	printf("	It becomes true in case of the agreement compared with the \n");
	printf("	length of the space of the indent of a current line when \n");
	printf("	the argument is not a variable but a number. \n");
	printf("\n");
	printf("<RANGE VAR CHAR1 CHAR2>\n");
	printf("<NONRANGE VAR CHAR1 CHAR2>\n");
	printf("\n");
	printf("	It will be set to true if contained in the range of \n");
	printf("	a character 1 and a character 2.\n");
	printf("\n");
	printf("<NEXTCHAR VAR>\n");
	printf("\n");
	printf("	The value is set to the variable reading one character ahead. \n");
	printf("\n");
	printf("<NEXTINDENT VAR>\n");
	printf("\n");
	printf("	The length of the space of the indent of the line of a current \n");
	printf("	next line is set to the variable. \n");
	printf("	The tab is counted with eight characters. The blank of multi byte \n");
	printf("	character is counted with two characters. \n");
	printf("	It becomes true in case of the agreement compared with the length \n");
	printf("	of the space of the indent of the following line of a current \n");
	printf("	line when the argument is not a variable but a number. \n");
	printf("\n");
	printf("\n");
	printf("<NEXTSTR STRINGS>\n");
	printf("\n");
	printf("	Whether the equal to the character string is judged reading ahead. \n");
	printf("\n");
	printf("<NEXTSYNTAX PRED...>\n");
	printf("\n");
	printf("	The program is executed reading ahead. \n");
	printf("	When parsing fails, it becomes true. \n");
	printf("	The reading position of the file returns to the position of beginning \n");
	printf("	after it executes it. \n");
	printf("\n");
	printf("<NOTNEXTSTR STRINGS>\n");
	printf("\n");
	printf("	Whether the equal to the character string is judged reading ahead. \n");
	printf("	It becomes true when the result is not equal. \n");
	printf("\n");
	printf("<NOTNEXTSYNTAX PRED...>\n");
	printf("\n");
	printf("	The program is executed reading ahead. \n");
	printf("	The reading position of the file returns to the position of beginning \n");
	printf("	after it executes it. \n");
	printf("\n");
	printf("<NULLLINE>\n");
	printf("\n");
	printf("	It is judged whether it is a null line. \n");
	printf("\n");
	printf("<SKIP STR>\n");
	printf("\n");
	printf("	Syntax analysis to STR is made to stop and skip.\n");
	printf("\n");
	printf("<SKIPCR>\n");
	printf("\n");
	printf("	Syntax analysis to CR is made to stop and skip.\n");
	printf("\n");
	printf("\n");
	printf("OBJECT operation\n");
	printf("<newObj NAME>\n");
	printf("\n");
	printf("	create a new NAME object.\n");
	printf("\n");
	printf("<cloneObj NEWOBJECT NAME>\n");
	printf("\n");
	printf("	The object of NAME is reproduced and NEWOBJECT is generated. \n");
	printf("\n");
	printf("<delObj NAME>\n");
	printf("\n");
	printf("	delete NAME objects.\n");
	printf("\n");
	printf("<method NAME>\n");
	printf("\n");
	printf("	The method of a new name is generated \n");
	printf("\n");
	printf("<methoda NAME>\n");
	printf("\n");
	printf("	The method of a new name is generated from a head.\n");
	printf("\n");
	printf("<methodz NAME>\n");
	printf("\n");
	printf("	The method of a new name is generated at the end.\n");
	printf("\n");
	printf("<delmethod NAME>\n");
	printf("\n");
	printf("	The method of the specified name is deleted.\n");
	printf("\n");
	printf("<delmethoda NAME>\n");
	printf("\n");
	printf("	The method of the specified name is deleted from a head.\n");
	printf("\n");
	printf("<delmethodz NAME>\n");
	printf("\n");
	printf("	The method of the specified name is deleted from an end.\n");
	printf("\n");
	printf("<setVar VAR VAL>\n");
	printf("\n");
	printf("	A value is assigned to global VAR. Global VAR \n");
	printf("	is registered in the form of the following as PRED.\n");
	printf("		 <VAR VAL>;\n");
	printf("\n");
	printf("<delVar VAR>\n");
	printf("\n");
	printf("	The variable corresponding to a VAR identifier \n");
	printf("	is deleted.\n");
	printf("\n");
	printf("<setArray VAR VAL INDEX>\n");
	printf("\n");
	printf("	A value is set as global VAR arrangement. \n");
	printf("	Global VAR is registered in the form of the \n");
	printf("	following as PRED.\n");
	printf("		 <VAR VAL INDEX>;\n");
	printf("\n");
	printf("<delArray VAR INDEX>\n");
	printf("\n");
	printf("	The variable corresponding to a VAR identifier \n");
	printf("	is deleted.\n");
	printf("\n");
	printf("<VAR VAL INDEX>;\n");
	printf("\n");
	printf("	When carrying out specification of the arrangement \n");
	printf("	of many dimensions, an index is specified as LIST.\n");
	printf("\n");
	printf("<VAR VAL (INDEX1 INDEX2 ...)>\n");
	printf("\n");
	printf("	Indexes are a number, a character string, and LIST.\n");
	printf("\n");

	return 1;
}

int HelpSys(const char* name)
{

	printf("* sys Module PREDICATION\n");
	printf("\n");
	printf("  A sys module is a set of the library module of the \n");
	printf("standard included in the system. When calling, \n");
	printf("it describes after ::sys.\n");
	printf("\n");
	printf("\n");
	printf("-------------------------------------------------------------------\n");
	printf("\n");
	printf("::sys <append VAR LIST1 LIST2>\n");
	printf("\n");
	printf("	LIST1 is connected with LIST2, and it sets it to \n");
	printf("	the variable. \n");
	printf("	It is a high-speed version of the predicate of \n");
	printf("	the same name of the list module library. \n");
	printf("\n");
	printf("::sys <reverse #out #in>\n");
	printf("\n");
	printf("	List #in is converted in reverse the order and it \n");
	printf("	sets it to #out. \n");
	printf("	It is a high-speed version of the predicate of \n");
	printf("	the same name of the list module library. \n");
	printf("\n");
	printf("::sys <member #mem #list>\n");
	printf("\n");
	printf("	Whether #mem is included in #list is judged. \n");
	printf("	It is a high-speed version of the predicate of \n");
	printf("	the same name of the list module library. \n");
	printf("\n");
	printf("::sys <arg VAR COMPLEX>\n");
	printf("\n");
	printf("	angle of a complex number is set as a variable.\n");
	printf("\n");
	printf("::sys <args VAR>\n");
	printf("\n");
	printf("	ARG when starting the Descartes language is \n");
	printf("	assigned to VAR.\n");
	printf("\n");
	printf("::sys <avg VAR LIST>\n");
	printf("::sys <avgf VAR LIST>\n");
	printf("\n");
	printf("	The average value of LIST element is set as a VAR variable. \n");
	printf("	LIST element is calculated after being evaluated. \n");
	printf("	avg is calculated integrally. \n");
	printf("	avgf is calculated by a floating point number.\n");
	printf("\n");
	printf("::sys <basename VAR PATH>\n");
	printf("\n");
	printf("	A file name is extracted from a path and \n");
	printf("	it is set as a variable.\n");
	printf("\n");
	printf("::sys <checkObj NAME>\n");
	printf("\n");
	printf("	Whether the name is an object is judged. \n");
	printf("\n");
	printf("::sys <chomp VAR STRINGS>\n");
	printf("\n");
	printf("	When CR has adhered after the character STRINGS, it deletes it\n");
	printf("\n");
	printf("::sys <chop VAR STRINGS>\n");
	printf("\n");
	printf("	The last character of the character STRINGS is deleted. \n");
	printf("\n");
	printf("::sys <clear>\n");
	printf("\n");
	printf("	A screen is cleared.\n");
	printf("\n");
	printf("\n");
	printf("::sys <conj VAR COMPLEX>\n");
	printf("\n");
	printf("	The mark of the imaginary number part of a complex number is \n");
	printf("	reversed, and a conjugate complex number is set as a variable.\n");
	printf("\n");
	printf("::sys <dirname VAR PATH>\n");
	printf("\n");
	printf("	A directory name is extracted from a path and \n");
	printf("	it is set as a variable.\n");
	printf("\n");
	printf("::sys <DLIBPATH VAR>\n");
	printf("\n");
	printf("	The path DLIBPATH which the Descartes language \n");
	printf("	uses is displayed on VAR. \n");
	printf("\n");
	printf("::sys <EqOR COMPARISON_VAL VAL1 VAL2 ...>\n");
	printf("	When agreeing even by one (other value 1 and value 2) compared \n");
	printf("	with the comparison value, true is returned. \n");
	printf("	If any doesn't agree, unknown is returned. \n");
	printf("\n");
	printf("::sys <erasealltags VAR STR>\n");
	printf("\n");
	printf("	All tag is erased from the character string, and it sets it to the variable. \n");
	printf("\n");
	printf("::sys <erasestr VAR STR STR1 [STR2]>\n");
	printf("\n");
	printf("	Character string STR1 is deleted, and it sets it \n");
	printf("	to the variable from among the character string. \n");
	printf("	When STR2 is specified, the character string enclosed \n");
	printf("	by character string STR1 and character string STR2 \n");
	printf("	in the character string is deleted and it sets it \n");
	printf("	to the variable. \n");
	printf("\n");
	printf("::sys <erasetags VAR STR TAG [TAG2] >\n");
	printf("\n");
	printf("	TAG specified from the character string is erased and it \n");
	printf("	sets it to the variable. \n");
	printf("	When TAG2 is specified, the range of TAG2 is erased from TAG \n");
	printf("	and it sets it to the variable. \n");
	printf("\n");
	printf("::sys <findlist VAR KEY LIST>\n");
	printf("\n");
	printf("	The LIST is a form like ((key1 value ...)  (key2 value ...) ...). \n");
	printf("	The data that agrees with the specified KEY is extracted from among this LIST. \n");
	printf("	The result is set to the variable VAR. \n");
	printf("\n");
	printf("::sys <getenv VAR name>\n");
	printf("\n");
	printf("	The value of the environment variable is taken out, \n");
	printf("	and it sets it to the variable. \n");
	printf("\n");
	printf("::sys <gsub PATTERN STRINGS CORRESDED-STRINGS AFTER-STRINGS>\n");
	printf("\n");
	printf("	The result of having transposed the portion which \n");
	printf("	corresponded to STRINGS with the application of \n");
	printf("	the regular expression pattern to Substitution \n");
	printf("	STRINGS is set as Output STRINGS. Replacement is \n");
	printf("	performed into all the applicable portions of \n");
	printf("	STRINGS. (It does not operate on Windows.)\n");
	printf("\n");
	printf("::sys <htmldecode VAR STR>\n");
	printf("\n");
	printf("	The character that cannot be used in the html document \n");
	printf("	is converted from &quot, &amp, &lt, &gt, and &nbsp. \n");
	printf("\n");
	printf("::sys <htmlencode VAR STR>\n");
	printf("\n");
	printf("	The character that cannot be used in the html document \n");
	printf("	is converted with &quot, &amp, &lt, &gt, and &nbsp. \n");
	printf("\n");
	printf("::sys <htmltags VAR STR TAG [TAG2]>\n");
	printf("\n");
	printf("	The list that pulls out TAG is set to the variable from \n");
	printf("	among the character string. \n");
	printf("	When TAG2 is specified, the list that pulls out the range \n");
	printf("	enclosed by TAG and TAG2 is set to the variable. \n");
	printf("\n");
	printf("::sys <httpget VAR_Header VAR_Body uri [proxy]>\n");
	printf("\n");
	printf("	It is HTTP client function and the GET method is executed. \n");
	printf("	Html is taken out of the site specified with uri and \n");
	printf("	it sets it to the VAR_Body variable. \n");
	printf("	The connection status at that time is set to the \n");
	printf("	VAR_Header variable. \n");
	printf("	When proxy is set, it accesses it via it. \n");
	printf("\n");
	printf("::sys <httphead VAR_Header uri [proxy]>\n");
	printf("\n");
	printf("	It is HTTP client function and the HEAD method is \n");
	printf("	executed. \n");
	printf("	Only it connects with the site specified with uri, \n");
	printf("	and the connection status is set to the VAR_Header \n");
	printf("	variable. \n");
	printf("	When proxy is set, it accesses it via it. \n");
	printf("\n");
	printf("::sys <httppost VAR_Header VAR_Body uri data [proxy]>\n");
	printf("\n");
	printf("	It is HTTP client function, and the POST method is executed. \n");
	printf("	Html is taken out of the site specified with uri and it sets\n");
	printf("	 it to the VAR_Body variable. \n");
	printf("	The connection status at that time is set to the VAR_Header \n");
	printf("	variable. \n");
	printf("	When proxy is set, it accesses it via it. \n");
	printf("	It transmits to the site for which the character string \n");
	printf("	specified for data was specified. \n");
	printf("\n");
	printf("::sys <iconv VAR_tostr fromstr tocode fromcode>\n");
	printf("\n");
	printf("	The fromstr character string is converted into the \n");
	printf("	character-code specified from the character-code specified \n");
	printf("	for fromcode for tocode and it sets it to VAR_tostr. \n");
	printf("	The character-code is 'SJIS', 'EUC-JP', and 'UTF-8', etc.\n");
	printf("\n");
	printf("::sys <image VAR COMPLEX>\n");
	printf("\n");
	printf("	The imaginary part of a complex number is set as a variable.\n");
	printf("\n");
	printf("::sys <insertstr VAR STR1 POS STR2>\n");
	printf("\n");
	printf("	The character string 2 is inserted in the position of the \n");
	printf("	character string 1.\n");
	printf("\n");
	printf("\n");
	printf("::sys <isNil ARG>\n");
	printf("::sys <isAtom ARG>\n");
	printf("::sys <isList ARG>\n");
	printf("::sys <isPred ARG>\n");
	printf("::sys <isVar ARG>\n");
	printf("::sys <isUndefVar ARG>\n");
	printf("::sys <isFloat ARG>\n");
	printf("::sys <isInteger ARG>\n");
	printf("::sys <isInf ARG>\n");
	printf("::sys <isNan ARG>\n");
	printf("\n");
	printf("	true will be returned, if ARG is judged and it \n");
	printf("	corresponds. unknown is returned if it does not \n");
	printf("	correspond.\n");
	printf("\n");
	printf("::sys <isObj ARG>\n");
	printf("\n");
	printf("	If the ARG argument is an object, true is returned. \n");
	printf("	Otherwise, unknown is returned. \n");
	printf("\n");
	printf("::sys <isTrue PRED>\n");
	printf("::sys <isFalse PRED>\n");
	printf("::sys <isUnknown PRED>\n");
	printf("\n");
	printf("	The result of PRED of ARG is judged, and true will \n");
	printf("	be returned if it corresponds. unknown is returned \n");
	printf("	if it does not correspond.\n");
	printf("\n");
	printf("::sys <isRegistered VAL LIST>\n");
	printf("\n");
	printf("	If VAL is an element of LIST, true is returned. \n");
	printf("	Otherwise, unknown is returned. \n");
	printf("\n");
	printf("::sys <isUnregistered VAL LIST>\n");
	printf("\n");
	printf("	If VAL is not an element of LIST, true is returned. \n");
	printf("	Otherwise, unknown is returned. \n");
	printf("\n");
	printf("::sys <leftstr VAR STR LENGTH>\n");
	printf("\n");
	printf("	The character string of length is cut out from the left of \n");
	printf("	a character string, and it is set as a variable.\n");
	printf("\n");
	printf("::sys <lefttrim VAR STRINGS>\n");
	printf("\n");
	printf("	The blank before the character string is removed and \n");
	printf("	it sets it to the variable. \n");
	printf("\n");
	printf("::sys <max VAR LIST>\n");
	printf("\n");
	printf("	The greatest integer value of the element of a list \n");
	printf("	is set as a variable.\n");
	printf("\n");
	printf("::sys <maxf VAR LIST>\n");
	printf("\n");
	printf("	The greatest floating point number value of the element of \n");
	printf("	a list is set as a variable.\n");
	printf("\n");
	printf("::sys <min VAR LIST>\n");
	printf("\n");
	printf("	The minimum integer value of the element of a list\n");
	printf("	 is set as a variable.\n");
	printf("\n");
	printf("::sys <minf VAR LIST>\n");
	printf("\n");
	printf("	The minimum floating point number value of the element of \n");
	printf("	a list is set as a variable.\n");
	printf("\n");
	printf("::sys <mkpred ARG>\n");
	printf("\n");
	printf("	ARG is changed into PRED.\n");
	printf("\n");
	printf("::sys <nth VAR LIST INDEX>\n");
	printf("	The VAL of the INDEX of the LIST is set to the VAR. \n");
	printf("\n");
	printf("::sys <setnth VAR LIST INDEX VAL>\n");
	printf("	The LIST that puts the VAL in the INDEX of the LIST is \n");
	printf("	set to the VAR. \n");
	printf("\n");
	printf("::sys <norm VAR COMPLEX>\n");
	printf("\n");
	printf("	The square of a real part and an imaginary number part sum \n");
	printf("	total is set as a variable.\n");
	printf("\n");
	printf("::sys <polar VAR ABSOLUTE-VALUE ANGLE>\n");
	printf("\n");
	printf("	The complex number by a polar coordinate system is set as a variable.\n");
	printf("\n");
	printf("::sys <pulloutstr VAR STR STR1 STR2>\n");
	printf("\n");
	printf("	The character string enclosed by character string STR1 \n");
	printf("	and character string STR2 in the character string is \n");
	printf("	listed and it sets it to the variable. \n");
	printf("\n");
	printf("::sys <real VAR COMPLEX>\n");
	printf("\n");
	printf("	The real part of a complex number is set as a variable.\n");
	printf("\n");
	printf("::sys <regex PATTERN STRINGS BEFORE-STRINGS MATCH-STRINGS AFTER-STRINGS>\n");
	printf("\n");
	printf("	The result of having applied the regular expression \n");
	printf("	pattern to STRINGS is set as Match STRINGS, and \n");
	printf("	STRINGS of order is set as front STRINGS and back \n");
	printf("	STRINGS. (It does not operate on Windows.)\n");
	printf("\n");
	printf("::sys <rightstr VAR STR LENGTH>\n");
	printf("\n");
	printf("	The character string of length is cut out from the right of \n");
	printf("	a character string, and it is set as a variable.\n");
	printf("\n");
	printf("::sys <righttrim VAR STRINGS>\n");
	printf("\n");
	printf("	The blank behind the character string is removed and \n");
	printf("	it sets it to the variable. \n");
	printf("\n");
	printf("::sys <padding VAR NUM ITEM>\n");
	printf("\n");
	printf("	The list including ITEM of the repetition of the number \n");
	printf("	is set to the variable. \n");
	printf("\n");
	printf("::sys <replacestr VAR STR STR1 STR2>\n");
	printf("\n");
	printf("	All character strings STR1 in the character string STR \n");
	printf("	are replaced with character string STR2 and it sets it \n");
	printf("	to the variable. \n");
	printf("\n");
	printf("::sys <seq VAR INIT LAST>\n");
	printf("\n");
	printf("	The list of the number from an initial value(INIT) to the end \n");
	printf("	value(LAST) is set to the variable. \n");
	printf("	If the INIT is smaller than the LAST, the list of \n");
	printf("	the ascending order is generated. \n");
	printf("	If the INIT is larger than the LAST, the list of \n");
	printf("	the descending order is generated. \n");
	printf("\n");
	printf("\n");
	printf("::sys <sort VAR LIST>\n");
	printf("::sys <sortascend VAR LIST>\n");
	printf("\n");
	printf("	The LIST is sorted in ascending order, and it sets it to the VAR. \n");
	printf("\n");
	printf("::sys <sortdescend VAR LIST>\n");
	printf("\n");
	printf("	The LIST is sorted in descending order, and it sets it to the VAR. \n");
	printf("\n");
	printf("::sys <split VAR STRINGS [DELIMITER]>\n");
	printf("\n");
	printf("	What divided STRINGS by the DELIMITER and was \n");
	printf("	set to LIST is set as VAR. When the delimiter \n");
	printf("	is not specified, it is divided with a blank \n");
	printf("	and a tab.\n");
	printf("\n");
	printf("::sys <strbyte VAR STRINGS>\n");
	printf("\n");
	printf("	The number of byte of character strings is set to the variable. \n");
	printf("\n");
	printf("::sys <strdelcntl VAR STRINGS>\n");
	printf("\n");
	printf("	The control character in the character string is deleted, and \n");
	printf("	it sets it to the variable. \n");
	printf("\n");
	printf("::sys <strfry VAR STRINGS>\n");
	printf("\n");
	printf("	The order of the character of the character string is changed at \n");
	printf("	random, and it sets it to the variable. \n");
	printf("\n");
	printf("::sys <strlen VAR STRINGS>\n");
	printf("\n");
	printf("	The length of the character string is set to the variable. \n");
	printf("\n");
	printf("::sys <strrepeat VAR STRINGS NUM>\n");
	printf("\n");
	printf("	The value in which the character string is repeated is set to the variable. \n");
	printf("\n");
	printf("::sys <strrotateleft VAR STRINGS [SHIFT-NUMBER]>\n");
	printf("::sys <strrotateright VAR STRINGS [SHIFT-NUMBER]>\n");
	printf("\n");
	printf("	The value in which the character string shifts several and \n");
	printf("	moved is set to the variable. \n");
	printf("	The overflowing character is moved to the other side. \n");
	printf("	When the number of shifts is omitted, it shifts only by one character. \n");
	printf("\n");
	printf("::sys <strshiftleft VAR STRINGS [NUM]>\n");
	printf("::sys <strshiftright VAR STRINGS [NUM]>\n");
	printf("\n");
	printf("	The value in which the character string shifts several and \n");
	printf("	moved is set to the variable. \n");
	printf("	When the number of shifts is omitted, it shifts only by one character. \n");
	printf("\n");
	printf("\n");
	printf("::sys <strsort VAR STRINGS>\n");
	printf("::sys <strsortreverse VAR STRINGS>\n");
	printf("\n");
	printf("	The character in the character string is sorted and it sets it to the variable. \n");
	printf("\n");
	printf("::sys <sum VAR LIST>\n");
	printf("::sys <sumf VAR LIST>\n");
	printf("\n");
	printf("	The element of a list is totaled and it is set as a variable. \n");
	printf("	A function predicate can also be described to the element of a list. \n");
	printf("	sum is totaled as an integer. \n");
	printf("	sumf is totaled as a floating point number.\n");
	printf("\n");
	printf("\n");
	printf("::sys <sub PATTERN STRINGS CORRESDED-STRINGS AFTER-STRINGS>\n");
	printf("\n");
	printf("	The result of having transposed the portion which \n");
	printf("	corresponded to STRINGS with the application of \n");
	printf("	the regular expression pattern to Substitution \n");
	printf("	STRINGS is set as Output STRINGS. Replacement \n");
	printf("	is performed only once. \n");
	printf("	(It does not operate on Windows.)\n");
	printf("\n");
	printf("::sys <suffix VAR PATH SUFFIX>\n");
	printf("\n");
	printf("	The suffix of a path is changed into the SUFFIX of an argument.\n");
	printf("\n");
	printf("::sys <substr VAR STR POS LENGTH>\n");
	printf("\n");
	printf("	The character string of length is cut out from the position \n");
	printf("	of a character string, and it is set as a variable.\n");
	printf("\n");
	printf("\n");
	printf("::sys <switch comparison-val VAL1 PRED1 VAL2 PRED2 ...>\n");
	printf("	The predicate that pairs when agreeing to the value compared \n");
	printf("	with the comparison value is executed. \n");
	printf("	The execution corpse situation bundles two or more predicates \n");
	printf("	by parentheses ().\n");
	printf("\n");
	printf("\n");
	printf("::sys <toupper VAR STRINGS>\n");
	printf("\n");
	printf("	A character string is made into a capital letter.\n");
	printf("\n");
	printf("::sys <tolower VAR STRINGS>\n");
	printf("\n");
	printf("	A character string is made into a small letter.\n");
	printf("\n");
	printf("::sys <trim VAR STRINGS>\n");
	printf("\n");
	printf("	The blank before and behind the character string is removed and \n");
	printf("	it sets it to the variable. \n");
	printf("\n");
	printf("::sys <writenl LIST>\n");
	printf("\n");
	printf("	After outputting LIST, a new line is started.\n");
	printf("\n");
	printf("::sys <write LIST>\n");
	printf("::sys <w LIST>\n");
	printf("\n");
	printf("	Outputting LIST.\n");
	printf("\n");
	printf("::sys <length VAR LIST>\n");
	printf("\n");
	printf("	The length of LIST is set as VAR.\n");
	printf("\n");
	printf("::sys <random VAR>\n");
	printf("\n");
	printf("	A random number is assigned to VAR.\n");
	printf("\n");
	printf("::sys <PI VAR>\n");
	printf("\n");
	printf("	The value of a circular constant PI is set as a variable.\n");
	printf("\n");
	printf("::sys <sin VAR RADIAN>\n");
	printf("::sys <cos VAR RADIAN>\n");
	printf("::sys <tan VAR RADIAN>\n");
	printf("\n");
	printf("	Trigonometric functions\n");
	printf("\n");
	printf("::sys <asin VAR VAL>\n");
	printf("::sys <acos VAR VAL>\n");
	printf("::sys <atan VAR VAL>\n");
	printf("::sys <atan2 VAR VAL1 VAL2>\n");
	printf("\n");
	printf("	Inverse trigonometric function\n");
	printf("\n");
	printf("::sys <sinh VAR RADIAN>\n");
	printf("::sys <cosh VAR RADIAN>\n");
	printf("::sys <tanh VAR RADIAN>\n");
	printf("\n");
	printf("	Hyperbolic trigonometric functions\n");
	printf("\n");
	printf("::sys <asinh VAR VAL>\n");
	printf("::sys <acosh VAR VAL>\n");
	printf("::sys <atanh VAR VAL>\n");
	printf("\n");
	printf("	Hyperbolic inverse trigonometric function\n");
	printf("\n");
	printf("::sys <e VAR>\n");
	printf("\n");
	printf("	The bottom e of a natural logarithm e is set as a variable.\n");
	printf("\n");
	printf("::sys <log VAR VAL>\n");
	printf("::sys <log10 VAR VAL>\n");
	printf("::sys <exp VAR VAL>\n");
	printf("::sys <exp2 VAR VAL>\n");
	printf("::sys <exp10 VAR VAL>\n");
	printf("::sys <pow VAR VAL1 VAL2>\n");
	printf("\n");
	printf("	Logarithmic function\n");
	printf("\n");
	printf("::sys <sqrt VAR VAL>\n");
	printf("\n");
	printf("	Square root\n");
	printf("\n");
	printf("::sys <abs VAR VAL>\n");
	printf("\n");
	printf("	Absolute value\n");
	printf("\n");
	printf("::sys <int VAR VAL>\n");
	printf("\n");
	printf("	Integral value\n");
	printf("\n");
	printf("::sys <ceil VAR VAL>\n");
	printf("\n");
	printf("	smallest integral value not less than argument\n");
	printf("\n");
	printf("::sys <floor VAR VAL>\n");
	printf("\n");
	printf("	largest integral value not greater than argument\n");
	printf("\n");
	printf("::sys <trunc VAR VAL>\n");
	printf("\n");
	printf("	round to interger, towards zero\n");
	printf("\n");
	printf("::sys <car VAR LIST>\n");
	printf("::sys <cdr VAR LIST>\n");
	printf("\n");
	printf("	car, cdr of LIST\n");
	printf("\n");
	printf("::sys <caar VAR LIST>\n");
	printf("\n");
	printf("	car(car(LIST))\n");
	printf("\n");
	printf("::sys <cadr VAR LIST>\n");
	printf("\n");
	printf("	car(cdr(LIST))\n");
	printf("\n");
	printf("::sys <cdar VAR LIST>\n");
	printf("\n");
	printf("	cdr(car(LIST))\n");
	printf("\n");
	printf("::sys <cddr VAR LIST>\n");
	printf("\n");
	printf("	cdr(cdr(LIST))\n");
	printf("\n");
	printf("\n");
	printf("\n");
	printf("::sys <caaar VAR LIST>\n");
	printf("\n");
	printf("	car(car(car(LIST)))\n");
	printf("\n");
	printf("::sys <caadr VAR LIST>\n");
	printf("\n");
	printf("	car(car(cdr(LIST)))\n");
	printf("\n");
	printf("::sys <cadar VAR LIST>\n");
	printf("\n");
	printf("	car(cdr(car(LIST)))\n");
	printf("\n");
	printf("::sys <caddr VAR LIST>\n");
	printf("\n");
	printf("	car(cdr(cdr(LIST)))\n");
	printf("\n");
	printf("::sys <cdaar VAR LIST>\n");
	printf("\n");
	printf("	cdr(car(car(LIST)))\n");
	printf("\n");
	printf("::sys <cdadr VAR LIST>\n");
	printf("\n");
	printf("	cdr(car(cdr(LIST)))\n");
	printf("\n");
	printf("::sys <cddar VAR LIST>\n");
	printf("\n");
	printf("	cdr(cdr(car(LIST)))\n");
	printf("\n");
	printf("::sys <cdddr VAR LIST>\n");
	printf("\n");
	printf("	cdr(cdr(cdr(LIST)))\n");
	printf("\n");
	printf("\n");
	printf("::sys <caaaar VAR LIST>\n");
	printf("\n");
	printf("	car(car(car(car(LIST))))\n");
	printf("\n");
	printf("::sys <caaadr VAR LIST>\n");
	printf("\n");
	printf("	car(car(car(cdr(LIST))))\n");
	printf("\n");
	printf("::sys <caadar VAR LIST>\n");
	printf("\n");
	printf("	car(car(cdr(car(LIST))))\n");
	printf("\n");
	printf("::sys <caaddr VAR LIST>\n");
	printf("\n");
	printf("	car(car(cdr(cdr(LIST))))\n");
	printf("\n");
	printf("::sys <cadaar VAR LIST>\n");
	printf("\n");
	printf("	car(cdr(car(car(LIST))))\n");
	printf("\n");
	printf("::sys <cadadr VAR LIST>\n");
	printf("\n");
	printf("	car(cdr(car(cdr(LIST))))\n");
	printf("\n");
	printf("::sys <caddar VAR LIST>\n");
	printf("\n");
	printf("	car(cdr(cdr(car(LIST))))\n");
	printf("\n");
	printf("::sys <cadddr VAR LIST>\n");
	printf("\n");
	printf("	car(cdr(cdr(cdr(LIST))))\n");
	printf("\n");
	printf("::sys <cdaaar VAR LIST>\n");
	printf("\n");
	printf("	cdr(car(car(car(LIST))))\n");
	printf("\n");
	printf("::sys <cdaadr VAR LIST>\n");
	printf("\n");
	printf("	cdr(car(car(cdr(LIST))))\n");
	printf("\n");
	printf("::sys <cdadar VAR LIST>\n");
	printf("\n");
	printf("	cdr(car(cdr(car(LIST))))\n");
	printf("\n");
	printf("::sys <cdaddr VAR LIST>\n");
	printf("\n");
	printf("	cdr(car(cdr(cdr(LIST))))\n");
	printf("\n");
	printf("::sys <cddaar VAR LIST>\n");
	printf("\n");
	printf("	cdr(cdr(car(car(LIST))))\n");
	printf("\n");
	printf("::sys <cddadr VAR LIST>\n");
	printf("\n");
	printf("	cdr(cdr(car(cdr(LIST))))\n");
	printf("\n");
	printf("::sys <cdddar VAR LIST>\n");
	printf("\n");
	printf("	cdr(cdr(cdr(car(LIST))))\n");
	printf("\n");
	printf("::sys <cddddr VAR LIST>\n");
	printf("\n");
	printf("	cdr(cdr(cdr(cdr(LIST))))\n");
	printf("\n");
	printf("\n");
	printf("\n");
	printf("::sys <cons VAR LIST1 LIST2>\n");
	printf("\n");
	printf("	Connection of LIST\n");
	printf("\n");
	printf("::sys <code CODE-NAME>\n");
	printf("\n");
	printf("	A setup of a character code. \n");
	printf("	UTF8, EUCJP, and SJIS can be specified.\n");
	printf("\n");
	printf("::sys <char VAR STRINGS>\n");
	printf("\n");
	printf("	STRINGS is decomposed for every be character, and it \n");
	printf("	is made LIST, and is set as VAR. A multibyte character \n");
	printf("	like a Japanese character is also right, and it is every \n");
	printf("	character. \n");
	printf("\n");
	printf("::sys <byte VAR STRINGS>\n");
	printf("\n");
	printf("	STRINGS is decomposed for every character code, \n");
	printf("	and it is made LIST, and is set as VAR.\n");
	printf("\n");
	printf("::sys <asciichar VAR STRINGS>\n");
	printf("::sys <utf8char VAR STRINGS>\n");
	printf("::sys <eucchar VAR STRINGS>\n");
	printf("::sys <sjischar VAR STRINGS>\n");
	printf("\n");
	printf("	STRINGS is decomposed for every character code, \n");
	printf("	and it is made LIST, and is set as VAR.\n");
	printf("\n");
	printf("::sys <concat VAR LIST>\n");
	printf("\n");
	printf("	Strings LIST is made to unite, STRINGS is compounded and \n");
	printf("	it is set as VAR.\n");
	printf("\n");
	printf("::sys <concatcode VAR LIST>\n");
	printf("\n");
	printf("	Character code LIST is made to unite, STRINGS is compounded and \n");
	printf("	it is set as VAR.\n");
	printf("\n");
	printf("::sys <bitand VAR NUMBER1 NUMBER2>\n");
	printf("::sys <bitor VAR NUMBER1 NUMBER2>\n");
	printf("::sys <bitxor VAR NUMBER1 NUMBER2>\n");
	printf("::sys <bitnot VAR NUMBER1>\n");
	printf("\n");
	printf("	bit operation\n");
	printf("\n");
	printf("::sys <shiftl VAR NUMBER SHIFT>\n");
	printf("::sys <shiftr VAR NUMBER SHIFT>\n");
	printf("\n");
	printf("	The bit shift of an integral value. shiftl is shifted \n");
	printf("	to the left and shifutr is shifted to the right.\n");
	printf("\n");
	printf("::sys <eq ARG1 ARG2>\n");
	printf("::sys <noteq ARG1 ARG2>\n");
	printf("::sys <is ARG1 ARG2>\n");
	printf("\n");
	printf("	Comparison of ARG1 and ARG2\n");
	printf("\n");
	printf("::sys <getc VAR>\n");
	printf("\n");
	printf("	One character is inputted into VAR.\n");
	printf("\n");
	printf("::sys <putc CHAR>\n");
	printf("\n");
	printf("	One character is outputted.\n");
	printf("\n");
	printf("::sys <getline VAR [PRED...]>\n");
	printf("\n");
	printf("	One line is inputted and it is set as VAR. When \n");
	printf("	PRED is set up, PRED is performed by considering \n");
	printf("	a tmp file as an input.\n");
	printf("\n");
	printf("::sys <syntax STRINGS PRED...>\n");
	printf("\n");
	printf("	A predicate is performed by making a character string \n");
	printf("	into an input file.\n");
	printf("\n");
	printf("::sys <tmpfile VAR>\n");
	printf("\n");
	printf("	Temporary FILE NAME is set as VAR\n");
	printf("\n");
	printf("\n");
	printf("::sys <openr FILE-NAME PRED...>\n");
	printf("\n");
	printf("	The file of FILE-NAME is opened in postscript \n");
	printf("	reading, and PRED is performed.\n");
	printf("\n");
	printf("::sys <openw FILE-NAME PRED...>\n");
	printf("\n");
	printf("	The file of FILE-NAME is opened in postscript \n");
	printf("	writing, and PRED is performed.\n");
	printf("\n");
	printf("::sys <openwp FILE-NAME PRED...>\n");
	printf("\n");
	printf("	The file of FILE-NAME is opened in postscript \n");
	printf("	writing, and PRED is performed.\n");
	printf("\n");
	printf("::sys <gettime VAR>\n");
	printf("\n");
	printf("	The present time is set as a variable by a micro second bit.\n");
	printf("\n");
	printf("::sys <time VAR>\n");
	printf("\n");
	printf("	List of (the user time, sys time, and elapsed time) \n");
	printf("	of the predicate under execution is set as a variable.\n");
	printf("\n");
	printf("::sys <date VAR>\n");
	printf("\n");
	printf("	Time is set as a variable.\n");
	printf("\n");
	printf("::sys <sleep SEC>\n");
	printf("\n");
	printf("	Sleep is done during SEC second. \n");
	printf("\n");
	printf("::sys <usleep SEC>\n");
	printf("\n");
	printf("	Sleep is done during micro SEC second. \n");
	printf("\n");
	printf("::sys <pause>\n");
	printf("\n");
	printf("	It waits until Enter is pushed. \n");
	printf("\n");
	printf("\n");
	printf("::sys <uname VAR>\n");
	printf("\n");
	printf("	The information on a system is set as VAR.\n");
	printf("\n");
	printf("\n");
	printf("::sys <countnode VAR>\n");
	printf("\n");
	printf("	The number of nodes currently used is set as VAR.\n");
	printf("\n");
	printf("::sys <PrintResultOff>\n");
	printf("\n");
	printf("	The result display is made disable. \n");
	printf("\n");
	printf("::sys <PrintResultOn>\n");
	printf("\n");
	printf("	The result display is made enable. \n");
	printf("\n");
	printf("::sys <urldecode VAR strings>\n");
	printf("\n");
	printf("	The character string is decoded in URL encode form. \n");
	printf("	The result of the decryption is set to the variable. \n");
	printf("\n");
	printf("::sys <urlencode VAR strings>\n");
	printf("\n");
	printf("	The character string is encoded in URL encode form. \n");
	printf("	The result of the encryption is set to the variable. \n");
	printf("\n");
	printf("\n");
	printf("::sys <gc>\n");
	printf("\n");
	printf("	A garbage collector is started.\n");
	printf("\n");
	printf("\n");

	return 1;
}

int HelpCurses(const char* name)
{

	printf("* curses Module predicate \n");
	printf("\n");
	printf("A curses module is a set of the library module of the standard included \n");
	printf("in the system. \n");
	printf("When calling, it describes after ::curses.\n");
	printf("\n");
	printf("-------------------------------------------------------------------\n");
	printf("\n");
	printf("::curses <startcurses PRED...>\n");
	printf("\n");
	printf("	Initialization and rearrangement processing for using a curses \n");
	printf("	module are performed. \n");
	printf("	curses is processed in the predicate of an argument.\n");
	printf("\n");
	printf("::curses <mvprintw X Y STRING>\n");
	printf("\n");
	printf("	STRING is displayed on the position (X, Y) of a screen.\n");
	printf("\n");
	printf("::curses <printw STRING>\n");
	printf("\n");
	printf("	STRING is displayed on the position of a screen.\n");
	printf("\n");
	printf("::curses <refresh>\n");
	printf("\n");
	printf("	A screen is updated.\n");
	printf("\n");
	printf("::curses <move X Y>\n");
	printf("\n");
	printf("	Cursor is moved to the position (X, Y) of a screen.\n");
	printf("\n");
	printf("\n");
	printf("::curses <cbreak>\n");
	printf("\n");
	printf("	A keystroke is made into mode who receives immediately.\n");
	printf("\n");
	printf("\n");
	printf("::curses <nobreak>\n");
	printf("\n");
	printf("	A keystroke is made into the mode which carries out a buffer until \n");
	printf("	a new-line or a carriage return is inputted.\n");
	printf("\n");
	printf("::curses <echo>\n");
	printf("\n");
	printf("	When a key is typed, it is made the mode echoed to a screen.\n");
	printf("\n");
	printf("\n");
	printf("::curses <noecho>\n");
	printf("\n");
	printf("	When a key is typed, it is set in mode which does not echo in a screen.\n");
	printf("\n");
	printf("::curses <border ls rs ts bs tl tr bl br>\n");
	printf("\n");
	printf("	A ruled line is drawn around a screen.\n");
	printf("\n");
	printf("::curses <erase>\n");
	printf("\n");
	printf("	It is blank and the whole screen is buried.\n");
	printf("\n");
	printf("::curses <clear>\n");
	printf("\n");
	printf("	A screen is cleared.\n");
	printf("\n");
	printf("::curses <clrtobot>\n");
	printf("\n");
	printf("	A lower screen is cleared from the position of cursor.\n");
	printf("\n");
	printf("::curses <clrtoeol>\n");
	printf("\n");
	printf("	It clears from the position of cursor to the end of the sentence.\n");
	printf("\n");
	printf("::curses <getch VAR>\n");
	printf("\n");
	printf("	The key code of one character is inputted and it is set as VAR.\n");
	printf("\n");
	printf("\n");
	printf("::curses <ungetch CHAR>\n");
	printf("\n");
	printf("	The key code of one character is returned.\n");
	printf("\n");
	printf("\n");
	printf("::curses <getstr VAR>\n");
	printf("\n");
	printf("	A character string is inputted and it is set as VAR.\n");
	printf("\n");
	printf("\n");
	printf("::curses <inch VAR>\n");
	printf("\n");
	printf("	The character of the cursor position is set as VAR.\n");
	printf("\n");
	printf("::curses <instr VAR>\n");
	printf("\n");
	printf("	The character string of the cursor position is set as VAR.\n");
	printf("\n");
	printf("::curses <beep>\n");
	printf("\n");
	printf("	The beep sounds an audible alarm on the terminal.\n");
	printf("\n");
	printf("::curses <flash>\n");
	printf("\n");
	printf("	The flash flashes the screen.\n");
	printf("\n");
	printf("::curses <hline CHAR LENGTH>\n");
	printf("\n");
	printf("	The  hline  and whline functions draw a horizontal line \n");
	printf("	using CHAR starting at the current cursor position.\n");
	printf("\n");
	printf("::curses <vline CHAR LENGTH>\n");
	printf("\n");
	printf("	The  hline  and whline functions draw a vertical line \n");
	printf("	using CHAR starting at the current cursor position.\n");
	printf("\n");
	printf("::curses <raw>\n");
	printf("\n");
	printf("	The raw  place the terminal into raw mode.\n");
	printf("\n");
	printf("::curses <noraw>\n");
	printf("\n");
	printf("	The noraw place the terminal out of raw mode.\n");
	printf("\n");
	printf("::curses <keypad VAL>\n");
	printf("\n");
	printf("	If TRUE is set as VAL, a cursor key and a function key will become effective.\n");
	printf("\n");
	printf("::curses <LINES VAR>\n");
	printf("\n");
	printf("	The number of lines of a screen is set as variable VAR.\n");
	printf("\n");
	printf("::curses <COLS VAR>\n");
	printf("\n");
	printf("	The number of characters of one line of a screen is set as variable VAR.\n");
	printf("\n");
	printf("::curses <delch>\n");
	printf("\n");
	printf("	The character of the position of cursor is deleted.\n");
	printf("\n");
	printf("::curses <mvdelch X Y>\n");
	printf("\n");
	printf("	The character of a position (X.Y) is deleted.\n");
	printf("\n");
	printf("::curses <scrollok VAL>\n");
	printf("\n");
	printf("	A scroll function will become effective if TRUE is set as VAL.\n");
	printf("\n");
	printf("::curses <scrl NUM>\n");
	printf("\n");
	printf("	NUM line scrolling is carried out. In a negative value, it scrolls \n");
	printf("	to an opposite direction. . \n");
	printf("\n");
	printf("\n");
	printf("\n");
	printf("\n");
	printf("\n");

	return 1;
}


int HelpCompiler(const char* name)
{

	printf("* compiler PREDICATION\n");
	printf("\n");
	printf("Compiler modules are sets of standard library modules built into the system. \n");
	printf("\n");
	printf("Please use it after doing include. \n");
	printf("\n");
	printf("? <include compiler>;\n");
	printf("\n");
	printf("When calling it, it describes it following ::compiler. \n");
	printf("\n");
	printf("\n");
	printf("-------------------------------------------------------------------\n");
	printf("\n");
	printf("::compiler <CheckReserved NAME LIST>\n");
	printf("\n");
	printf("	Whether NAME is included in the reserved word included in LIST is checked. \n");
	printf("\n");
	printf("::compiler <GetVar VAR KEY LIST>\n");
	printf("\n");
	printf("	Information on the variable that corresponds from LIST to KEY is taken out, \n");
	printf("	and it sets it to VAR. \n");
	printf("\n");
	printf("::compiler <AddVar VAR KEY VAL LIST>\n");
	printf("\n");
	printf("	The variable and VAL information on KEY are registered in LIST, and it sets \n");
	printf("	it to VAR. \n");
	printf("\n");
	printf("::compiler <CheckVar KEY LIST>\n");
	printf("\n");
	printf("	Whether the variable of KEY is registered in LIST is examined. \n");
	printf("\n");
	printf("::compiler <GetConst VAR KEY LIST>\n");
	printf("\n");
	printf("	Information on the constant that corresponds from LIST to KEY \n");
	printf("	is taken out, and it sets it to VAR. \n");
	printf("\n");
	printf("::compiler <AddConst VAR KEY VAL LIST>\n");
	printf("\n");
	printf("	The constant and VAL information on KEY are registered in LIST, and it sets \n");
	printf("	it to VAR. \n");
	printf("\n");
	printf("::compiler <CheckConst KEY LIST>\n");
	printf("\n");
	printf("	Whether the constant of KEY is registered in LIST is examined. \n");
	printf("\n");
	printf("::compiler <NewFunc VAR LIST>\n");
	printf("\n");
	printf("	LIST is set to the environment of a new function, and it sets it to VAR. \n");
	printf("\n");
	printf("::compiler <EndFunc VAR LIST>\n");
	printf(" \n");
	printf("	The function environment of LIST is released, and it sets it to VAR. \n");
	printf("\n");
	printf("\n");

	return 1;
}


int HelpMatrix(const char* name)
{

	printf("* matrix Module PREDICATION\n");
	printf("\n");
	printf("  A matrix module is a set of the library module of the \n");
	printf("standard included in the system. \n");
	printf("Include is done before using. \n");
	printf("\n");
	printf(" ? <include matrix>;\n");
	printf("\n");
	printf("When calling, it describes after ::matrix.\n");
	printf("\n");
	printf("-------------------------------------------------------------------\n");
	printf("\n");
	printf("::matrix <add VAR LIST1 LIST2>\n");
	printf("\n");
	printf("	LIST1 is added to LIST2, and it sets it to VAR. \n");
	printf("\n");
	printf("::matrix <det VAR LIST>\n");
	printf("\n");
	printf("	Determinant of LIST is set to VAR. \n");
	printf("\n");
	printf("::matrix <display LIST>\n");
	printf("\n");
	printf("	LIST is displayed. \n");
	printf("\n");
	printf("::matrix <divscalar VAR LIST1 VAL2>\n");
	printf("\n");
	printf("	The value in which LIST1 is divided in scalar value VAL2 is set to VAR. \n");
	printf("\n");
	printf("::matrix <eigen VARLIST VARVAL LIST>\n");
	printf("\n");
	printf("	Eigenvector of LIST is set to VARLIST, and eigenvalue is set to VARVAL. \n");
	printf("\n");
	printf("::matrix <equal LIST1 LIST2>\n");
	printf("\n");
	printf("	It judges whether LIST1 is equal to matrix of LIST2. \n");
	printf("\n");
	printf("::matrix <fourier VAR LIST>\n");
	printf("\n");
	printf("	Do the Fourier transform of the data of LIST, and the result is set to VAR. \n");
	printf("\n");
	printf("::matrix <getcolumn VAR COLUMN LIST>\n");
	printf("\n");
	printf("	Column of COLUMN of LIST is taken out, and it sets it to VAR. \n");
	printf("\n");
	printf("::matrix <getrow VAR ROW LIST>\n");
	printf("\n");
	printf("	Row of ROW of LIST is taken out, and it sets it to VAR.\n");
	printf("\n");
	printf("::matrix <getval VAR ROW COLUMN LIST>\n");
	printf("\n");
	printf("	The value of (COLUMN, ROW) of LIST is taken out, and it sets it to VAR. \n");
	printf("\n");
	printf("::matrix <inv VAR LIST>\n");
	printf("\n");
	printf("	The matrix inverse of LIST is set to VAR. \n");
	printf("\n");
	printf("::matrix <invfourier VAR LIST>\n");
	printf("\n");
	printf("	The reverse Fourier transform of LIST, and the result is set to VAR. \n");
	printf("\n");
	printf("::matrix <isdiagonal LIST>\n");
	printf("\n");
	printf("	Whether LIST is a diagonal matrix is judged. \n");
	printf("\n");
	printf("::matrix <ismatrix LIST>\n");
	printf("\n");
	printf("	Whether LIST is matrix is judged. \n");
	printf("\n");
	printf("::matrix <isnull LIST>\n");
	printf("\n");
	printf("	The element of LIST is all 0 is judged.  \n");
	printf("\n");
	printf("::matrix <isregular LIST>\n");
	printf("\n");
	printf("	It is judged that LIST is a regular matrix. \n");
	printf("\n");
	printf("::matrix <issingular LIST>\n");
	printf("\n");
	printf("	It is judged that LIST is not a regular \n");
	printf("\n");
	printf("::matrix <issquare LIST>\n");
	printf("\n");
	printf("	It is judged that LIST is a square matrix. \n");
	printf("\n");
	printf("::matrix <issymmetric LIST>\n");
	printf("\n");
	printf("	It is judged that LIST is a symmetric matrix. \n");
	printf("\n");
	printf("::matrix <isvector LIST>\n");
	printf("\n");
	printf("	It is judged that LIST is a vector. \n");
	printf("\n");
	printf("::matrix <mul VAR LIST1 LIST2>\n");
	printf("\n");
	printf("	Matrix LIST1*LIST2 is set to VAR. \n");
	printf("\n");
	printf("::matrix <mulscalar VAR VAL1 LIST2>\n");
	printf("\n");
	printf("	VAL1*LIST2 is set to VAR. \n");
	printf("\n");
	printf("::matrix <notequal LIST1 LIST2>\n");
	printf("\n");
	printf("	It is judged that LIST1 is not equal to matrix of LIST2. \n");
	printf("\n");
	printf("::matrix <random VAR ROW COLUMN>\n");
	printf("\n");
	printf("	The element of ROW x COLUMN sets matrix of random numbers to VAR. \n");
	printf("\n");
	printf("::matrix <range VAR ROW1 ROW2 COLUMN1 COLUMN2 LIST>\n");
	printf("\n");
	printf("	It takes out of matirx LIST in the part of ROW1-ROW2 and \n");
	printf("	COLUMN1-COLUMN2 and it sets it to VAR. \n");
	printf("\n");
	printf("::matrix <rangecolumn VAR COLUMN1 COLUMN2 LIST>\n");
	printf("\n");
	printf("	The part of COLUMN1-COLUMN2 is taken out of matrix LIST and it sets it \n");
	printf("	to VAR. \n");
	printf("\n");
	printf("::matrix <rangerow VAR ROW1 ROW2 LIST>\n");
	printf("\n");
	printf("	The part of ROW1-ROW2 is taken out of matrix LIST and it sets it to VAR. \n");
	printf("\n");
	printf("::matrix <RowSortAscendig VAR LIST>\n");
	printf("\n");
	printf("	It sorts it in ascending order by the first element of LIST. \n");
	printf("\n");
	printf("::matrix <set VAR ROW COLUMN LIST>\n");
	printf("\n");
	printf("	LIST is converted into matrix of ROWxCOLUMN and it sets it to VAR. \n");
	printf("\n");
	printf("::matrix <setval VAR ROW COLUMN VAL LIST>\n");
	printf("\n");
	printf("	The value of the position of (ROW, COLUMN) of LIST is replaced \n");
	printf("	with VAL, and it sets it to VAR. \n");
	printf("\n");
	printf("::matrix <size VARROW VARCOLUMN LIST>\n");
	printf("\n");
	printf("	The size of ROW and COLUMN of LIST is set to (VARROW, VARCOLUMN). \n");
	printf("\n");
	printf("::matrix <solve VAR LIST1 LIST2>\n");
	printf("\n");
	printf("	Simultaneous equations LIST1*X=LIST2 is solved. \n");
	printf("\n");
	printf("::matrix <sub VAR LIST1 LIST2>\n");
	printf("\n");
	printf("	The difference of matrix of LIST1 and LIST2 is set to VAR. \n");
	printf("\n");
	printf("::matrix <swapcolumn VAR COLUMN1 COLUMN2 LIST>\n");
	printf("\n");
	printf("	COLUMN1 of LIST is replaced with COLUMN2. \n");
	printf("\n");
	printf("::matrix <swaprow VAR ROW1 ROW2 LIST>\n");
	printf("\n");
	printf("	ROW1 of LIST is replaced with ROW2. \n");
	printf("\n");
	printf("::matrix <transposed VAR LIST>\n");
	printf("\n");
	printf("	The transposed matrix of LIST is set to VAR. \n");
	printf("\n");
	printf("::matrix <unit VAR ROW>\n");
	printf("\n");
	printf("	The unit matrix of ROWxROW is set to VAR. \n");
	printf("\n");
	printf("::matrix <zero VAR ROW COLUMN>\n");
	printf("\n");
	printf("	Zero matrix of ROWxCOLUMN is set to VAR. \n");
	printf("\n");

	return 1;
}

int HelpList(const char* name)
{

	printf("* list Module PREDICATION\n");
	printf("\n");
	printf("  A list module is a set of the library module of the \n");
	printf("standard included in the system. \n");
	printf("Include is done before using. \n");
	printf("\n");
	printf(" ? <include list>;\n");
	printf("\n");
	printf("When calling, it describes after ::list.\n");
	printf("\n");
	printf("-------------------------------------------------------------------\n");
	printf("\n");
	printf("::list <append #out #in1 #in2>\n");
	printf("\n");
	printf("	#In1 is connected with # in2 list, and it sets it to # out. \n");
	printf("\n");
	printf("::list <reverse #out #in>\n");
	printf("\n");
	printf("	List #in is converted in reverse the order and it sets it to #out. \n");
	printf("\n");
	printf("::list <member #mem #list>\n");
	printf("\n");
	printf("	Whether #mem is included in #list is judged. \n");
	printf("\n");
	printf("::list <last #out #list>\n");
	printf("\n");
	printf("	The last element of list #list is set to #out. \n");
	printf("\n");
	printf("::list <flatten #out #in>\n");
	printf("\n");
	printf("	The list of the nest in list #in is converted into a smooth \n");
	printf("	list and it sets it to #out. \n");
	printf("\n");
	printf("::list <difference #out #in1 #in2>\n");
	printf("\n");
	printf("	An element in the element of list #in1 and #in2 lists not \n");
	printf("	common is set the list of the element that doesn't exist \n");
	printf("	in #in2 is set to #out though it is in #in1 as a difference. \n");
	printf("\n");
	printf("::list <intersect #out #in1 #in2>\n");
	printf("\n");
	printf("	Elements of list #in1 and #in2 are compared, and the list \n");
	printf("	of a common element is set to #out. The universal component \n");
	printf("	is extracted regardless of the order of the element. \n");
	printf("\n");
	printf("::list <union #out #in1 #in2>\n");
	printf("\n");
	printf("	The element of list #in1 and #in2 is unified, and a common \n");
	printf("	element makes to one so as not to overlap, and sets all \n");
	printf("	elements to #out. \n");
	printf("\n");
	printf("::list <subset #subset #set>\n");
	printf("\n");
	printf("	When #subset is a subset of #set, it becomes true. \n");
	printf("\n");
	printf("::list <join #out #in1 #in2>\n");
	printf("\n");
	printf("	The list that annexes #in1 to #in2 is set to #out. \n");
	printf("	Annexation is done in each element of the order of #in1 \n");
	printf("	and #in2 corresponding. The first #in1 and the first #in2 \n");
	printf("	are added to #out, and in a word, the following queue up \n");
	printf("	the second element, and set this to #out repeatedly even \n");
	printf("	by the last element of the list. \n");
	printf("\n");
	printf("::list <occures #n #e #list>\n");
	printf("\n");
	printf("	Element #e sets the frequency that appears in #list to #n. \n");

	return 1;
}

int HelpGenerator(const char* name)
{

	printf("* generator Module PREDICATION\n");
	printf("\n");
	printf("  A generator module is a set of the library module of the \n");
	printf("standard included in the system. \n");
	printf("Include is done before using. \n");
	printf("\n");
	printf(" ? <include generator>;\n");
	printf("\n");
	printf("When calling, it describes after ::generator.\n");
	printf("\n");
	printf("-------------------------------------------------------------------\n");
	printf("\n");
	printf("::generator <append #out #in1 #in2>\n");
	printf("\n");
	printf("	The permutation that chooses the number of LEN from the element \n");
	printf("	of LIST is set to VAR variable. \n");
	printf("	The set permutation is chosen at random. \n");
	printf("\n");
	printf("::generator <combination VAR LIST [LEN]>\n");
	printf("\n");
	printf("	The combination that chooses the number of LEN from the element \n");
	printf("	of LIST is set to VAR variable. \n");
	printf("	The set combination is chosen at random. \n");
	printf("\n");
	printf("::generator <perm_rep VAR LIST [LEN]>\n");
	printf("\n");
	printf("	The permutation that chooses the number of LEN from the element \n");
	printf("	of LIST is set to VAR variable. \n");
	printf("	Repetition is permitted. \n");
	printf("	The set permutation is chosen at random. \n");
	printf("\n");
	printf("::generator <combi_rep VAR LIST [LEN]>\n");
	printf("\n");
	printf("	The combination that chooses the number of LEN from the element \n");
	printf("	of LIST is set to VAR variable. \n");
	printf("	Repetition is permitted. \n");
	printf("	The set combination is chosen at random. \n");
	printf("\n");
	printf("::generator <permutationAll [RESULT_VAR] (VAR LIST [LEN]) PRED ... >\n");
	printf("\n");
	printf("	The permutation that chooses the number of LEN from the element \n");
	printf("	of LIST is set to VAR variable, and the PRED predicate of \n");
	printf("	the argument is called. \n");
	printf("	All permutations are sequentially executed. \n");
	printf("	The one that the first arguments of PRED were collected is returned \n");
	printf("	to RESULT_VAR as a result. \n");
	printf("\n");
	printf("::generator <combinationAll [RESULT_VAR] (VAR LIST [LEN]) PRED ... >\n");
	printf("\n");
	printf("	The combination that chooses the number of LEN from the element \n");
	printf("	of LIST is set to VAR variable, and the PRED predicate of \n");
	printf("	the argument is called. \n");
	printf("	All cominations are sequentially executed. \n");
	printf("	The one that the first arguments of PRED were collected is returned \n");
	printf("	to RESULT_VAR as a result. \n");
	printf("\n");

	return 1;
}


