Skip to content

eccs0103/abstract-programming-language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Abstract Programming Language

Feed

0.1.16 (13.08.2024)

  • Added strings and the import keyword. Currently, strings are used only to specify the path after the import keyword. The import keyword allows you to execute code from a file at the specified path using the current interpreter.

    ../Test.apl

     Write(AnyVariable);

    Main.apl

     data AnyVariable: 3;
     import "../Test.apl";
  • Added the ability to specify paths as interpreter launch arguments, thereby importing other scripts immediately upon execution.
     APL.exe ../Test1.apl ../Test2.apl
    

0.1.15 (03.08.2024)

  • Added the future to call functions. Currently, there is only the Write(...Values) function instead of the print keyword.
     Write(E, Pi);
    
  • Optimized code execution in the following areas:
    • token parsing,
    • keyword recognition,
    • token sequence traversal,
    • creation of regions in brackets,
    • tree parsing for various operations,
    • evaluation of the tree from different nodes.
  • Fixed token position detection.
  • Any error now includes its position.
  • Fixed parsing errors with multiple brackets.
     Write((1 + 1) * (1 + 1));
    

0.1.12 (10.02.2024)

  • Temporarily removed unstable operators +:, -:, *:, /:.
  • Interpreter split into parts for easier management. Code simplified using patterns.
  • Parser structure changed. Pointer tracking during code reading implemented. Parser errors now indicate error location.
     print(1 + );
     Expected expression at line 1 column 9
    
  • Keyword print now requires parentheses.
     print(E * PI);
    

0.1.10 (04.12.2023)

  • Added operators +:, -:, *:, /:.
     data A;
     A +: 3;
     A : A + 3;
    
  • Optimized token parsing.

0.1.9 (29.11.2023)

  • Added the keyword null. To use a missing value, it's necessary to explicitly use null. The absence of a value is no longer automatically considered as null.
     data A : null;
    
  • Improved recognition of semicolons.
  • Now the initial variables E and Pi are considered non-writable. Their values cannot be changed.
  • Improved adaptability and interpretation of variables.
     print(data A : 5);
    
  • Fixed a bug where it was possible to initialize a variable with itself.

0.1.7 (28.11.2023)

  • Now you can execute code with multiple instructions.
     data A : 1;
     data B : 2;
     print(A);
     print(B);
    
  • Added the ability to work with signed numbers. For example: +2, -4.
     print(7 + -4);
    
  • Improved language adaptability. Now, the absence of a value anywhere will be interpreted as null;
     data A : ();
     print(A);
    
  • Changed syntax. Now it's mandatory to put a semicolon after each instruction.

0.1.5 (27.11.2023)

  • Optimized parsing of code in brackets.
  • Improved error descriptions.
  • Added the ability to put a semicolon at the end of a line. It can also be omitted.
  • Added the ability to declare variables, initialize them, and change their values.
  • Now, only data in the print() key block will be output to the console.

Release 0.1.2 (24.11.2023)

First stable version

About

Abstract programming language model

Topics

Resources

License

Stars

Watchers

Forks

Languages