Complete Help Docs

Laser Show Technology for Lighting Professionals

User Tools

Site Tools


beyond:pangoscript

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
beyond:pangoscript [2020/05/26 16:20]
Bob Varkevisser [IF operator]
beyond:pangoscript [2020/05/27 16:17]
Bob Varkevisser removed
Line 1: Line 1:
 +~~DRAFT~~
 +
 ====== PangoScript ====== ====== PangoScript ======
  
Line 20: Line 22:
 ===== Special characters (separators) ===== ===== Special characters (separators) =====
  
- '.', ';', ',', ':', '!', '', '''', '^', '+', '-', '*', '\', ' ', +. ; ' : ! � ^ + - * \ [ ] ( ) { } ? % | & =
- '`', '[', ']', '(', ')', '{', '}', '?', '%','|','&','='+
  
 ===== Predefined constants ===== ===== Predefined constants =====
Line 43: Line 44:
 ===== Math operations (expressions) ===== ===== Math operations (expressions) =====
  
-  * Standard : + +  * Standard : + - / * % 
   * Inversion : !    * Inversion : ! 
   * bit OR : |   * bit OR : |
Line 55: Line 56:
    
  
-==== IF operator ====+==== IF ====
  
- +Syntax: if (expression) operator
-Syntax: if ( expression )  operator+
  
 expression - covered with brackets. Must be an expression with expression - covered with brackets. Must be an expression with
 numerical result that gives "0" or not a "0". So, for numerical numerical result that gives "0" or not a "0". So, for numerical
-variable it's possible to write "if (variable) ...".+variable it's possible to write  
 + 
 +  if (variable)
  
 Compare operators are: >, >=, <, <=, =, <>. They produces numerical result 0 or 1. Compare operators are: >, >=, <, <=, =, <>. They produces numerical result 0 or 1.
  
-You can combine comparing operations with "&" and "|" bit-wise operators (but be sure that left and right side are "0or "1"). It's recommended to cover complex operations into brackets - like "if ((1>2) & ((3+2)>1))"+You can combine comparing operations with "&" and "|" bit-wise operators (but be sure that left and right side are 0 or 1). It's recommended to cover complex operations into brackets - like 
  
-operator will be executed if condition gets non-zero result. If you want to place other operator after "if (conditionoperator" - it must be divided with ";" - but it's better to place next operator on the next line ;-)+  if ((1>2) & ((3+2)>1))
  
-GOTO operator+operator will be executed if condition gets non-zero result. If you want to place other operator after  
 +  if (condition) operator 
 +it must be divided with ; but it's better to place next operator on the next line.
  
-Syntax:  goto label+==== GOTO ====
  
-"label" is  a name of position for a jump. The label can be placed before any operator and separated by ":"  character. As example:+Syntax: goto label
  
-mylabelWaitForBeat 4 +"label" is a name of position for a jump. The label can be placed before any operator and separated by  characterExample:
-... do something... +
-goto mylabel+
  
 +  mylabel: WaitForBeat 4
 +  ... do something...
 +  goto mylabel
  
-Operator GOTO can work with the labels inside the string variables. It means that you declare string variable, assign a label name to variable, and then you a variable in GOTO. +Operator GOTO can work with the labels inside the string variables. It means that you declare string variable, assign a label name to variable, and then you a variable in GOTO. Example:
-Example:+
  
-var s +  var s 
-s="mylabel" +  s="mylabel" 
-goto s+  goto s 
 +  DisplayPopup "It does not work" 
 +  exit 
 +   
 +  mylabel: 
 +  DisplayPopup "It works" 
 +   
 +==== VAR ====
  
-DisplayPopup "It does not work" 
-exit 
  
-mylabel: +PangoScript allow define local variables. The lifetime for the local variable defined by lifetime of the Scripter that execute PangoScript. As soon as the Scripter freed, all its local variables are removed as well.
-DisplayPopup "It works"+
  
 +All variables must be declared before the using. No need to specify the type of variable. The variable automatically adjust the type depending on value. Internally supported integer, float and string variables.  The declaration start from VAR operation and the follow one or more variable names. As example:
  
 +  var MyVariable
 +  var a,b,c
  
 +Before using the variable must be initialized by some value. Otherwise BEYOND will generate error and stop script execution. Example:
  
-VAR operator+  var MyInteger, MyString 
 +  MyInteger = 10 
 +  MyString = "Hello!"
  
-PangoScript allow define local variables. The lifetime for the local variable defined by lifetime of the Scripter that execute PangoScript. As soon as the Scripter freed, all its local variables are removed as well.+All variables declared as VAR are local.
  
-All variables must be declared before the using. No need to specify the type of variable. The variable automatically adjust the type depending on value. Internally supported integer, float and string variables.  +==== GLOBALVAR ====
-The declaration start from VAR operation and the follow one or more variable names. As example:+
  
-var MyVariable +A variable can be declared as global. In this caseit visible in ALL scripts of BEYOND. 
-var a,b,c+
  
-Before using the variable must be initialized by some value. Otherwise BEYOND will generate error and stop script execution. Example: +  globalvar s 
-var MyInteger, MyString +  s="mylabel" 
-MyInteger 10 +  goto s 
-MyString = "Hello!"+  DisplayPopup "It does not work" 
 +  exit 
 +   
 +  mylabel: 
 +  DisplayPopup "It works" 
 +   
 +===== General functions =====
  
-All variables declared as VAR are local.+^ Function ^ description ^ value ^ 
 +| **intstr**(value:number):string | transform number to string | number or a float number | 
 +| **floatstr**(value:number):string | transform number to string | number | 
 +| **abs**(value:number):number | value by modulus | integer or float number | 
 +| **int**(value:number):integer | return integer part of float value | a float point number | 
 +| **frac**(value:number):float | return fractional part of float point value | a float point number | 
 +| **round**(value:float):integer | return rounded float point value (to integer) | a float point number | 
 +| **sqr**(value:number):number | return a square of argument | a float point number or integer | 
 +| **sqrt**(value:number):float | return a square root of argument | a float point number or integer | 
 +| **cos**(value:float):float | co-sinus | a float point number or integer. angle in radians | 
 +| **sin**(value: float):float | sinus | a float point number or integer. angle in radians | 
 +| **tan**(value:float):float | tangents | a float point number or integer. angle in radians | 
 +| **arcsin**(value:float)float | arc sinus | a float point number or integer. angle in radians | 
 +| **arccos**(value: float):float | arc cosinus | a float point number or integer. angle in radians | 
 +| **arctan**(value: float):float | arc tangents | a float point number or integer. angle in radians | 
 +| **arctan2**(dx, dy:float):float | arc tangents | dx, dy - .... | 
 +| **min**(a,b:number):number | return a minimum of two numeric values | a,b  float or integer | 
 +| **max**(a,b:number):number | return a maximum of two numeric values | a,b  float or integer | 
 +| **pi**:float | return PI value | 3.1415926...| 
 +| **invert**(value:number):integer | invert value. Boolean operation, but can be used with float point numbers | If value more than 0.5 then function return 0, otherwise return 1. | 
 + 
 +===== Date and Time ===== 
 + 
 +^ Function ^ description ^ 
 +| **now:float** | date&time, calls now() function of Delphi | 
 +| **tickcount**:integer | return number of millisecond from start of PC. | 
 +| **hms**(hour, minute, second):integer | transform hour, minute and second into seconds.| 
 +| **GetYear**:integer | function return current year by PC clock. Result | 
 +| **GetMonth**:integer | function return current month by PC clock | 
 +| **GetDay**:integer | function return current day by PC clock. | 
 +| **timestr**(now:float):string |now is variable representing time. Function return string with time in short format such as "11:53", without seconds | 
 +| **timestrlong**(now:float):string | now is variable representing time. Function return string with hours, minutes, seconds, such as "11:53:10"
 +|**datestr**(now:float):string | �������� ������ ����, � ��� ��� - now is variable representing date. Function return string short date format such as "21.11.2012"
 +|**datestrlong**(now:float):string | ������� ������ ����, ���� - now  is variable representing date. Function return string long date format such as "21 ������ 2012 �." | 
 +| **dayofweek**(now:float):string | short version day of the week | 
 +| **dayofweeklong**(now:float):string | long version day of the week | 
 + 
 +===== String functions ===== 
 + 
 +^ Function ^ description ^ 
 +| **uppercase**(string):string  | transform input string to upper case. Result is a string. | 
 +| **lowercase**(string:string):string | transform input string to lower case. Result is a string
 +| **crlf**:string | return a string, line separator (13,10) | 
 + 
 +===== Clock And Metronome ===== 
 + 
 +^ Function ^ description ^ 
 +| **b2s**(beats) | transform beats to seconds | 
 +| **b2ms**(beats) | transform beats to milliseconds | 
 +| **s2b**(seconds) | transform seconds to beats | 
 +| **b2s**(seconds) | transform beats to seconds |
  
 +===== More to come =====
  
-GLOBALVAR operator 
-The variable can be declared as global. In this case, it visible in ALL scripts of BEYOND.