-
Notifications
You must be signed in to change notification settings - Fork 1
/
HTVM.hth
5604 lines (4973 loc) · 361 KB
/
HTVM.hth
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
async function wait() { variables.htvmInstructionsFromRepo = await fetch("https://themaster1127.github.io/HTVM/HT-instructions.txt").then(res => res.text()); }; wait();
FIXhtvmInstructionsFromRepoONCE := 0
Gui 5: Show, w240 h100
Gui 5: Font, s50
Gui 5: Add, Text, x5 y5 w230 h35, Loading...
Gui 5: Font, s15
Gui 5: Hide
Gui 5: Show
Sleep, 50
AScreenWidth := A_ScreenWidth - 20
AScreenHeight := A_ScreenHeight - 20
Gui 2: Show, w%AScreenWidth% h%AScreenHeight%
Gui 2: Add, Button, x5 y10 w140 h40 gButtonProjects vNewProject, Make a new project
currentProjectNum := 1
HTVM_HowManyProjects := ParseInt(StoreLocally("r", "HTVM-HowManyProjects"))
if (HTVM_HowManyProjects = null)
{
HTVM_HowManyProjects := 0
}
HTVM_HowManyProjectsButtonY := 60
Loop, % HTVM_HowManyProjects
{
projectName := StoreLocally("r", "HTVM-ProjectName" . A_Index)
AIndex := "a" . A_Index
if (Mod(A_Index, 2))
{
Gui 2: Add, Button, x5 y%HTVM_HowManyProjectsButtonY% v%AIndex% w140 h40 gButtonProjects, %projectName%
}
else
{
Gui 2: Add, Button, x160 y%HTVM_HowManyProjectsButtonY% v%AIndex% w140 h40 gButtonProjects, %projectName%
HTVM_HowManyProjectsButtonY := HTVM_HowManyProjectsButtonY + 50
}
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
AScreenWidth := AScreenWidth - 30
AScreenWidth2 := AScreenWidth - 20
AScreenHeight := AScreenHeight - 30
AScreenHeight2 := AScreenHeight - 50
AScreenHeight3 := AScreenHeight2
AScreenHeight2 := AScreenHeight2 - 20
if (isMobileDevice())
{
Gui 6: Show, w%AScreenWidth% h%AScreenHeight%
Gui 6: Font, s12
Gui 6: Add, Edit, x10 y10 w%AScreenWidth2% h%AScreenHeight2% bg050505 cffffff vDisplayInfoData6
Gui 6: Font, s15
Gui 6: Add, Button, x10 y%AScreenHeight3% w%AScreenWidth2% h40 vButtonInfoOK gButtonInfoOK6, OK
Gui 6: Hide
}
else
{
Gui 6: Show, w%AScreenWidth% h%AScreenHeight%
Gui 6: Font, s16
Gui 6: Add, Edit, x10 y10 w%AScreenWidth2% h%AScreenHeight2% bg050505 cffffff vDisplayInfoData6
Gui 6: Font, s15
Gui 6: Add, Button, x10 y%AScreenHeight3% w%AScreenWidth2% h40 vButtonInfoOK gButtonInfoOK6, OK
Gui 6: Hide
}
Gui 5: Hide
return
ButtonInfoOK6:
Gui 6: Hide
Return
ButtonProjects:
if (A_GuiControl = "NewProject")
{
HTVM_HowManyProjects := ParseInt(StoreLocally("r", "HTVM-HowManyProjects"))
if (HTVM_HowManyProjects = null)
{
HTVM_HowManyProjects := 0
}
InputBox, nameYouChose, Choose a name for your lang
if (nameYouChose = null)
{
MsgBox, You canceled
return
}
StoreLocally("s", "HTVM-ProjectName" . (HTVM_HowManyProjects + 1), nameYouChose)
StoreLocally("s", "HTVM-HowManyProjects", (HTVM_HowManyProjects + 1))
currentProjectNum := (HTVM_HowManyProjects + 1)
Gui 2: Hide
gosub, main
}
else
{
StringTrimLeft, AGuiControl, A_GuiControl, 1
currentProjectNum := AGuiControl
Gui 2: Hide
gosub, main
}
Return
main:
Gui, Show, w%A_ScreenWidth% h3840 +websitemode
Gui 5: Show
Sleep, 50
allData := ""
Loop, 86
{
EditText%A_Index% := ""
}
EditText76 := "on"
EditText77 := "on"
EditText78 := "off"
EditText79 := "off"
EditText80 := "on"
EditText81 := "off"
EditText83 := "on"
EditText84 := "on"
EditText85 := "off"
AScreenWidth := AScreenWidth - 30
AScreenWidth2 := AScreenWidth - 20
AScreenHeight := AScreenHeight - 30
AScreenHeight2 := AScreenHeight - 50
AScreenHeight3 := AScreenHeight2
AScreenHeight2 := AScreenHeight2 - 20
if (isMobileDevice())
{
Gui 3: Show, w%AScreenWidth% h%AScreenHeight%
Gui 3: Font, s12
Gui 3: Add, Edit, x10 y10 w%AScreenWidth2% h%AScreenHeight2% bg050505 cffffff vDisplayInfoData
GuiControl 3: Disable, DisplayInfoData
Gui 3: Font, s15
Gui 3: Add, Button, x10 y%AScreenHeight3% w%AScreenWidth2% h40 vButtonInfoOK gButtonInfoOK, OK
Gui 3: Hide
}
else
{
Gui 3: Show, w%AScreenWidth% h%AScreenHeight%
Gui 3: Font, s16
Gui 3: Add, Edit, x10 y10 w%AScreenWidth2% h%AScreenHeight2% bg050505 cffffff vDisplayInfoData
GuiControl 3: Disable, DisplayInfoData
Gui 3: Font, s15
Gui 3: Add, Button, x10 y%AScreenHeight3% w%AScreenWidth2% h40 vButtonInfoOK gButtonInfoOK, OK
Gui 3: Hide
}
ButtonINFOvHolder := ""
ToggleMoreBuildInFuncsTEXT := ""
if (isMobileDevice())
{
AScreenWidth := AScreenWidth + 25
Gui 4: Show, w%AScreenWidth% h%AScreenHeight%
Gui 4: Font, s15
Gui 4: Add, Text, x10 y10 w%AScreenWidth2% h50, Download the language you just created!
Gui 4: Font, s15
closeGui4X := AScreenWidth - 72
Gui 4: Add, Button, x%closeGui4X% y3 w69 h34 cffffff bgff0000 gGui4Close, close
;Gui 4: Add, Toggle, x10 y65 vToggleMoreBuildInFuncsV gToggleMoreBuildInFuncs, Toggle all HTVM pre-made Build-in functions
Gui 4: Add, Button, x10 y65 w%AScreenWidth2% h40 bg121212 cffffff gButtonDownloadInstruction, Download HT-instructions.txt
Gui 4: Add, Button, x10 y115 w%AScreenWidth2% h40 bg121212 cffffff gButtonDownloadIDE, Download simple_static_HTVM_editor.html
Gui 4: Add, Button, x10 y165 w%AScreenWidth2% h40 bg121212 cffffff gButtonDownloadJShelper, Download HTVM IDE syntax config
Gui 4: Hide
}
else
{
Gui 4: Show, w%AScreenWidth% h%AScreenHeight%
Gui 4: Font, s20
Gui 4: Add, Text, x10 y10 w%AScreenWidth2% h50, Download the language you just created!
Gui 4: Font, s15
closeGui4X := AScreenWidth - 72
Gui 4: Add, Button, x%closeGui4X% y3 w69 h34 cffffff bgff0000 gGui4Close, close
;Gui 4: Add, Toggle, x10 y65 vToggleMoreBuildInFuncsV gToggleMoreBuildInFuncs, Toggle all HTVM pre-made Build-in functions
Gui 4: Add, Button, x10 y65 w%AScreenWidth2% h40 bg121212 cffffff gButtonDownloadInstruction, Download HT-instructions.txt
Gui 4: Add, Button, x10 y115 w%AScreenWidth2% h40 bg121212 cffffff gButtonDownloadIDE, Download simple_static_HTVM_editor.html
Gui 4: Add, Button, x10 y165 w%AScreenWidth2% h40 bg121212 cffffff gButtonDownloadJShelper, Download HTVM IDE syntax config
Gui 4: Hide
}
gosub, ToggleMoreBuildInFuncs
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-76") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-76", "on")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-77") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-77", "on")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-78") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-78", "off")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-79") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-79", "off")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-80") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-80", "on")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-81") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-81", "off")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-83") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-83", "on")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-84") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-84", "on")
}
if (StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-85") = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-85", "off")
}
funcWeAreModifying := 1
if (isMobileDevice())
{
guiW := A_ScreenWidth - 90
}
else
{
guiW := A_ScreenWidth - 110
}
instructionDocumation := "lang to transpile to: Target programming language for transpilation.`nfile extention of the file: File extension for transpiled output files.`ncommands: List of supported operations or built-in functions.`nkeyWordINT: Defines an integer data type.`nkeyWordSTR: Defines a string data type.`nkeyWordBOOL: Defines a boolean data type.`nkeyWordFLOAT: Defines a floating data type.`nkeyWordINT8: Defines an 8-bit integer data type.`nkeyWordINT16: Defines a 16-bit integer data type.`nkeyWordINT32: Defines a 32-bit integer data type.`nkeyWordINT64: Defines a 64-bit integer data type.`nkeyWordIF: Used for conditional statements.`nkeyWordElseIf: Alternative condition in conditional statements.`nkeyWordElse: Defines a block of code for when no conditions are met.`nkeyWordWhileLoop: Defines a while loop.`nkeyWordForLoop: Defines a for loop.`nkeyWordLoopInfinite: Defines an infinite loop.`nkeyWordLoop: Defines a loop that iterates a specified number of times.`nkeyWordLoopParse: Defines a loop that parses through data or text.`nkeyWordContinue: Skips to the next iteration of the loop.`nkeyWordBreak: Exits a loop prematurely.`nkeyWordFunc: Defines a function or subroutine.`nkeyWordAwait: Await a func only in js.`nkeyWordVariablesAssignmentOperator: Operator for variable assignment.`nkeyWordConcatenationAssignmentOperator: Concatenates and assigns to a string variable.`nkeyWordAdditionAssignmentOperator: Adds to a numeric variable and assigns.`nkeyWordSubtractionAssignmentOperator: Subtracts from a numeric variable and assigns.`nkeyWordMultiplicationAssignmentOperator: Multiplies a numeric variable and assigns.`nkeyWordDivisionAssignmentOperator: Divides a numeric variable and assigns.`nkeyWordAdditionOperator: Adds two values or variables.`nkeyWordConcatenationOperator: Concatenates two strings or variables.`nkeyWordEqualOperator: Checks if two values or variables are equal.`nkeyWordNotOperator: Negates a boolean value or condition.`nkeyWordGreaterThanOperator: Checks if one value is greater than another.`nkeyWordLessThanOperator: Checks if one value is less than another.`nkeyWordGreaterThanOrEqualToOperator: Checks if one value is greater than or equal to another.`nkeyWordLessThanOrEqualToOperator: Checks if one value is less than or equal to another.`nkeyWordOrOperator: Combines two boolean conditions (true if either is true).`nkeyWordAndOperator: Combines two boolean conditions (true if both are true).`nkeyWordNotEqualToOperator: Checks if two values or variables are not equal.`nkeyWordTrue: Its the true boolean value.`nkeyWordFalse: Its the false boolean value.`nkeyWordSwitch: The switch statement is a type of selection control mechanism.`nkeyWordSwitchCase: The switch case is a type of selection control mechanism used within the switch statement.`nkeyWordSwitchDefault: The default case in a switch statement provides a fallback option when no case matches.`nkeyWordThrow: Used to raise an exception, signaling an error or special condition.`nkeyWordErrorMsg: Placeholder for a variable or method that stores or retrieves error messages.`nkeyWordTry: Block where code that might throw exceptions is placed; used for handling potential errors.`nkeyWordCatch: Block that handles exceptions thrown by the try block, allowing for error recovery.`nkeyWordFinally: Block that executes after try and catch, regardless of whether an exception was thrown or not. NOT SUPPORTED IN C++`nkeyWordArrayAppend: Method to add an element to the end of a collection (e.g., list or array).`nkeyWordArrayPop: Method to remove and return the last element of a collection (e.g., stack or list).`nkeyWordArraySize: Method that returns the number of elements in a collection (e.g., array, list, or vector).`nkeyWordArrayInsert: Method to add an element at a specific position in a collection (e.g., list or array).`nkeyWordArrayRemove: Method to remove an element from a collection by its value or index (e.g., list or array).`nkeyWordArrayIndexOf: Method that returns the index of the first occurrence of an element, or -1 if not found.`nkeyWordArrayDefinition: Defines an array data structure.`nkeyWordArrayOfIntegersDefinition: Defines an array of integers.`nkeyWordArrayOfStringsDefinition: Defines an array of strings.`nkeyWordArrayOfFloatingPointDefinition: Defines an array of floating-point numbers.`nkeyWordArrayOfBooleansDefinition: Defines an array of booleans.`nkeyWordJavaScriptVar: Use var for variable declarations ONLY in javascript.`nkeyWordJavaScriptLet: Use let for block-scoped variables ONLY in javascript.`nkeyWordJavaScriptConst: Use const for block-scoped, unchangeable variables ONLY in javascript.`nkeyWordReturnStatement: Returns a value from a function or exits a subroutine.`nkeyWordEnd: Indicates the end of a code block.`nkeyWordGlobal: Global in Python allows variables inside functions to be accessed and modified globally.`nkeyWordComment: Starts a single-line comment.`nkeyWordCommentOpenMultiLine: Opens a multiline comment.`nkeyWordCommentCloseMultiLine: Closes a multiline comment.`nkeyWordEscpaeChar: Escapes special characters in strings or identifiers.`nAHKlikeLoopsIndexedAt: Specifies the starting index for the AHK-like loop, such as 1-indexed, 0-indexed, or any custom value.`nkeyWordAIndex: Represents the current index of the loop. It can be customized based on the indexing method and renamed using configuration settings.`nkeyWordALoopField: Represents the current value or field in the loop. It can be renamed according to user preferences through configuration. `nkeyWordMainLabel: This is the main label where the main function will be inserted in the transpiled language.`nuseFuncKeyWord: This option allows you to use a keyword to define functions when transpiling to Python (py), JavaScript (js), or C++ (cpp). If it is turned off, you won't need to use a function definition keyword for Python and JavaScript. If you select C++ as your language, this option will always be on and cannot be turned off. Additionally, if you have useFuncKeyWord turned off and then switch to C++, it will automatically be turned on. When useFuncKeyWord is off, useCurlyBraces will automatically be toggled on, and if you turn off useFuncKeyWord, it will also toggle off useEnd if it was on.`nuseCurlyBraces: This option allows you to use curly braces to define code blocks. If useCurlyBraces is untoggled it will automatically toggle useFuncKeyWord on. When useCurlyBraces is enabled, it will automatically untoggle useEnd if it was on. This ensures that both methods of defining code blocks do not conflict.`nuseEnd: This option allows you to use an end keyword to signify the end of code blocks. When useEnd is toggled on, it will automatically turn off useCurlyBraces to maintain compatibility with your selected syntax style. Furthermore, enabling useEnd will automatically toggle on useFuncKeyWord, allowing for the use of function keywords alongside the end keyword. This ensures that all your settings work harmoniously together.`nuseSemicolon: Toggle for using semicolons at the end of statements.`nuseParentheses: if off, there's no need to use parentheses where necessary, but you still must use them in some places.`nusePythonicColonSyntax: Enables Python-style colon syntax for defining code blocks.`nforLoopLang: Choose the language for the style of the for loop.`nuseInJavaScriptAlwaysUseVar: You dont have to declere variables in js now all of them will start whit var var varName...`nuseJavaScriptInAfullHTMLfile: It wraps the js code in a full index.html file`nuseJavaScriptAmainFuncDef: The useJavaScriptAmainFuncDef option controls whether an async function is used as the main function and where it is placed in the code. If this option is set to any value other than " . Chr(34) . "off," . Chr(34) . " you must specify the syntax for the main function. This syntax is simply a label, marking the start of the main function. There’s no need to add {} brackets since it’s just a label. If you enable this option but don't explicitly place the main function label anywhere in the code, it will automatically be defined at the top. This allows you to define other functions at the top of your script or within the main function itself."
defaultSyntax := "cpp`nhtvm`nStringTrimLeft,OUTVAR,INVAR,param1|StringTrimRight,OUTVAR,INVAR,param1|Random,OUTVAR,param1,param2|Sleep,INVAR|FileRead,OUTVAR,'param1|FileAppend,INVAR,'param1|FileDelete,'INVAR|Sort,INOUTVAR,'param1,'param2|MsgBox,'param1`nint`nstr`nbool`nfloat`nint8`nint16`nint32`nint64`nif`nelse if`nelse`nwhile`nfor`nLoop`nLoop,`nLoop, Parse,`ncontinue`nbreak`nfunc`nawait`n=`n+=`n+=`n-=`n*=`n/=`n+`n+`n==`n!`n>`n<`n>=`n<=`nor`nand`n!=`ntrue`nfalse`nswitch`ncase`ndefault`nthrow`nErrorMsg`ntry`ncatch`nfinally`n.push`n.pop`n.size`n.insert`n.rm`n.indexOf`narr`narr int`narr str`narr float`narr bool`nvar`nlet`nconst`nreturn`nend`nglobal`n//`n'''1`n'''2`n" . Chr(92) . "`n0`nA_Index`nA_LoopField`nmain`non`non`noff`noff`non`noff`ncpp`non`non`noff"
theINFOtextEachText1 := "lang to transpile to: Target programming language for transpilation.`n`n"
theINFOtextEachText2 := "file extention of the file: File extension for transpiled output files.`n`n"
theINFOtextEachText3 := "commands: List of supported operations or built-in functions.`n" . "commands rules`nOUTVAR = the output variable`nINVAR = the input variable, like the one before the =`nINOUTVAR = both the output variable and the input variable`nlineTranspile = the first keyword will be replaced with the third section`n'param123... = a parameter with " . Chr(34) . "" . Chr(34) . "`nparam123... = a regular parameter, nothing much, just add as many as needed" . "`n`n"
theINFOtextEachText4 := "keyWordINT:`n`nThis defines an integer data type. You can change this keyword to whatever you like.`n`nExamples:`n- int`n- number`n- whole number`n- [integer]`n- count#the$steps`n- 42isTheAnswer`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText5 := "keyWordSTR:`n`nThis defines a string data type. You can change this keyword to whatever you like.`n`nExamples:`n- str`n- string`n- text`n- string value here`n- [character sequence]`n- " . Chr(34) . "text#inside*quotes" . Chr(34) . "`n- randomString123`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText6 := "keyWordBOOL:`n`nThis defines a boolean data type. You can change this keyword to whatever you like.`n`nExamples:`n- bool`n- true/false`n- yesORno`n- is it working now?`n- [condition met]`n- yes#no$maybe`n- trueOrFalse`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText7 := "keyWordFLOAT:`n`nThis defines a floating data type. You can change this keyword to whatever you like.`n`nExamples:`n- float`n- decimal number`n- floating point value`n- [float number]`n- 3.14*isAwesome`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText8 := "keyWordINT8:`n`nThis defines an 8-bit integer data type. You can change this keyword to whatever you like.`n`nExamples:`n- int8`n- small integer`n- 8 bits of data`n- [8bit integer]`n- 00001111`n- tinyNumber123!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText9 := "keyWordINT16:`n`nThis defines a 16-bit integer data type. You can change this keyword to whatever you like.`n`nExamples:`n- int16`n- medium integer`n- 16 bits of data`n- [16bit integer]`n- 1010101010101010`n- halfWordData!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText10 := "keyWordINT32:`n`nThis defines a 32-bit integer data type. You can change this keyword to whatever you like.`n`nExamples:`n- int32`n- large integer`n- 32 bits of data`n- [32bit integer]`n- 11111111111111111111111111111111`n- fullWordData123!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText11 := "keyWordINT64:`n`nThis defines a 64-bit integer data type. You can change this keyword to whatever you like.`n`nExamples:`n- int64`n- huge integer`n- 64 bits of data`n- [64bit integer]`n- 00000000000000001111111111111111`n- bigData!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText12 := "keyWordIF:`n`nThis is used for conditional statements. You can change this keyword to whatever you like.`n`nExamples:`n- if`n- check this condition`n- should it be true?`n- [do this if true]`n- (condition?yes:no)`n- decideWhatToDo!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText13 := "keyWordElseIf:`n`nThis is an alternative condition in conditional statements. You can change this keyword to whatever you like.`n`nExamples:`n- else if`n- elif`n- otherwise if`n- check this next condition`n- [if not this then that]`n- (ifNotCondition?tryThis)`n- weShouldTryThisNext`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText14 := "keyWordElse:`n`nThis defines a block of code for when no conditions are met. You can change this keyword to whatever you like.`n`nExamples:`n- else`n- then`n- otherwize`n- default action`n- when all else fails`n- [do this instead]`n- (fallback:doThis)`n- noneOfTheAbove!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText15 := "keyWordWhileLoop:`n`nThis defines a while loop. You can change this keyword to whatever you like.`n`nExamples:`n- while`n- repeat until`n- keep doing this`n- [continue while somting]`n- (loopUntil)`n- goForeverAndEver!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText16 := "keyWordForLoop:`n`nThis defines a for loop. You can change this keyword to whatever you like.`n`nExamples:`n- for`n- iterate through`n- loop a certain number`n- [repeat this many times]`n- goThroughEachItem!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText17 := "keyWordLoopInfinite:`n`nThis defines an infinite loop. You can change this keyword to whatever you like.`n`nExamples:`n- Loop`n- infinite loop`n- forever`n- repeat endlessly`n- [never stop]`n- (loopForever)`n- endlessLoopOfFun!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText18 := "keyWordLoop:`n`nThis defines a loop that iterates a specified number of times. You can change this keyword to whatever you like.`n`nExamples:`n- Loop,`n- iterate,`n- run this number of times`n- [execute x times]`n- (doThis:repeat10Times)`n- goAroundAndAround!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText19 := "keyWordLoopParse:`n`nThis defines a loop that parses through ONLY text. You can change this keyword to whatever you like.`n`nExamples:`n- Loop, Parse,`n- analyze this data,`n- forEach,`n- [parse through text]`n- (analyze:fromStartToEnd)`n- readEachCharacterOneByOne!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText20 := "keyWordContinue:`n`nThis skips to the next iteration of the loop. You can change this keyword to whatever you like.`n`nExamples:`n- continue`n- skip to next`n- move on now`n- [next iteration]`n- must keep going forward here in the loop`n- next#step$continue%on*`n- goOnAndOn!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText21 := "keyWordBreak:`n`nThis exits a loop prematurely. You can change this keyword to whatever you like.`n`nExamples:`n- break`n- exit loop`n- get me out of here my head is spinning`n- stop this execution`n- [terminate loop now]`n- no more iterations here, exit immediately`n- !@#exit^the&loop*now`n- endLoopHere!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText22 := "keyWordFunc:`n`nThis defines a function or subroutine. You can change this keyword to whatever you like.`n`nExamples:`n- func`n- fn`n- define function`n- create subroutine now`n- [set up a function here]`n- this is how we define a function properly`n- func!@#create&my^new*function`n- makeFunctionWorkForYou!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText23 := "keyWordAwait:`n`nThis keyword allows you to await a function only in JavaScript. You can change this keyword to whatever you like.`n`nExamples:`n- await`n- hold on mate`n- wait for function`n- pause until completed`n- [await this operation]`n- please wait while the process completes successfully`n- wait*for&the^result$to!come`n- doNotMoveUntilReady!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText24 := "keyWordVariablesAssignmentOperator:`n`nThis is the operator for variable assignment. You can change this keyword to whatever you like.`n`nExamples:`n- =`n- :=`n- assign value`n- set this variable now`n- [variable assignment operator]`n- use the assignment operator for proper initialization`n- assignValue$toVariable!@#useThis`n- letVariableBeSetHere!`n`nRules:`n- Cannot include a semicolon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText25 := "keyWordConcatenationAssignmentOperator:`n`nThis concatenates and assigns to a string variable. You can change this keyword to whatever you like.`n`nExamples:`n- +=`n- concatenate value`n- join these strings now`n- [concatenation assignment operator]`n- combine these strings together for a meaningful output`n- concatenatedString#newValue!@#addIt`n- joinThemTogetherNow!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText26 := "keyWordAdditionAssignmentOperator:`n`nThis adds to a numeric variable and assigns. You can change this keyword to whatever you like.`n`nExamples:`n- +=`n- addition assignment`n- increase this value`n- [addition operator for assignment]`n- add this number to the existing value directly here`n- plusValue$toVariable!@#increment`n- sumItUpRightHere!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText27 := "keyWordSubtractionAssignmentOperator:`n`nThis subtracts from a numeric variable and assigns. You can change this keyword to whatever you like.`n`nExamples:`n- -=`n- subtraction assignment`n- decrease this value`n- [subtraction operator for assignment]`n- take away this amount from the existing value`n- minusValue!@#toVariable&subtract`n- reduceItByThisAmount!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText28 := "keyWordMultiplicationAssignmentOperator:`n`nThis multiplies a numeric variable and assigns. You can change this keyword to whatever you like.`n`nExamples:`n- *=`n- multiplication assignment`n- double this value`n- [multiplication operator for assignment]`n- multiply this amount by the current value directly`n- timesValue!@#toVariable&multiply`n- increaseByFactorOfThis!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText29 := "keyWordDivisionAssignmentOperator:`n`nThis divides a numeric variable and assigns. You can change this keyword to whatever you like.`n`nExamples:`n- /=`n- division assignment`n- split this value`n- [division operator for assignment]`n- divide this number by the existing value directly`n- dividedValue$toVariable!@#split`n- breakItIntoEqualParts!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText30 := "keyWordAdditionOperator:`n`nThis adds two values or variables. You can change this keyword to whatever you like.`n`nExamples:`n- +`n- plus`n- addition`n- sum of values`n- [add these two numbers]`n- combine these values for a total of sum directly`n- totalIsEqualTo$sumValue@#addIt`n- addingNumbersTogether!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText31 := "keyWordConcatenationOperator:`n`nThis concatenates two strings or variables. You can change this keyword to whatever you like.`n`nExamples:`n- +`n- .`n- concatenate`n- join these strings together`n- [combine two strings]`n- put these together to form a complete statement now`n- stringCombine!@#useThis&connect`n- joinStringsToCreateFullSentence!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText32 := "keyWordEqualOperator:`n`nThis checks if two values or variables are equal. You can change this keyword to whatever you like.`n`nExamples:`n- ==`n- is equal to`n- is`n- matches these two values`n- [compare for equality now]`n- checkIfTheyAreTheSameValueRightHere`n- equalValue$toCompare!@#checkThis`n- areTheyReallyEqual?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText33 := "keyWordNotOperator:`n`nThis negates a boolean value or condition. You can change this keyword to whatever you like.`n`nExamples:`n- !`n- not`n- negation of this condition`n- [opposite of this boolean value]`n- negateThisStatementForClearerUnderstanding`n- !@#notTrue^useThis&instead`n- falseIsTheOppositeOfTrue!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText34 := "keyWordGreaterThanOperator:`n`nThis checks if one value is greater than another. You can change this keyword to whatever you like.`n`nExamples:`n- >`n- greater than`n- is this value larger`n- [compare if greater than]`n- determineIfFirstValueIsBiggerThanSecond`n- compareValue1#toValue2$useThis!`n- isThisValueGreaterThanThatValue?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText35 := "keyWordLessThanOperator:`n`nThis checks if one value is less than another. You can change this keyword to whatever you like.`n`nExamples:`n- <`n- less than`n- is this value smaller`n- [compare if less than]`n- checkIfValue1IsLessThanValue2Now`n- compareValue1&toValue2#useThis@!`n- isThisValueLessThanThatValue?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText36 := "keyWordGreaterThanOrEqualToOperator:`n`nThis checks if one value is greater than or equal to another. You can change this keyword to whatever you like.`n`nExamples:`n- >=`n- greater than or equal to`n- is this value at least`n- [check if value is larger or equal]`n- verifyIfFirstValueIsGreaterOrEqualToSecond`n- compareValue1$toValue2#andUseThis!`n- isThisValueGreaterThanOrEqualToThatValue?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText37 := "keyWordLessThanOrEqualToOperator:`n`nThis checks if one value is less than or equal to another. You can change this keyword to whatever you like.`n`nExamples:`n- <=`n- less than or equal to`n- is this value at most`n- [check if value is smaller or equal]`n- verifyIfFirstValueIsLessOrEqualToSecond`n- compareValue1^toValue2$andUseThis!`n- isThisValueLessThanOrEqualToThatValue?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText38 := "keyWordOrOperator:`n`nThis combines two boolean conditions (true if either is true). You can change this keyword to whatever you like.`n`nExamples:`n- ||`n- or`n- either condition is true`n- [true if either is true]`n- checkIfEitherConditionIsValidForExecution`n- useThis$orThat@toDetermineOutcome!`n- isThisTrueOrThatTrueToo?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText39 := "keyWordAndOperator:`n`nThis combines two boolean conditions (true if both are true). You can change this keyword to whatever you like.`n`nExamples:`n- &&`n- and`n- both conditions must be true`n- [true only if both are true]`n- checkIfBothConditionsAreValidForExecution`n- useThis$andThat@toDetermineOutcome!`n- areBothThisTrueAndThatTrueAlso?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText40 := "keyWordNotEqualToOperator:`n`nThis checks if two values or variables are not equal. You can change this keyword to whatever you like.`n`nExamples:`n- !=`n- not equal to`n- are these values different`n- [check for inequality now]`n- verifyIfTheseTwoValuesAreNotTheSame`n- checkThisValue$andThatValue!@#notEqual`n- isThisDifferentFromThatValueForSure?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText41 := "keyWordTrue:`n`nThis represents the true boolean value. You can change this keyword to whatever you like.`n`nExamples:`n- true`n- yeah`n- boolean true`n- this condition is affirmed`n- [set this to true value now]`n- confirmThisIsTrueAndLetItBeKnown`n- isThisReallyTrue$forEveryone!@#yes`n- truthAlwaysPrevailsInLogicHere!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText42 := "keyWordFalse:`n`nThis represents the false boolean value. You can change this keyword to whatever you like.`n`nExamples:`n- false`n- nah`n- boolean false`n- this condition is denied`n- [set this to false value now]`n- confirmThisIsFalseAndLetItBeClear`n- isThisReallyFalse$forEveryone!@#no`n- falsehoodNeverWinsInLogicHere!`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText43 := "keyWordSwitch:`n`nThe switch statement is a type of selection control mechanism. You can change this keyword to whatever you like.`n`nExamples:`n- switch`n- switch statement`n- change based on these values`n- [control flow with multiple conditions]`n- evaluateThisConditionAndDecideWhatToDoNext`n- switch$up@theGame#toMakeItInteresting`n- whatShouldIChooseNow?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText44 := "keyWordSwitchCase:`n`nThe switch case is a type of selection control mechanism used within the switch statement. You can change this keyword to whatever you like.`n`nExamples:`n- case`n- switch case`n- this value corresponds to a scenario`n- [choose one of the cases here]`n- selectThisCaseIfYouWantToProceedNext`n- case$selection@toDetermineOutcome#here`n- whatScenarioAreYouChoosingToday?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText45 := "keyWordSwitchDefault:`n`nThe default case in a switch statement provides a fallback option when no case matches. You can change this keyword to whatever you like.`n`nExamples:`n- default`n- default case`n- what to do if no cases match`n- [this is the fallback condition]`n- executeThisIfNoneOfTheCasesAreTrue`n- defaultOption!@#toAvoidUnwantedResults$here`n- whatShouldWeDoWhenNothingMatches?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText46 := "keyWordThrow:`n`nUsed to raise an exception, signaling an error or special condition. You can change this keyword to whatever you like.`n`nExamples:`n- throw`n- raise an exception`n- signal an error condition now`n- [indicate an exceptional case here]`n- throwThisErrorIfSomethingGoesWrongNow`n- throw@an#exception$forUnexpectedIssues!`n- whatDoYouWantToSignalNow?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText47 := "keyWordErrorMsg:`n`nPlaceholder for a variable or method that stores or retrieves error messages. You can change this keyword to whatever you like.`n`nExamples:`n- errorMsg`n- error message`n- this holds the current error text`n- [retrieve the latest error message here]`n- storeThisErrorMsgForLaterUsePlease`n- errorMsg!@#toHandleIssues^withLogic`n- whatIsTheCurrentErrorMessageRightNow?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText48 := "keyWordTry:`n`nBlock where code that might throw exceptions is placed; used for handling potential errors. You can change this keyword to whatever you like.`n`nExamples:`n- try`n- try block`n- attempt to execute this code section`n- [place risky code that might fail here]`n- tryToRunThisCodeAndCatchAnyErrorsIfTheyOccur`n- try!@#this&code*toSeeWhatHappensNow`n- whatWillYouAttemptToExecuteToday?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText49 := "keyWordCatch:`n`nBlock that handles exceptions thrown by the try block, allowing for error recovery. You can change this keyword to whatever you like.`n`nExamples:`n- catch`n- catch block`n- handle exceptions here`n- [recover from an error if it happens]`n- catchThisExceptionAndTakeAppropriateActionNow`n- catch@any$error&thatMightOccur!`n- whatExceptionsAreYouPreparedToHandleToday?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText50 := "keyWordFinally:`n`nBlock that executes after try and catch, regardless of whether an exception was thrown or not. NOT SUPPORTED IN C++. You can change this keyword to whatever you like.`n`nExamples:`n- finally`n- finally block`n- code that runs at the end`n- [always executes after try and catch]`n- finallyCompleteThisTaskRegardlessOfOutcomes`n- finally!@#execute&this*noMatterWhatHappens`n- whatFinalActionsWillYouTakeNow?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText51 := "keyWordArrayAppend:`n`nMethod to add an element to the end of a collection (e.g., list or array). You can change this keyword to whatever you like.`n`nExamples:`n- .append`n- .add`n- .insert`n- .insertElementAtEnd`n- .addNewItemToCollection`n- .pushToEndOfArray`n- .thisIsAnExampleOfAddingAnElement`n`nRules:`n- Array types must start with a dot (.) and should consist only of letters or numbers or underscores similar to a function name without spaces or special characters.`n`n"
theINFOtextEachText52 := "keyWordArrayPop:`n`nMethod to remove and return the last element of a collection (e.g., stack or list). You can change this keyword to whatever you like.`n`nExamples:`n- .pop`n- .remove`n- .takeLast`n- .deleteLastItem`n- .popLastElementFromCollection`n- .removeLastElementFromArray`n- .thisIsAnExampleOfPoppingAnElement`n`nRules:`n- Array types must start with a dot (.) and should consist only of letters or numbers or underscores similar to a function name without spaces or special characters.`n`n"
theINFOtextEachText53 := "keyWordArraySize:`n`nMethod that returns the number of elements in a collection (e.g., array, list, or vector). You can change this keyword to whatever you like.`n`nExamples:`n- .size`n- .count`n- .length`n- .getTotalItems`n- .returnNumberOfElements`n- .howManyElementsAreInTheArray`n- .thisIsAnExampleOfGettingArraySize`n`nRules:`n- Array types must start with a dot (.) and should consist only of letters or numbers or underscores similar to a function name without spaces or special characters.`n`n"
theINFOtextEachText54 := "keyWordArrayInsert:`n`nMethod to add an element at a specific position in a collection (e.g., list or array). You can change this keyword to whatever you like.`n`nExamples:`n- .insert`n- .addAt`n- .insertAtPosition`n- .insertElementAtSpecificIndex`n- .addItemAtSpecificLocation`n- .placeElementAtIndexPosition`n- .thisIsAnExampleOfInsertingAnElement`n`nRules:`n- Array types must start with a dot (.) and should consist only of letters or numbers or underscores similar to a function name without spaces or special characters.`n`n"
theINFOtextEachText55 := "keyWordArrayRemove:`n`nMethod to remove an element from a collection by its value or index (e.g., list or array). You can change this keyword to whatever you like.`n`nExamples:`n- .remove`n- .rm`n- .delete`n- .discard`n- .removeItem`n- .eliminateElementFromCollection`n- .thisIsAnExampleOfRemovingAnElement`n- .removeElementFromSpecificIndex`n`nRules:`n- Array types must start with a dot (.) and should consist only of letters or numbers or underscores similar to a function name without spaces or special characters.`n`n"
theINFOtextEachText56 := "keyWordArrayIndexOf:`n`nMethod that returns the index of the first occurrence of an element, or -1 if not found. You can change this keyword to whatever you like.`n`nExamples:`n- .indexOf`n- .findIndex`n- .locateIndex`n- .getElementIndex`n- .returnIndexOfFirstOccurrence`n- .thisIsAnExampleOfFindingIndex`n- .indexOfTheRequestedElement`n`nRules:`n- Array types must start with a dot (.) and should consist only of letters or numbers or underscores similar to a function name without spaces or special characters.`n`n"
theINFOtextEachText57 := "keyWordArrayDefinition:`n`nDefines an array data structure. You can change this keyword to whatever you like. by defalut its a string array in C++`n`nExamples:`n- array`n- array definition`n- create an array for holding values`n- [define a collection of items here]`n- arrayOfValuesThatCanHoldAnyDataType`n- array$of@special!characters%and#numbers`n- whatKindOfArrayAreYouCreatingToday?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText58 := "keyWordArrayOfIntegersDefinition:`n`nDefines an array of integers. You can change this keyword to whatever you like.`n`nExamples:`n- arrayOfIntegers`n- array of integers`n- hold multiple integer values in an array`n- [create an array specifically for integers]`n- arrayOfIntegersForStoringValuesFrom0To100`n- arrayOf!@#$%^&*()RandomIntegers12345678`n- howManyIntegersWillYouStoreInTheArray?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText59 := "keyWordArrayOfStringsDefinition:`n`nDefines an array of strings. You can change this keyword to whatever you like.`n`nExamples:`n- arrayOfStrings`n- string array`n- define an array that holds text values`n- [this array stores multiple string values]`n- arrayOfStringsToHoldNamesOfFruitsVegetablesAndMore`n- arrayOf!@#$%^&*()StringValues12345678`n- howManyStringsDoYouWantToIncludeInThisArray?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText60 := "keyWordArrayOfFloatingPointDefinition:`n`nDefines an array of floating-point numbers. You can change this keyword to whatever you like.`n`nExamples:`n- arrayOfFloats`n- floating-point array`n- create an array for float numbers`n- [store floating-point numbers in an array]`n- arrayOfFloatingPointValuesForCalculationsAndStatistics`n- arrayOf!@#$%^&*()FloatingPointNumbers98765432`n- howManyFloatValuesWillYouIncludeInTheArray?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText61 := "keyWordArrayOfBooleansDefinition:`n`nDefines an array of booleans. You can change this keyword to whatever you like.`n`nExamples:`n- arrayOfBooleans`n- boolean array`n- hold true/false values in an array`n- [create an array to store boolean values]`n- arrayOfBooleansForFlagsInTheProgramToControlFlow`n- arrayOf!@#$%^&*()BooleanValuesTrueFalse`n- howManyBooleanFlagsDoYouNeedInThisArray?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText62 := "keyWordJavaScriptVar:`n`nUse var for variable declarations ONLY in JavaScript. You can change this keyword to whatever you like.`n`nExamples:`n- var`n- variable declaration`n- use var for declaring variables`n- [initialize a variable using var in JS]`n- varToDefineVariablesInJavaScriptForScopeControl`n- var!@#ToStore^VariousData*TypesInYourCode`n- howWillYouUseVarInYourJavaScriptCode?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText63 := "keyWordJavaScriptLet:`n`nUse let for block-scoped variables ONLY in JavaScript. You can change this keyword to whatever you like.`n`nExamples:`n- let`n- block-scoped variable`n- use let for declaring block-level variables`n- [initialize a variable using let in JS]`n- letToDefineBlockScopedVariablesInJavaScriptCode`n- let!@#This^Store*DataForYou!`n- howManyBlockScopedVariablesWillYouDeclare?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText64 := "keyWordJavaScriptConst:`n`nUse const for block-scoped, unchangeable variables ONLY in JavaScript. You can change this keyword to whatever you like.`n`nExamples:`n- const`n- constant variable`n- use const for declaring unchangeable variables`n- [initialize a constant variable using const in JS]`n- constToDefineImmutableValuesInYourJavaScriptCode`n- const!@#$This^Holds*ConstantDataForYou!`n- whatConstantsWillYouDefineInYourCode?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText65 := "keyWordReturnStatement:`n`nReturns a value from a function or exits a subroutine. You can change this keyword to whatever you like.`n`nExamples:`n- return`n- yeet`n- use return to exit a function`n- [return a value from a function call here]`n- returnThisValueToContinueExecutionOfYourProgram`n- return!@#$%^&*()ValueForFurtherProcessingInCode`n- whatWillYouReturnFromYourFunctionToday?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText66 := "keyWordEnd:`n`nIndicates the end of a code block. You can change this keyword to whatever you like.`n`nExamples:`n- end`n- stop`n- end is here`n- signifies the conclusion of the code block`n- [mark the end of a function or loop here]`n- endOfBlockToIndicateNoFurtherExecutionNeeded`n- end!@#$%^&*()OfCodeForCurrentContext`n- whatWillBeTheFinalStepInYourCodeBlock?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText67 := "keyWordGlobal:`n`nGlobal in Python allows variables inside functions to be accessed and modified globally. You can change this keyword to whatever you like.`n`nExamples:`n- global`n- global variable`n- access variables across functions globally`n- [mark a variable for global scope here]`n- globalVariableAllowsAccessAcrossTheEntireModule`n- global$!@#Variables%ForAccessEverywhereInCode`n- whatGlobalVariablesAreYouUsingInYourFunction?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText68 := "keyWordComment:`n`nStarts a single-line comment. You can change this keyword to whatever you like.`n`nExamples:`n- //`n- ;`n- NOTE:`n- single-line comment`n- starts a comment in the code`n- [add a comment to explain your code]`n- commentForClarifyingThePurposeOfYourCodeHere`n- comment!@#$%^&*()ToMakeThingsClearInYourCode`n- whatCommentWouldYouAddToThisSection?`n`nRules:`n- Cannot include a colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText69 := "keyWordCommentOpenMultiLine:`n`nOpens a multiline comment. You can change this keyword to whatever you like.`n`nExamples:`n- /*`n- openMultiLineComment`n- multiline comment start`n- begin a block comment in the code`n- [this opens a comment for multiple lines]`n- openMultiLineCommentToProvideDetailedExplanations`n- openComment@!#forMultipleLines&OfDescription`n- howWillYouUseMultilineCommentsInYourCode?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText70 := "keyWordCommentCloseMultiLine:`n`nCloses a multiline comment. You can change this keyword to whatever you like.`n`nExamples:`n-*/`n- closeMultiLineComment`n- end of multiline comment`n- finish a block comment in the code`n- [this closes a comment for multiple lines]`n- closeCommentToEndDetailedDescriptionsHere`n- closeComment$!@#ToFinishMultiLineExplaining`n- howWillYouEndYourMultilineComment?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText71 := "keyWordEscapeChar:`n`nEscapes special characters in strings or identifiers. You can change this keyword to whatever you like.`n`nExamples:`n" . Chr(92) . "`n" . Chr(96) . "`n@`n~`n*`n|`n&`n^`n`nRules:`n- Cannot include a newline character, or carriage return. Anything else is allowed as long as its ONLY 1 char long.`n`n"
theINFOtextEachText72 := "AHKlikeLoopsIndexedAt:`n`nSpecifies the starting index for the AHK-like loop, such as 1-indexed, 0-indexed, or any custom value. You can change this keyword to whatever you like.`n`nExamples:`n0`n1`n50`n69`n-50`n-69`n4863`n`nRules:`n- Can only be a number or a negative number.`n`n"
theINFOtextEachText73 := "keyWordAIndex:`n`nRepresents the current index of the loop. It can be customized based on the indexing method and renamed using configuration settings. You can change this keyword to whatever you like.`n`nExamples:`n- A_Index`n- currentIndexInTheLoop`n- [thisIndicatesTheIndexOfTheCurrentIteration]`n- currentIndexInTheLoopForTrackingIterationCount`n- AIndex!@#$%^&*()UsedForCurrentLoopIterationTracking`n- whatIndexAreYouAtInYourCurrentLoop?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText74 := "keyWordALoopField:`n`nRepresents the current value or field in the loop. It can be renamed according to user preferences through configuration. You can change this keyword to whatever you like.`n`nExamples:`n- A_LoopField`n- currentLoopValue`n- [thisRefersToTheValueInTheLoopCurrently]`n- currentValueInTheLoopToProcessOrUseInLogic`n- ALoopField@!#ToStoreCurrentIterationValue%InCode`n- whatValueAreYouProcessingInYourLoopRightNow?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText75 := "keyWordMainLabel:`n`nThis is the main label where the main function will be inserted in the transpiled language. You can change this keyword to whatever you like.`n`nExamples:`n- mainLabel`n- main function label`n- define the entry point for your program`n- [this is the main label for the code execution]`n- mainLabelToInsertYourMainFunctionInTheCode`n- mainLabel@!#UsedToPointToMainFunctionInCode`n- whatIsTheEntryPointOfYourProgramGoingToBe?`n`nRules:`n- Cannot include a semicolon, colon, newline character, or carriage return. Anything else is allowed.`n`n"
theINFOtextEachText76 := "useFuncKeyWord: This option allows you to use a keyword to define functions when transpiling to Python (py), JavaScript (js), or C++ (cpp). If it is turned off, you won't need to use a function definition keyword for Python and JavaScript. If you select C++ as your language, this option will always be on and cannot be turned off. Additionally, if you have useFuncKeyWord turned off and then switch to C++, it will automatically be turned on. When useFuncKeyWord is off, useCurlyBraces will automatically be toggled on, and if you turn off useFuncKeyWord, it will also toggle off useEnd if it was on."
theINFOtextEachText77 := "useCurlyBraces: This option allows you to use curly braces to define code blocks. If useCurlyBraces is untoggled it will automatically toggle useFuncKeyWord on. When useCurlyBraces is enabled, it will automatically untoggle useEnd if it was on. This ensures that both methods of defining code blocks do not conflict."
theINFOtextEachText78 := "useEnd: This option allows you to use an end keyword to signify the end of code blocks. When useEnd is toggled on, it will automatically turn off useCurlyBraces to maintain compatibility with your selected syntax style. Furthermore, enabling useEnd will automatically toggle on useFuncKeyWord, allowing for the use of function keywords alongside the end keyword. This ensures that all your settings work harmoniously together."
theINFOtextEachText79 := "useSemicolon: Toggle for using semicolons at the end of statements."
theINFOtextEachText80 := "useParentheses: if off, there's no need to use parentheses where necessary, but you still must use them in some places."
theINFOtextEachText81 := "usePythonicColonSyntax: Enables Python-style colon syntax for defining code blocks."
theINFOtextEachText82 := "forLoopLang: Choose the language for the style of the for loop. You can see the for loop in the live preview"
theINFOtextEachText83 := "useInJavaScriptAlwaysUseVar: You dont have to declare variables when converting to js with keywords like var let const or the ones you changed the var let const to. Now all of them will start with var var varName... automatically."
theINFOtextEachText84 := "useJavaScriptInAfullHTMLfile: It wraps the js code in a full index.html file"
theINFOtextEachText85 := "useJavaScriptAmainFuncDef: The useJavaScriptAmainFuncDef option controls whether an async function is used as the main function and where it is placed in the code. If this option is not toggled off, you must specify the syntax for the main function. This syntax is simply a label, marking the start of the main function. There’s no need to add {} brackets since it’s just a label. If you enable this option but don't explicitly place the main function label anywhere in the code, it will automatically be defined at the top. This allows you to define other functions at the top of your script or within the main function itself."
Loop, Parse, defaultSyntax, `n, `r
{
theINFOtextEachText%A_Index% .= "By default the syntax is:`n" . A_LoopField
}
guiEditY := 5
Loop, Parse, instructionDocumation, `n, `r
{
guiEditText := StrReplace(Trim(StrSplit(A_LoopField, ":", 1)), "keyWord", "")
guiEditTextV := guiEditText . ":`n`n" . Trim(theINFOtextEachText%A_Index%)
guiEditTextG := "Edit" . A_Index
if (InStr(guiEditText, "use"))
{
;MsgBox, % guiEditText
if (Trim(guiEditText) = "useFuncKeyWord")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit76 vEdit76 off, useFuncKeyWord
}
if (Trim(guiEditText) = "useCurlyBraces")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit77 vEdit77 off, useCurlyBraces
}
if (Trim(guiEditText) = "useEnd")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit78 vEdit78 off, useEnd
}
if (Trim(guiEditText) = "useSemicolon")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit79 vEdit79 off, useSemicolon
}
if (Trim(guiEditText) = "useParentheses")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit80 vEdit80 off, useParentheses
}
if (Trim(guiEditText) = "usePythonicColonSyntax")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit81 vEdit81 off, usePythonicColonSyntax
}
if (Trim(guiEditText) = "useInJavaScriptAlwaysUseVar")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit83 vEdit83 off, useInJavaScriptAlwaysUseVar
}
if (Trim(guiEditText) = "useJavaScriptInAfullHTMLfile")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit84 vEdit84 off, useJavaScriptInAfullHTMLfile
}
if (Trim(guiEditText) = "useJavaScriptAmainFuncDef")
{
Gui, Add, Toggle, x5 y%guiEditY% gEdit85 vEdit85 off, useJavaScriptAmainFuncDef
}
}
else
{
if (guiEditTextG = "Edit1")
{
Gui, Add, Button, x5 y%guiEditY% w60 h30 gEdit1 vEdit1CPP, cpp
Gui, Add, Button, x70 y%guiEditY% w60 h30 gEdit1 vEdit1PY, py
Gui, Add, Button, x135 y%guiEditY% w60 h30 gEdit1 vEdit1JS, js
}
if (guiEditTextG = "Edit2")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit2 vEdit2 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit3")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit3 vEdit3 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit4")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit4 vEdit4 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit5")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit5 vEdit5 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit6")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit6 vEdit6 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit7")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit7 vEdit7 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit8")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit8 vEdit8 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit9")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit9 vEdit9 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit10")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit10 vEdit10 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit11")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit11 vEdit11 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit12")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit12 vEdit12 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit13")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit13 vEdit13 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit14")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit14 vEdit14 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit15")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit15 vEdit15 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit16")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit16 vEdit16 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit17")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit17 vEdit17 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit18")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit18 vEdit18 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit19")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit19 vEdit19 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit20")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit20 vEdit20 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit21")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit21 vEdit21 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit22")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit22 vEdit22 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit23")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit23 vEdit23 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit24")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit24 vEdit24 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit25")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit25 vEdit25 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit26")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit26 vEdit26 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit27")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit27 vEdit27 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit28")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit28 vEdit28 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit29")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit29 vEdit29 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit30")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit30 vEdit30 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit31")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit31 vEdit31 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit32")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit32 vEdit32 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit33")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit33 vEdit33 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit34")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit34 vEdit34 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit35")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit35 vEdit35 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit36")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit36 vEdit36 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit37")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit37 vEdit37 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit38")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit38 vEdit38 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit39")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit39 vEdit39 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit40")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit40 vEdit40 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit41")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit41 vEdit41 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit42")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit42 vEdit42 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit43")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit43 vEdit43 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit44")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit44 vEdit44 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit45")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit45 vEdit45 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit46")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit46 vEdit46 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit47")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit47 vEdit47 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit48")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit48 vEdit48 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit49")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit49 vEdit49 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit50")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit50 vEdit50 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit51")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit51 vEdit51 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit52")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit52 vEdit52 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit53")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit53 vEdit53 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit54")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit54 vEdit54 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit55")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit55 vEdit55 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit56")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit56 vEdit56 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit57")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit57 vEdit57 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit58")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit58 vEdit58 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit59")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit59 vEdit59 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit60")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit60 vEdit60 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit61")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit61 vEdit61 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit62")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit62 vEdit62 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit63")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit63 vEdit63 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit64")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit64 vEdit64 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit65")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit65 vEdit65 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit66")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit66 vEdit66 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit67")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit67 vEdit67 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit68")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit68 vEdit68 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit69")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit69 vEdit69 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit70")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit70 vEdit70 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit71")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit71 vEdit71 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit72")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit72 vEdit72 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit73")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit73 vEdit73 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit74")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit74 vEdit74 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit75")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit75 vEdit75 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit76")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit76 vEdit76 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit77")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit77 vEdit77 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit78")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit78 vEdit78 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit79")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit79 vEdit79 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit80")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit80 vEdit80 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit81")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit81 vEdit81 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit82")
{
guiEditY82 := guiEditY + 3
Gui, Font, s12
Gui, Add, Button, x5 y%guiEditY82% w60 h26 gEdit82 vEdit82CPP, cpp
Gui, Add, Button, x70 y%guiEditY82% w60 h26 gEdit82 vEdit82PY, py
Gui, Add, Button, x135 y%guiEditY82% w60 h26 gEdit82 vEdit82JS, js
Gui, Font, s15
}
if (guiEditTextG = "Edit83")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit83 vEdit83 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit84")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit84 vEdit84 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit85")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit85 vEdit85 bg000000 cffffff -Border r5, %guiEditText%
}
if (guiEditTextG = "Edit86")
{
Gui, Add, Edit, x5 y%guiEditY% w%guiW% h25 gEdit86 vEdit86 bg000000 cffffff -Border r5, %guiEditText%
}
}
buttonX := guiW + 15
Gui, Font, s13
Gui, Add, Button, x%buttonX% y%guiEditY% w70 h28 r3 v%guiEditTextV% gButtonINFO bg181818 cffffff, INFO
Gui, Font, s15
guiEditY := guiEditY + 30
}
doneLoading := 0
Loop, 86
{
editTextTemp := StoreLocally("r", "HTVM-ProjectName" . currentProjectNum . "-" . A_Index)
editTextTemp1 := "Edit" . A_Index
if (A_Index = 1)
{
if (editTextTemp = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-1", "cpp")
editTextTemp := "cpp"
}
;editTextTemp
if (editTextTemp = "cpp")
{
GuiControl, Disable, Edit1CPP
GuiControl, Enable, Edit1JS
GuiControl, Enable, Edit1PY
}
if (editTextTemp = "js")
{
GuiControl, Disable, Edit1JS
GuiControl, Enable, Edit1CPP
GuiControl, Enable, Edit1PY
}
if (editTextTemp = "py")
{
GuiControl, Disable, Edit1PY
GuiControl, Enable, Edit1JS
GuiControl, Enable, Edit1CPP
}
}
if (A_Index = 82)
{
if (editTextTemp = null)
{
StoreLocally("s", "HTVM-ProjectName" . currentProjectNum . "-82", "cpp")
editTextTemp := "cpp"
}
;editTextTemp
if (editTextTemp = "cpp")
{
GuiControl, Disable, Edit82CPP
GuiControl, Enable, Edit82JS
GuiControl, Enable, Edit82PY
}
if (editTextTemp = "js")
{
GuiControl, Disable, Edit82JS
GuiControl, Enable, Edit82CPP
GuiControl, Enable, Edit82PY
}
if (editTextTemp = "py")
{
GuiControl, Disable, Edit82PY
GuiControl, Enable, Edit82JS
GuiControl, Enable, Edit82CPP
}
}
if (A_Index = 85)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit85').click()
}
}
else if (A_Index = 84)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit84').click()
}
}
else if (A_Index = 83)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit83').click()
}
}
else if (A_Index = 81)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit81').click()
}
}
else if (A_Index = 80)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit80').click()
}
}
else if (A_Index = 79)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit79').click()
}
}
else if (A_Index = 78)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit78').click()
}
}
else if (A_Index = 77)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit77').click()
}
}
else if (A_Index = 76)
{
if (editTextTemp = "on")
{
document.getElementById('Gui1Edit76').click()
}
}
else
{
EditText%A_Index% := editTextTemp
GuiControl, Text, %editTextTemp1%, %editTextTemp%
}
EditText%A_Index% := editTextTemp
}
doneLoading := 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;