2
Copyright 2001-2013 Michalis Kamburelis.
4
This file is part of "Castle Game Engine".
6
"Castle Game Engine" is free software; see the file COPYING.txt,
7
included in this distribution, for details about the copyright.
9
"Castle Game Engine" is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
----------------------------------------------------------------------------
16
{ CastleScript built-in simple functions on four "core" types. }
17
unit CastleScriptCoreFunctions;
24
TCasScriptAdd = class(TCasScriptFunction)
26
class function Name: string; override;
27
class function ShortName: string; override;
28
class function InfixOperatorName: string; override;
31
TCasScriptSubtract = class(TCasScriptFunction)
33
class function Name: string; override;
34
class function ShortName: string; override;
35
class function InfixOperatorName: string; override;
38
TCasScriptMultiply = class(TCasScriptFunction)
40
class function Name: string; override;
41
class function ShortName: string; override;
42
class function InfixOperatorName: string; override;
45
TCasScriptDivide = class(TCasScriptFunction)
47
class function Name: string; override;
48
class function ShortName: string; override;
49
class function InfixOperatorName: string; override;
52
TCasScriptNegate = class(TCasScriptFunction)
54
class function Name: string; override;
55
class function ShortName: string; override;
58
TCasScriptModulo = class(TCasScriptFunction)
60
class function Name: string; override;
61
class function ShortName: string; override;
62
class function InfixOperatorName: string; override;
65
TCasScriptSin = class(TCasScriptFunction)
67
class function Name: string; override;
68
class function ShortName: string; override;
71
TCasScriptCos = class(TCasScriptFunction)
73
class function Name: string; override;
74
class function ShortName: string; override;
77
TCasScriptTan = class(TCasScriptFunction)
79
class function Name: string; override;
80
class function ShortName: string; override;
83
TCasScriptCotan = class(TCasScriptFunction)
85
class function Name: string; override;
86
class function ShortName: string; override;
89
TCasScriptArcSin = class(TCasScriptFunction)
91
class function Name: string; override;
92
class function ShortName: string; override;
95
TCasScriptArcCos = class(TCasScriptFunction)
97
class function Name: string; override;
98
class function ShortName: string; override;
101
TCasScriptArcTan = class(TCasScriptFunction)
103
class function Name: string; override;
104
class function ShortName: string; override;
107
TCasScriptArcCotan = class(TCasScriptFunction)
109
class function Name: string; override;
110
class function ShortName: string; override;
113
TCasScriptSinh = class(TCasScriptFunction)
115
class function Name: string; override;
116
class function ShortName: string; override;
119
TCasScriptCosh = class(TCasScriptFunction)
121
class function Name: string; override;
122
class function ShortName: string; override;
125
TCasScriptTanh = class(TCasScriptFunction)
127
class function Name: string; override;
128
class function ShortName: string; override;
131
TCasScriptCotanh = class(TCasScriptFunction)
133
class function Name: string; override;
134
class function ShortName: string; override;
137
TCasScriptLog2 = class(TCasScriptFunction)
139
class function Name: string; override;
140
class function ShortName: string; override;
143
TCasScriptLn = class(TCasScriptFunction)
145
class function Name: string; override;
146
class function ShortName: string; override;
149
TCasScriptLog = class(TCasScriptFunction)
151
class function Name: string; override;
152
class function ShortName: string; override;
155
TCasScriptPower2 = class(TCasScriptFunction)
157
class function Name: string; override;
158
class function ShortName: string; override;
161
TCasScriptExp = class(TCasScriptFunction)
163
class function Name: string; override;
164
class function ShortName: string; override;
167
TCasScriptPower = class(TCasScriptFunction)
169
class function Name: string; override;
170
class function ShortName: string; override;
171
class function InfixOperatorName: string; override;
174
TCasScriptSqr = class(TCasScriptFunction)
176
class function Name: string; override;
177
class function ShortName: string; override;
180
TCasScriptSqrt = class(TCasScriptFunction)
182
class function Name: string; override;
183
class function ShortName: string; override;
186
TCasScriptMax = class(TCasScriptFunction)
188
class function ShortName: string; override;
191
TCasScriptMin = class(TCasScriptFunction)
193
class function ShortName: string; override;
196
TCasScriptSgn = class(TCasScriptFunction)
198
class function Name: string; override;
199
class function ShortName: string; override;
202
TCasScriptAbs = class(TCasScriptFunction)
204
class function Name: string; override;
205
class function ShortName: string; override;
208
TCasScriptCeil = class(TCasScriptFunction)
210
class function ShortName: string; override;
213
TCasScriptFloor = class(TCasScriptFunction)
215
class function ShortName: string; override;
218
TCasScriptRound = class(TCasScriptFunction)
220
class function ShortName: string; override;
223
TCasScriptGreater = class(TCasScriptFunction)
225
class function Name: string; override;
226
class function ShortName: string; override;
227
class function InfixOperatorName: string; override;
230
TCasScriptLesser = class(TCasScriptFunction)
232
class function Name: string; override;
233
class function ShortName: string; override;
234
class function InfixOperatorName: string; override;
237
TCasScriptGreaterEq = class(TCasScriptFunction)
239
class function Name: string; override;
240
class function ShortName: string; override;
241
class function InfixOperatorName: string; override;
244
TCasScriptLesserEq = class(TCasScriptFunction)
246
class function Name: string; override;
247
class function ShortName: string; override;
248
class function InfixOperatorName: string; override;
251
TCasScriptEqual = class(TCasScriptFunction)
253
class function Name: string; override;
254
class function ShortName: string; override;
255
class function InfixOperatorName: string; override;
258
TCasScriptNotEqual = class(TCasScriptFunction)
260
class function Name: string; override;
261
class function ShortName: string; override;
262
class function InfixOperatorName: string; override;
265
TCasScriptOr = class(TCasScriptFunction)
267
class function Name: string; override;
268
class function ShortName: string; override;
271
TCasScriptAnd = class(TCasScriptFunction)
273
class function Name: string; override;
274
class function ShortName: string; override;
277
TCasScriptNot = class(TCasScriptFunction)
279
class function Name: string; override;
280
class function ShortName: string; override;
283
TCasScriptInt = class(TCasScriptFunction)
285
class function ShortName: string; override;
288
TCasScriptFloatFun = class(TCasScriptFunction)
290
class function ShortName: string; override;
293
TCasScriptBool = class(TCasScriptFunction)
295
class function ShortName: string; override;
298
TCasScriptStringFun = class(TCasScriptFunction)
300
class function ShortName: string; override;
303
TCasScriptWriteln = class(TCasScriptFunction)
305
class function ShortName: string; override;
308
TCasScriptCharacterFromCode = class(TCasScriptFunction)
310
class function ShortName: string; override;
313
TCasScriptRandom = class(TCasScriptFunction)
315
class function ShortName: string; override;
320
class function TCasScriptAdd.Name: string;
325
class function TCasScriptAdd.ShortName: string;
330
class function TCasScriptAdd.InfixOperatorName: string;
335
class function TCasScriptSubtract.Name: string;
337
Result := 'subtract (-)';
340
class function TCasScriptSubtract.ShortName: string;
345
class function TCasScriptSubtract.InfixOperatorName: string;
350
class function TCasScriptMultiply.Name: string;
352
Result := 'multiply (*)';
355
class function TCasScriptMultiply.ShortName: string;
360
class function TCasScriptMultiply.InfixOperatorName: string;
365
class function TCasScriptDivide.Name: string;
367
Result := 'divide (/)';
370
class function TCasScriptDivide.ShortName: string;
375
class function TCasScriptDivide.InfixOperatorName: string;
380
class function TCasScriptNegate.Name: string;
382
Result := 'negate (unary -)';
385
class function TCasScriptNegate.ShortName: string;
390
class function TCasScriptModulo.Name: string;
392
Result := 'modulo (%)';
395
class function TCasScriptModulo.ShortName: string;
400
class function TCasScriptModulo.InfixOperatorName: string;
405
class function TCasScriptSin.Name: string;
410
class function TCasScriptSin.ShortName: string;
415
class function TCasScriptCos.Name: string;
420
class function TCasScriptCos.ShortName: string;
425
class function TCasScriptTan.Name: string;
430
class function TCasScriptTan.ShortName: string;
435
class function TCasScriptCotan.Name: string;
437
Result := 'cotangens';
440
class function TCasScriptCotan.ShortName: string;
445
class function TCasScriptArcSin.Name: string;
447
Result := 'arcSinus';
450
class function TCasScriptArcSin.ShortName: string;
455
class function TCasScriptArcCos.Name: string;
457
Result := 'arcCosinus';
460
class function TCasScriptArcCos.ShortName: string;
465
class function TCasScriptArcTan.Name: string;
467
Result := 'arcTangens';
470
class function TCasScriptArcTan.ShortName: string;
475
class function TCasScriptArcCotan.Name: string;
477
Result := 'arcCotangens';
480
class function TCasScriptArcCotan.ShortName: string;
482
Result := 'ArcCotan';
485
class function TCasScriptSinh.Name: string;
490
class function TCasScriptSinh.ShortName: string;
495
class function TCasScriptCosh.Name: string;
500
class function TCasScriptCosh.ShortName: string;
505
class function TCasScriptTanh.Name: string;
510
class function TCasScriptTanh.ShortName: string;
515
class function TCasScriptCotanh.Name: string;
520
class function TCasScriptCotanh.ShortName: string;
525
class function TCasScriptLog2.Name: string;
527
Result := 'logarithm (base 2)';
530
class function TCasScriptLog2.ShortName: string;
535
class function TCasScriptLn.Name: string;
537
Result := 'logarithm (base e)';
540
class function TCasScriptLn.ShortName: string;
545
class function TCasScriptLog.Name: string;
547
Result := 'logarithm';
550
class function TCasScriptLog.ShortName: string;
555
class function TCasScriptPower2.Name: string;
557
Result := 'power (base 2)';
560
class function TCasScriptPower2.ShortName: string;
565
class function TCasScriptExp.Name: string;
567
Result := 'power (base enat)';
570
class function TCasScriptExp.ShortName: string;
575
class function TCasScriptPower.Name: string;
580
class function TCasScriptPower.ShortName: string;
585
class function TCasScriptPower.InfixOperatorName: string;
590
class function TCasScriptSqr.Name: string;
592
Result := 'sqr (square)';
595
class function TCasScriptSqr.ShortName: string;
600
class function TCasScriptSqrt.Name: string;
602
Result := 'sqrt (square root)';
605
class function TCasScriptSqrt.ShortName: string;
610
class function TCasScriptMax.ShortName: string;
615
class function TCasScriptMin.ShortName: string;
620
class function TCasScriptSgn.Name: string;
625
class function TCasScriptSgn.ShortName: string;
630
class function TCasScriptAbs.Name: string;
632
Result := 'abs (absolute value)';
635
class function TCasScriptAbs.ShortName: string;
640
class function TCasScriptCeil.ShortName: string;
645
class function TCasScriptFloor.ShortName: string;
650
class function TCasScriptRound.ShortName: string;
655
class function TCasScriptGreater.Name: string;
657
Result := 'greater (>)';
660
class function TCasScriptGreater.ShortName: string;
665
class function TCasScriptGreater.InfixOperatorName: string;
670
class function TCasScriptLesser.Name: string;
672
Result := 'lesser (<)';
675
class function TCasScriptLesser.ShortName: string;
680
class function TCasScriptLesser.InfixOperatorName: string;
685
class function TCasScriptGreaterEq.Name: string;
687
Result := 'greater/equal (>=)';
690
class function TCasScriptGreaterEq.ShortName: string;
695
class function TCasScriptGreaterEq.InfixOperatorName: string;
700
class function TCasScriptLesserEq.Name: string;
702
Result := 'lesser/equal (<=)';
705
class function TCasScriptLesserEq.ShortName: string;
710
class function TCasScriptLesserEq.InfixOperatorName: string;
715
class function TCasScriptEqual.Name: string;
717
Result := 'equal (=)';
720
class function TCasScriptEqual.ShortName: string;
725
class function TCasScriptEqual.InfixOperatorName: string;
730
class function TCasScriptNotEqual.Name: string;
732
Result := 'not equal (<>)';
735
class function TCasScriptNotEqual.ShortName: string;
740
class function TCasScriptNotEqual.InfixOperatorName: string;
745
class function TCasScriptOr.Name: string;
747
Result := 'or (alternative)';
750
class function TCasScriptOr.ShortName: string;
755
class function TCasScriptAnd.Name: string;
757
Result := 'and (conjunction)';
760
class function TCasScriptAnd.ShortName: string;
765
class function TCasScriptNot.Name: string;
767
Result := 'not (logical negation)';
770
class function TCasScriptNot.ShortName: string;
775
class function TCasScriptInt.ShortName: string;
780
class function TCasScriptFloatFun.ShortName: string;
785
class function TCasScriptBool.ShortName: string;
790
class function TCasScriptStringFun.ShortName: string;
795
class function TCasScriptWriteln.ShortName: string;
800
class function TCasScriptCharacterFromCode.ShortName: string;
802
Result := 'character_from_code';
805
class function TCasScriptRandom.ShortName: string;