Skip to content

Releases: Insoft-UK/PrimePlus

v3.1.3

17 Feb 03:03
Compare
Choose a tag to compare

Version 3.1.2 for macOS

10 Feb 00:24
Compare
Choose a tag to compare

BUILD C1C50-25BB

Code Stack

A code stack provides a convenient way to store code snippets that can be retrieved and used later.
P+

__PUSH__`i := i + 1;`
local i := 8;
__POP__

PPL

LOCAL i := 8;
i := i + 1;

Intended for regex

Warning

The previous /usr/local/bin/p+ command-line tool will be removed from this location if it exists.

Note

This installs and updates P+ as part of the PrimeSDK.

Version 3.1.1 for macOS

25 Jan 14:18
Compare
Choose a tag to compare

BUILD 31129 (C1B29-25B8)
Bug fixes.

Version 3.1 for macOS

15 Jan 18:47
Compare
Choose a tag to compare

Regular Expressions

P+ v3.1 and lator add support for regular expressions.

switch
eg.

regex `\bswitch +([a-zA-Z_]\w*)` LOCAL sw__SCOPE__ := $1;CASE
regex `\bcase +(\-?\d+) +do *$` IF sw\`__SCOPE__-1` == $1 THEN

P+

switch X
    case 0 do
    end;
end;

PPL

LOCAL sw0 := X;
CASE
  IF sw0 == 0 THEN
  END;
END;

Note

P+ 2.x supports C-Style features, C/C++ style switch not supported in 3.x.
switch in 3.x support for switch can be supported via regex.

Version 3.0.4 for macOS

08 Jan 16:13
Compare
Choose a tag to compare

Pre-Calc #define

Substitution

down ... for DOWNTO included.
for ... supported, ... and can now be used instead of to

Bug fixes!

Note

P+ will convert all FROM keywords to :=, C++ style try will remain supported via the pplib.

Version 3.0 for macOS

06 Jan 13:27
65e3ce3
Compare
Choose a tag to compare

Removed C-Style Features

•	struct: No longer supported.
•	enum: No longer supported.
•	/* */ comments: No longer supported.
•	C-style for loops (for ;; ): No longer supported.
•	Compound assignment operators (+=, -=, *=, /=, <<=, >>=, &=, |=, ^=): No longer supported.
•	Logical operators (&&, ||, !): No longer supported.
•	Bitwise operators (&, |, ^): No longer supported.

Important

In P+ = is treated as := were in PPL = is treated as ==

Note

P+ 2.x supports C-Style features, C/C++ style switch and try will remain supported in 3.x.

Version 2.0.5

10 Oct 17:58
Compare
Choose a tag to compare

"A new undef feature has been added, which reverses any prior def. Additionally, the way the handling of multi-line comments and preprocessor directives has been updated."

Bug fixes!

Version 2.0.4

06 Oct 19:25
Compare
Choose a tag to compare

When defining a macro with parameters, issues can arise if an argument name is adjacent to a letter, causing conflicts. To resolve this, you can now use a numbered placeholders like 1$ for the first argument, 2$ for the second, 3$ for the third, and so on. This ensures the macro arguments remain uniquely identifiable and avoid conflicts.

Bug Fixes!
The issues related to string handling have been resolved.

Version 2.0.3

29 Sep 22:17
Compare
Choose a tag to compare

Namespaces have now been introduced to P+, adding a hint of C++ to PPL. Unlike C++, where you can only add a namespace with using namespace std;, P+ allows you to reverse this with remove namespace std;, offering functionality that C++ lacks. Additionally, similar to C++, if a namespace is added within a local scope, it is automatically removed once it goes out of scope.

Bug Fixes!
The issues related to combining pure PPL code with P+ code have been resolved.

Version 2.0.2

28 Sep 00:20
Compare
Choose a tag to compare

You can now insert a line space in the generated PPL code.
The P+ pre-processor will interpret multiple line spaces in your code as a single line space in the generated PPL code.

Local structs are now automatically removed once they go out of scope.

The pre-calc instruction now uses a simpler and more streamlined format: \ 2 [ 1 + 2 * 4 / 2 ] compared to the previous #[ 1 + 2 * 4 / 2 ]:2.
Backward compatibility with the previous format is also maintained.

Enhanced formatting and layout of the generated PPL code.

Bug fixes!
The issue with #PPL being partially parsed has been fixed. Any code explicitly marked as PPL will remain unchanged. Similarly, #PYTHON code was also being incorrectly parsed, and now, like PPL code, any Python code will remain untouched.