“a easy way to make a programming language”
SPLE is a free-to-use editor engine and IDE for making programming languages.
Used in: S1ML, SPL, Snap!F***, (@ me to be part of this list)
SPLE Includes:
Code Editor
Log
Compiler
Secondary Compiler (for Markup languages)
Preview/Output display
Color coding
Capital support
Keyboard support
Tablet support (iPad confirmed, read below for more info important)
More
SPLE - Snap! Programming Language Engine
Publisher: earthrulerr
Release: 0.23
Type: Tool, IDE
Platform: PC, iPad (see below), Keyboard
PC: Recommended/intended for PC.
iPad: iPad’s/Tablets will only work if you are in the Snap! Editor and on the SPLE project, click notes then click the SPLE editor and type with the on screen keyboard.
Keyboard: Any device with a Keyboard that Snap! supports, will work, iPads/ PC’s, etc.
Description:
SPLE is a IDE for programming languages. Make your own programming languages with a working editor, compiler, and output in one! Originally created and used in S1ML, SPLE has been used in Snap!F****, SPL, S1ML, and other languages in Snap!!
Using SPLE?:
It is required to give credit in the form of or related to “Editor/IDE: SPLE”.
Please @ me if you use SPLE so that I can list it.
Hmm, despite reading the code and the project notes, I don't really know how to put this to work. I have two suggestions about that:
On the web site, instead of an embedded Snap! project, put half a dozen PNGs, or maybe even an animated GIF, showing someone interacting with it. Maybe use it to implement a language everyone knows, such as BASIC, which is easy to implement.
Document an API. Maybe a READ LINE block that waits until the user has hit enter on a line, after editing it maybe, and reports that line. Maybe a SET HELP TEXT block with a multiline text input that lets you set the message to show a user who types a question mark by itself on a line. Things like that.
I have 2 things that would really help me utilise this for TileW@!!.
1: Functioning backspace
2: A way of aligning text (I want the ability to align the columns without using a table). Something similar to what the Tab typically does.
Code is variable used for the compiling process.
It is a list of two. The first item is the number of columns of the program (seperated since it requires a double newline after it).
The rest is put into item two
So now the code bit (item two of Code) is split by commas
A Space or Newline character at the start of a item in this is removed
A series of blank spaces the same as the number of columns are added, so that when we reshape the list, there are blank spaces at the end instead of it wrapping around to the code's beginning.
It is reshaped to the width (now specified in item 1 of Code variable) written in the code, and the necessary height to accomodate all the code.
Code Display is made a shorthand for i'tem 2 of Code', and also the part shown to the user (since the width is apparent to them as the amount of columns they are shown)
On each iteration the 'Run' custom block is fed the code the cursor is on (the extra script is just to remove cursor indicator)
The first set of characters before a space are checked against the list of keywords (set when green flag is clicked). If it isn't there, it will run your error code. If it is, it will run the associated code with an input of everything after the first space combined.
Commands which use numerical inputs will run them throuh the Operate custom block.
If the input has no quotation marks around it and can be understood, it will be manipulated. It will find the first segment of code when seperated by opening and closing parenthesis inputted that matches a valid operations, then all other inputs will be given as a list for that operation. Note that most use the combine block, so an unlimited number of inputs can be given for +, -, *, /, ^, %. Sadly a major rewrite would be necessary for multiple operations at once.
I'm not that concerned. TileW@!! has short actual lengths of code so I think something more basic could work. I'm going to try and decode your language so I can contribute.
If I were to have anything magically appear in TileW@!! it would be multiple operations in one command.