SPLE - Free Editor/IDE for Programming Languages in Snap!

SPLE - Latest IDE

SPLE Official Website

“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.

Have questions for setup or general? Ask away!

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:

  1. 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.

  2. 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.

So it compiled the line after enter is pressed instead?

that’s a good idea, I’ll work on it.

I’ll look into it but I will likely be doing a video and maybe the line thing.

I do not understand this, could you please explain a bit more?

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.

im looking into that, possibly im going to revamp the editor or do what brian said.

so like when a program goes like this

#include <iostream> 
#include <string>
using namespace std;

int main() {
 cout << "Hello World" << endl;
 string Hello = "World";
}

For me having the commas line up when writing would be useful. But tbh I don't think I could implement it plus it works ok without.

i may b able to implement W@!! pretty easily because I made this, if you want. I may need some help understanding your compiler.

Ok I will write it out in pseudocode:

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.

alright maybe i cant implement it easily lol. i can help though.

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.

SPLE v2 development has started! Collaborators and code contributors are appreciated.

I'm thinking that when I walk up to a typein prompt and I have no idea what it does, the first thing I try is to type ? and see if it'll help me.

I'm not sure I understand the "instead" but yeah, the language gets characters when the user hits enter.

I asked Bernat to look into your lost project; I'll tell you what he says.

so hints? if you typed "?" then a box would show up suggesting something?

Okay this is a more ornate example than most, but here's a program called info. This is what it looks like when you start it up:


(emphasis added). And here's what happens when you type ?:

i might add if you type ? a big box shows up

ok i wanna doo something like this now, but idk how to make one that you can scroll and continue to edit and all that? should this be a collab.....

Yes well I've been meaning to invent text boxes for Snap! for many years but I never get a round tuit. :~(

join my collab? a moderator in a collab :skull:
:> :>