--- Information about Concord Script Language ----------------------[ 1/8 ]-- Lines marked with "|" represent changes since previous version. Introduction : Concord Script Language is very powerful way of writing own additions to the software itself. Syntax is something between Basic and Pascal without type and range checking which makes it closer to C language, because all responsibility is left for the author. Script files are interpreted on the run and they need not to be compiled before use. | Script language will be enhanced later, providing more syntax | checking and more flexibility than the current way provides. Some features : - single type variables (string, number, date) - mathematical formulas - arithmetical operations - string handling commands - IF-THEN-ELSE construction - sub-routines: functions and procedures - various units - run external programs - run Concord menutypes - redirectable output - scripts can be edited with any ASCII editor Reserved words : - commands : GOTO GOSUB RETURN QUIT CALL EXIT VAR SET WRITE OUTPUT EXEC MENUTYPE IF ELSE END PARAM INPUT ALLPARAM - variable types : ARRAY STRING NUMBER DATE TIME DATETIME - string handling : STRLEN STRCPY STRDEL STRPOS STRINS RANDOM - macros : @ANSWER@ + all valid Concord macro codes (@XXX@) --- Information about Concord Script Language ----------------------[ 2/8 ]-- General : - Default script file extension is .Q-A, scripts are searched from Concord system path. - No limitations concerning number of variables, subroutines and units - Max line length is 255 (in expanded format, which means after macro codes have been converted) - Remark and comment lines start with semicolon character, ie. ";anything possible here" - Variables are identified with percent signs, ie. "%THIS_IS_VARIABLE%" - Variables must be assigned to some type before use, ie. "VAR %variable% = NUMBER" - All variables are global which means that they can be referenced anywhere in script even if assigned in subroutine. - Subroutine labels are defined like in DOS batch files, ie. ":THIS_IS_LABEL" - Subroutine parameters must be assigned to some type in beginning of each subroutine, ie. "PARAM %parameter% = NUMBER" or "ALLPARAM %parameter% = STRING" - Parenthesis must be used in comparisons, ie. "IF (variable1 = variable2)" or "IF ((a = b) OR (a = c))" - All commands must be on separate lines and cannot be divided into several lines. --- Information about Concord Script Language ----------------------[ 3/8 ]-- Command usage : GOTO