Releases: Insoft-UK/PrimePlus
v3.1.3
Version 3.1.2 for macOS
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
BUILD 31129 (C1B29-25B8)
Bug fixes.
Version 3.1 for macOS
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
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
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
"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
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
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
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.