AL-IV (ALFOUR) v0.98.6

AL-IV.zip - all the sources of AL-IV (read: ALFOUR) compiler to C#, C++, Java and Delphi.
An original compiler written manually in C# is only for compiling a compiler (in the root directory, AL4.sln).

Use secondary compiler (in a sub-folder Compiled) to compile your projects to C# and a compiler to Delphi code from AL-IV to C# (in Delphi_build - made by C# version, and in By_Delphi_build - made already by the version in the Delphi_bild folder).

Sub-folder Library\Visual contains components wrappers to create visual forms application.

Read also a documentation and other materials on site:
http://kolmck.ru/AL4/

To contact, mailto: v1kladov#mail.ru (# -> @) or other e-mail specified on the Source Forge project page or other author's sites.

With regards, Vladimir Kladov. 2016, November, 25. The last update date for this "readme" see below.

---------------------------------------------------------
Use AL-IV to Java compiler (in sub-folder Java_build - C# version or By_Java_build - Java version).

With regards, Vladimir Kladov.

---------------------------------------------------------
v0.3: 2016, December.
v0.4: Java-awt support (except {Listview} support).
v0.41: {File_stream}, {Stream} were added. 2017, Jan, 3.
v0.42: {Mathematics}, {Random}, {Date_time} were added. 2017, Jan, 5.
v0.43: Str and Format for {Date_time} added, Rome for {Mathematics}. 2017, Jan, 8.
---------------------------------------------------------
v0.5: AL4 to C++ compiler added (w/o Visual yet, but other Library funation are supported). 2017, Jan, 31.
v0.51: wxWidgets almost ready for C++ version. Some other progress. 2017, Feb, 26.
v0.52: Full cycle has done (compilers compiled by compilers are identical and working). 2017, March, 8.
v0.53: AL4 to C++ compiler developing has big progress. 2017, March, 16.
v0.54: {Listbox} added. 2017, March, 19.
v0.55: {OpenGL} started (for all platforms: C#,C++,Java,Delphi). 2017, March, 25.
v0.56: {OpenGL} - rotating cube for all four platforms. 2017, March, 29.
v0.57: {Bitmap_direct}, OpenGL: texturing, call lists, TODO:.... 2017, April, 4.
v0.58: {Font2D}, DEBUG: ... ; 2017, April, 9.
v0.59: /op +/-/flags, Tools\Test_report 2017, April, 25.
---------------------------------------------------------
v0.60: sequentional CASE? 2017, April, 27.
v0.61: Localization support added. 2017, May, 09.
v0.62: Delphi/KOL support added (non-visual only yet). 2017, May, 18.
v0.63a: Delphi/KOL visual controls support added (including OpenGL). 2017, June, 09.
---------------------------------------------------------
v0.70: Generic functions, {Sorting}, {Tray_icon}. 2017, July, 28.
v0.71: {Configuration}, {Clipboard}, {Erros}, {DB}, {MDB}, POP/STORE/FORGET. 2017, August, 13.
v0.72: TABLE, db << INSERT/DELETE/UPDATE/SELECT, LIKE. 2017, August, 25.
v0.73: WHERE, WAIT(fn1, fn2, ...), {DB} for C++ via OTLv4. 2017. August, 28.
v0.74: UNSUPPORTED('text), Generic fun(...) ==> {?}, insert BLOB (C#). 2017, September, 3.
v0.75: optimization of array parameters, Doc_sources. 2017, September, 12.
v0.75a: better docs on classes, functions, etc. 2017, September, 14.
v0.76: NATIVE: "///copy ...", {Icon}, {Alien_windows}. 2017, September, 23.
v0.77: {Dialog}, SETTER FOR, REVERT, CASE ... ? - in separate line for long condition, lines concatenation extended rule. 2017, October, 1.
v0.78: METHOD for methods, FUN for static functions, ':' in separate line for long function header, localization of a compiler messages (Russian_RU.lng ready, any other can be added). 2017, October, 7.
v0.79: PUSH method, REVERT fixes, New_memo(..., Flags), New_read_only_edit. 2017, October, 10.
---------------------------------------------------------
v0.80: ==> type [RESULT|comment], {Bitmap}.Draw, {Listview}.Column_width, fixes. 2017, October, 14.
v0.81: ['RU']CLASS, {Tray_icon} for Java, RECORD for C++ via struct + fixes. 2017, October, 19.
v0.82: ['RU']CLASS {...}, TRANSLATION {...}. Fixes in {Configuration}. 2017, October, 22.
v0.83: some fixes, optimize size for Delphi/KOL. 2017, October, 25.
v0.84: some fixes, optimizations for C++. 2017, October, 31.
---------------------------------------------------------
v0.85.0: {Paintbox}, {Paint_lines}. 2017, November, 5.
v0.85.1: {Paint_tabs}, {Canvas}.System_color, {Control}.animate, mouse|_move|_down|_up|_wheel. 2017, November, 9.
v0.85.2: {Paintbox}.{cursor}, Cursor, Set_cursor + bug fixes. 2017, November, 12.
v0.85.3: {Control}.Location + bug fixes. 2017, November, 15.
v0.85.4: Str = S, block statements from the start of a line + bug fixes. 2017, November, 22.
v0.85.4.a: small fix (compiling to C#). 2017, November, 23.
v0.85.4.b: small fix (fixed arrays of records on base of dynamic arrays in C#). 2017, November, 24.
v0.85.5: {File_path}.File_info, {Edit}.Set_selection_range..., @@ + bug fixes. 2017, November, 27.
v0.85.6: ==, != are disabled for REAL, improve Java forms (no flicks, only vertical scrolls), {Sorting}.Data_sort(Count) + bug fixes. 2017, December, 2.
v0.85.7: FRIENDS: {class1}, ... . disabled/checked menu, #ESC + fixes. 2017, December, 7.
v0.85.8: friends can call methods of familiar class + fixes. 2017, December, 11.
v0.85.9: List_fonts + C++ optimizations, /$NOOPTIMIZE. 2017, December, 17.
---------------------------------------------------------
v0.86.0: C++ optimizations: SStrings, WIN_GDI for wxWidgets. 1st publication of IDEAL4. 2017, December, 29.
v0.86.1: {Form}.Set_column_auto_arrange(BOOL), Compiler_messages.html. 2018, Jan, 4.
v0.86.2: IDE AL4: errors/warnings window. 2018, Jan, 7.
v0.86.3: IDE AL4 improved/fixed, + other fixes. 2018, Jan, 12.
v0.86.4: IDE AL4 some changes, {Long_operation} (C#, C++). 2018, Jan, 19.
v0.86.5: {Long_operation} (Delphi/KOL, Delphi/VCL, Java(not finished)). 2018, Jan, 21.
v0.86.6: IDE AL4: localization, translate to Russian + other improvements. {OpenGL} fixed. 2018, Jan, 23.
v0.86.7: {Paint_turtle}, Tools\Image_turtle. 2018, Jan, 24.
v0.86.8: IDE AL4: improvements + fixes. Tips on function parameters (nesting), on class/record constructors. 2018, Jan, 26.
v0.86.9: environment var %AL4% allows to install AL-IV on any disk + fixes (modal {Dialog}). 2018, Jan, 29.
---------------------------------------------------------
v0.87.0: a lot of fixes; DATA[] accessible from FUNCTIONs; speed up reading UTF-8. IDE now is compiled and working from all the platforms supported (C#,Delphi/VCL,KOL,Java,C++/wx). 2018, Feb, 4.
v0.87.1: no repeat test if there were no changes; auto-sizing buttons, check boxes, etc.; {Screen}.Default_font_size. 2018, Feb, 7.
v0.87.2: tests for {Form}; fixes in compiler. 2018, Feb, 12.
v0.87.3: IDE AL4 - localized errors + localized code editing. 2018, Feb, 14.
v0.87.4: C++, Delphi: prevent output messages on test satge to Compiler_messages; better scrolling (all visual environments). 2018, Feb, 18.
---------------------------------------------------------
v0.88.0: C++: compiling with GCC (for Windows, TDM-GCC-64 was used). 2018, Feb, 26.
---------------------------------------------------------
v0.89.0: C++: compiling with GCC for Linux (console appls only). 2018, Mar, 5.
v0.89.1: C++: compiling with GCC for Linux (both conosole and visual apps). 2018, Mar, 10.
v0.89.1a: fixes. 2018, Mar, 11.
v0.89.2: C++ for Linux can be compiled in Linux. 2018, Mar, 16.
v0.89.3: TESTED(nn), '"..."', debug statement removed, DEBUG only left. 2018, Mar, 21.
---------------------------------------------------------
v0.90.0: Python (console app Hello_world). Other languages syntax highlighting in IDE (Python, Fox Pro). 2018, Apr, 8.
v0.90.1: -$SSTRINGS; highlighting Pascal syntax in IDE; {Stream}: faster text load in ANSI. 2018, Apr, 12.
v0.90.2: Python is on progress (console apps in Windows/Linux); disabled: REAL IN/!IN REAL[], ++/-- together with &&/||. 2018, Apr, 22.
v0.90.3: Python in progress (empty GUI form application); +fixes (C++, C#). 2018, May, 7.
v0.90.4: Python GUI in progress. 2018, May, 20.
v0.90.5: Python GUI in progress. 2018, May, 26.
v0.90.6: Python GUI in progress. 2018, June, 7.
v0.90.7: Operation '..' . 2018, June, 29.
v0.90.8: recursion deep control for all OVERRIDE, /$ICON, ''...''. 2018, July, 20.
v0.90.9: compiling to c++/java/python abandoned, to FPC - started. Smaller code, especially for Delphi/KOL. 2018, July, 30.
----------------------------------------------------------
v0.91.0: FPC (Windows) is OK (console, GUI, OpenGL). 36K minimum GUI app (Delphi/KOL). 2018, August, 7.
v0.91.1: Trace_nnn functions to access stack, TRAP(methods) for class fields. 2018, August, 10.
v0.91.2: {Paint_turtle}: FN; {Canvas}.{quality}; HISTORY; UNCOOKED; C# true struct always for RECORD. 2018, August, 30.
v0.91.3: Tools\Diagram_draw. 2018, September, 4.
v0.91.4: FreePascal+Linux(console apps + Empty form test app; -MDelphi ==> -MObjFPC). 2018, September, 14.
v0.91.5: FPC + Linux (visual apps) including {OpenGL}, {Tray_icon}. 2018, Sep, 21.
v0.91.6: FPC + Linux -> compiling & running IDE AL4 in Linux. 2018, Sep, 28.
v0.91.7: Demo projects added: Lupa and Clock. 2018, Oct, 9.
v0.91.8: Tools\Pascal2AL4Class. 2018, Oct, 12.
v0.91.9: BYTE->INT; C# struct->class; {Form}.scrolled, Set_column_width; fixes. 2018, Oct, 28.
----------------------------------------------------------
v0.92.0: Modifiers CLAMP & INLINE. Delphi: arrays[] reworked. 2018, Nov, 18.
v0.92.1: Delphi: cacheing temp fixed arrays; optimization V5 (uniting local vars). 2018, Nov, 24.
v0.92.2: Modifier UNROLL for FOR stmt, options /!autoinline, /!unroll. 2018, Dec, 2.
v0.92.3: LIKE .... EXCEPT; C#: /$FRAMEWORK=3.5/4.0; {Form}.reason_closing. 2018, Dec, 8.
v0.92.4: BREAK k, BREAK j, CONTINUE i. {Form}.Closed, READ. Fixed arrays fixes. 2018, Dec, 16.
v0.92.5: {Form}.command, {Form}.accept, {Single_instance}. C#: AssemblyInfo.cs. 2018, Dec, 22.
v0.92.6: a lot of fixes. 2018, Dec, 30.
v0.92.7: IDE: + Form Designer (BETA). 2019, Jan, 8.
v0.92.8: generics removed from the language; {Sorting} -> LIKE; + A[].Swap; DEBUG IMPORT -> IMPORT, DEBUG.2019, Jan, 13.
v0.92.9: Delphi/VCL: Incremental compiling. 2019, Jan, 19.
-----------------------------------------------------------
v0.93.0: Incremental compiling improved; Form designer mostly ready to use. 2019, Jan, 21.
v0.93.1: Form designer: Menu Edit added, support unknown controls, work from scratch; IDE focus after CTRL+F/R fixed; {Form}.Save_bounds; C#: message hiding bihind form fixed. 2019, Jan, 27.
v0.93.2: {Checkbox}.Radiogroup; {Report}, {Printers}, {NATIVE_printers}. 2019, Feb, 1.
v0.93.3: {RTTI} added. LIKE........'aaa' BUT IN 'zzz': ... ; 2019, Feb, 6.
v0.93.4: {Report}: wrapping, scaling, aligning, clipping, pages, events - work now (C#&VCL). 2019, Feb, 14.
v0.93.5: {Report}: 'JUSTIFY', some fixes, Report editor: fixes. Works now for KOL&FPC. 2019, Feb, 16.
v0.93.6: {Thread}, {Slice}, support for //[diagram:......] in IDE. 2019, Mar, 3.
v0.93.7: OPERATOR, {Complex}. 2019, Mar, 5.
v0.93.8: METHOD .[i,j]==>..., {Vector}, {Matrix}. 2019, Mar, 7.
v0.93.9: FOR x IN M[a TO b]: ... FOR x IN M[b DOWNTO a]: ...; /$REAL=Extended; DEMO: CCalc. 2019, Mar, 12.
------------------------------------------------------------
v0.94.0: {Cvector}, {Cmatrix} -> use in CCalc demo. 2019, Mar, 13.
v0.94.1: CCalc: polynomials, triangle solve. 2019, Mar, 14. [355/113 day]
v0.94.2: WebMaket/only changed files/, Fixes(C#: FOR, /op R2). 2019, Mar, 15.
v0.94.3: fixes in compiler, in IDE Designer. 2019, Mar, 17.
v0.94.4: X = {Class}, >> local[] is an error except X is temp; {Random_soft}. 2019, Mar, 20.
v0.94.5: FOR e IN {enumeration} : ...; 'ENUM'.Int 2019, Mar, 24.
v0.94.6: {enum}.'Item'.Next, ...Prev|ious, ...First, ...Last; 2019, Mar, 26.
v0.94.7: C# /$INCREMENTAL, -warn:0; fixes: C# hidden, IDE: can_hide[]<<name|name2. 2019, Mar, 28.
v0.94.8: 7 fixes + 1 change. 2019, Mar, 30.
v0.94.9: {Font}.Face, Size, Style can be assigned; IDE: bottom pop up menu on -------- 'labels'. 2019, Apr, 5
------------------------------------------------------------
v0.95.0: {Paint_tabs}.Select_tab moves tab into view; IDE: pop up menu on tab: lists all tabs; local fixed arrays[{enum}]. 2019, Apr, 8.
v0.95.1: IDE Designed (CTRL-click, Dbl-Click ==> to event handlers). 2019, Apr, 12.
v0.95.2: OBJECT added. 2019, Apr, 21.
v0.95.3: fixes (C#). 2019, May, 11.
v0.95.4: SCENARIO, WAIT, GOTO, CALL. 2019, May, 23.
v0.95.5: {Form}.menu_item, menu - deprecated. 2019, June, 2.
v0.95.6: {Form}.Cleint_width, Client_height, Set_client_size. Compiling by $By_Delphi_build. 2019, June, 6.
v0.95.7: fixes, compiling in Linux (of non-visual projects) fixed. 2019, June, 09.
v0.95.8: compiling in Linux with Free Pascal/LCL fixed. 2019, June, 10.
v0.95.9: fixes (FPC/Linux). 2019, June, 11.
------------------------------------------------------------
v0.96.0: improve: Anchor_bottom=TRUE. Fixes in compiler (OBJECT, ...). 2019, June, 19.
v0.96.1: Delphi X (RadStudio, BDS) supported for multi-target projects on base of FMX. 2019, July, 5.
v0.96.2: Fixes (memory leak, OBJECT compiling); Demo project "100". 2019, July, 12.
v0.96.3: Fixes. 2019, July, 17.
v0.96.4: Partial working on Android. 2019, July, 24.
v0.96.5: Android way: long tap --> RMB click, swiping columns. Calc demo on Android. 2019, Aug, 1.
v0.96.6: Android way: multiple forms applications. 2019, Aug, 9.
v0.96.7: Disable ambiguous ==>, enable Field = value for R/O fields with a setter, disable x = {Class}(... x ...), etc. 2019, Aug, 27.
v0.96.8: Disable passing R/O arrays, fixed arrays A[{enum}], passing RECORD to/return from a NATIVE function, IN/!IN priority made higher then for == / !=. Demo Worm added. 2019, Sep, 06.
v0.96.9: Disable standalone ++/-- & NATIVE METHODs, Allow INIT for OBJECT fields, Add /$INTERPRETE (C#, only some non-visual apps). 2019, Sep, 19.
v0.96.9a: fixes for the Interpreter, DATA[] in Delphi/FPC, RTTI in FPC. 2019, Sep, 20.
------------------------------------------------------------
v0.97.0: Fixes. Some internal refactoring. 2019, Sep, 27.
v0.97.1: Warning if continuened lines are not separated. A lot of fixes. 2019, Oct, 6.
v0.97.2: Interpreter/C# - visual apps. 2019, Oct, 19.
v0.97.3: Interpreter /$TEST; Demo "15" game. 2019, Oct, 26.
v0.97.4: Fixes in compiler; Demo "Lines" game. 2019, Oct, 29.
v0.97.4a: Fixes. 2019, Oct, 30.
v0.97.4b: Fixes. 2019, Nov, 1.
v0.97.5: --/++ disabled for fields. Interpreters: visual apps work now. 2019, Nov, 8.
v0.97.6: --/++ removed at all. Names|_multi|ple_parts_and||N|ames_synonims. 2019, Nov, 23.
v0.97.7: Compiler AL-IV -> Java/Android, can run empty form android app. 2019, Nov, 29.
v0.97.8: Some apps can work on Android, with simple visual components. 2019, Dec, 7.
v0.97.9: Android: panning, layout, touch events. 2019, Dec, 15.
---------------------------------------------------------------
v0.98.0: Android: input in {Paint_lines}, events value_change, selection_change. 2019, Dec, 21.
v0.98.1: Android: console applications, Free Pascal: Linux 32/64 + Windows 32/64. 2020, Jan, 02.
v0.98.2: some fixes. 2020, Jan, 4.
v0.98.3: Android: Lines work. 2020, Jan, 7.
v0.98.4: Android: OpenGL works (partially). 2020, Jan, 15.
v0.98.5: Android: OpenGL works. 2020, Jan, 18.
v0.98.6: A lot of fixes. Android: Lines, 100, Tic-tac-toe, ... 2020, Jan, 27.