Learn to Code via Tutorials on Repl.it!

← Back to all posts
How To Make A True Coding Language: Part 1
h
CSharpIsGud (639)

Im making this tutorial series because almost every language i've seen posted to repl talk doesn't use parsing algorithms and I think it would be nice to see some that do. There are a couple flavors of these languages, typically they come in 2 forms
1) They use string splitting and regular expressions

Technically you can call this "parsing" or a language of some sort.
But you will very quickly discover you run into syntax limitations like having to have a separator for a lot of things.
Example:
set:var,Hello World;print:var

2) They do nothing at all but define some classes or variables

I don't know how people get away with this and then tell you to calm down when someone calmly separates what it is from what it isn't. Even when put in the best possible words as to not directly attack the repl itself.

Which is why I have decided to create a tutorial on making a programming language in hopes people start making ones that don't have the above flaws.

This tutorial is going to go bottom to top using no dependencies at all and will show creation of a lexer all the way up to the hand made recursive-descent parser!

The Lexer (or scanner, tokenizer, whatever you wish to call it)

Located in lexer.py

The other components will get their own files as they are created.

Next: https://repl.it/talk/learn/How-To-Make-A-Language-Parsing/39832

Commentshotnewtop
AmazingMech2418 (939)

You do know that there is more than one way to make a programming language, right? Your type one not programming languages are actually programming languages, just without as many powerful functions. For example, you could create a LOLCODE interpreter using split functions and regular expressions and LOLCODE is a programming language. It's not the most useful, but still a language. Same with Forth which is even easier to create an interpreter for. Then, the type two "not programming languages" really aren't programming languages and just created dialects for known languages. However, Clojure is a dialect of Lisp and is considered a separate language, so why couldn't some of what you call "not programming languages" actually be programming languages? For example, the in-development THAIL programming language is really a dialect of Adapt (my programming language which is also in development). Also, please stop arguing with everyone about the things you call "fake". There is still hard work put into it, just maybe not as much as a real OS or full interpreted/compiled programming language.

CSharpIsGud (639)

@AmazingMech2418 Ok yeah, I guess you could consider something like deflang an actual language. But at least deflang does some kind of parsing, tell me how you can make a dialect of a language without any form of parsing at all

AmazingMech2418 (939)

@CSharpIsGud Do you consider Dart a language although it normally just transpiles into JavaScript? Also, a dialect could technically just be a "language" with the same syntax and different function names.

CSharpIsGud (639)

@AmazingMech2418 dart actually compiles, they didn't just rename javascript

CSharpIsGud (639)

@AmazingMech2418 Also he technically didn't make a compiler in 3 lines, he just used the existing one which compiles into python bytecode, so roylat keeps his life savings

AmazingMech2418 (939)

@CSharpIsGud Yes, Dart actually compiles and he didn't make a compiler, but he still renamed the functions which qualifies as a dialect in my opinion.

[deleted]

@CSharpIsGud jokes on you I dont have any so either way I dont lose anything

AmazingMech2418 (939)

@roylatgnail Honestly, all of my languages use full interpreters. Well, besides Link and XPL which really just use JSON and XML syntax respectively and evaluate the functions to allow you to do something other than store data in JSON and XML.

xxpertHacker (480)

@AmazingMech2418 T.H.A.I.L. never even happened, thus your entire point is invalid.

xxpertHacker (480)

@AmazingMech2418 Dart is it's own language, a whole VM was made just for Dart, it has it's own parser, tokenizer, everything. Dart is normally just transpiled. There are browsers that support Dart natively with improved performance over JavaScript.

Now can we Consider TypeScript a language? No, it's clearly a dialect of JavaScript.

CSharpIsGud (639)

@StudentFires I mean, typescript has its own parser. its a dialect of javascript in that it inherits most of its syntax and compiles to it, but typescript adds major things javascript just doesn't have, like static typing.

xxpertHacker (480)

@CSharpIsGud That's it, it ends there. Interfaces are for type checking, types are for type checking, what it calls "function overloading" is the stupidest implementation of function overloading I've ever seen, is just for type checking, templates are just for type checking.

All it is, is JS with types.

Dart has types too, and a whole different syntax, but there's more that syntax and types that make a language unique. Until TS really branches off from JS, it's still just a dialect. It doesn't add anything new.

Whereas, like I said before, Dart has a whole browser dedicated to running it, parsing it, etc. Look at TypeScript, Deno, one of the only TypeScript run-times that I've heard of, barely came out a few months ago.

xxpertHacker (480)

@CSharpIsGud It's comparable to using the Python type checking extension, is it still Python? Of course!

xxpertHacker (480)

@CSharpIsGud TypeScript has room for improvement, let's look at it's function overloading, it just sets up a pattern of types that a function can accept.
Yet, if it's compiled, can't the TS compiler rename the functions before compiling and separate them? I'm sure it could! I can, and I'm sure you can too, so why can't Mircosoft? It wouldn't matter to the developer, since it should all become minified anyways.

JaydenLiu1 (9)

@AmazingMech2418 Finally, one nice comment. All of the others are very RUDE!

CSharpIsGud (639)

@JaydenLiu1 Also did you know a python interpreter got 80 upvotes on replit once, can you guess how long it took to make?

Even if you consider renaming a function creating a whole new dialect every time you make a program, I make thousands every day then.

JaydenLiu1 (9)

@AmazingMech2418 I agree about this. @CSharpisGud thinks that his way is right and that his way is the way to make a "real" coding language. There are plenty of ways to do something. It's common sense, @CSharpIsGud, that people have different beliefs and stuff! Right now you, @CSharpIsGud is just being a legit party pooper.

JaydenLiu1 (9)

@CSharpIsGud Not all "real" coding languages have interpreters. Besides, you are being a complete party pooper. Stop. It's common sense, that many people have different beliefs.

CSharpIsGud (639)

@JaydenLiu1 Look, I'm done replying to ignorance. I never said my way is the right way, I said that they should use an actual algorithm instead of faking it with if statements.

There are plenty of parsing algorithms you can use that aren't what I use.
You can act like a chain of if statements is a language all you want, I don't really care(but it still makes me cringe, and I'm being literal with that statement).
Do you know why none of these if statement languages made it into the pl jam? Yeah, I think you do.

It's straight up useless trying to explain to how doing a bunch of if statements or classes in python isn't a language to people that make them because they are always ignorant and grasp at every straw they can to defend their "project" that took them 5 minutes and takes less time for people to get bored of it and not look back.
From calling anything that opposes them "hate" to blindly praising everyone who shares the same narrow mindset.

CodeSalvageON (591)

im pretty tired of seeing fake langs on talk. they're worse than fake os's

CodeLongAndPros (1466)

@CodeSalvageON I don't think of them as OSes, more of shells.

DynamicSquid (4359)

@CodeSalvageON I think fake OS are worse

std::cout << "Booting up system. Please wait a while\n";

for (int a = 0; a < infinity; ++a)
    std::cout << a << "% loading...\n";

@CodeLongAndPros empty shells

JaydenLiu1 (9)

@CodeSalvageON Are you saying that my coding language, S-SPENSE, is fake? https://repl.it/talk/share/S-SPENSE-11/59234

CSharpIsGud (639)

@JaydenLiu1 Also yes, that's pretty much exactly what he was saying.
programmeruser was being nice when he said it was more of a shell than a language, because that's basically what it is.

if (PORTin == "pythn"):
            Python = input ("")
            if (Python == "print"):
                Print = input ("")
                print (Print)

I mean come on, look at it. This is basically all it is.

CSharpIsGud (639)

@JaydenLiu1 Python and basically every other language use parsing algorithms, not a thousand line long chain of if statements.

Why do you think people call them fake in the first place?

JaydenLiu1 (9)

@CSharpIsGud What if the creator never said it was a "real" coding language, huh? Have you thought about THAT?

JaydenLiu1 (9)

@CodeSalvageON That's kinda mean and rude at the same time...

JaydenLiu1 (9)

@CSharpIsGud I neither ever said it was real nor fake. I just said it was a coding language I developed.

CSharpIsGud (639)

@JaydenLiu1 Its either a coding language or it isn't, there is no such thing as a fake one, because it wouldn't be a language any more.

CSharpIsGud (639)

@JaydenLiu1 Exactly, you said it was, but it isn't.
What's ironic is all of the "hate" begins as a simple statement that it isn't what they said it was, the creators and people that make them are the ones that immediately get super defensive.

JaydenLiu1 (9)

@CSharpIsGud I DIDN'T SAY S-SPENSE IS A REAL CODING LANGUAGE! CAN YOU GIVE ME SOME PROOF?

JaydenLiu1 (9)

@CSharpIsGud HOW MANY TIMES DO I HAVE TO SAY THIS TO MAKE YOU LISTEN? I NEVER SAID IT WAS A CODING LANGUAGE!!!

CSharpIsGud (639)

@JaydenLiu1 DUDE SEARCH FOR PEOPLE WHO ACTUALLY MADE A LANGUAGE WITH A PARSER

READ THE CODE

a bunch of if statements isn't a language

CSharpIsGud (639)

@JaydenLiu1 S-SPENSE is a coding language I developed

CSharpIsGud (639)

@JaydenLiu1 By the way, the python interpreter that got 80 upvotes, was done in probably less than 30 seconds if they typed fast.

print(eval(input()))
The people that defended the above cycle farm are people like you who simply don't understand that you can't just make a bunch of if statements and call it a language.

JaydenLiu1 (9)

@CSharpIsGud "How to make a REAL Coding Language"

JaydenLiu1 (9)

@CSharpIsGud "Fake coding languages"

JaydenLiu1 (9)

@CSharpIsGud "Just a bunch of if statements isn't a REAL language"

JaydenLiu1 (9)

@CSharpIsGud So what? You're just being a party pooper! If it got 80 upvotes then it gets 80 upvotes!

CSharpIsGud (639)

@JaydenLiu1 Now stop filling my notifications with cringe. It's not worth trying to explain how print(eval(input())) is not something that should get 80 upvotes to someone who will just use every excuse possible to say how it took lots of effort and hard work to type one line of python.

CSharpIsGud (639)

@JaydenLiu1 You know what, just to make you stop filling my notifications, I will make a replica of your "language" in 30 minutes or less.

JaydenLiu1 (9)

@CSharpIsGud Okay fine you are just gonna copy code from S-SPENSE and paste it onto your project

CSharpIsGud (639)

@JaydenLiu1 Nope, completely from scratch. its just a bunch of if statements. I might even have time to spare to add in some extra things too because it isn't that difficult.

CSharpIsGud (639)

@JaydenLiu1 It's just if say in command, its not like you can do math equations or anything like that without pythons help.

Even basic bash(echo "Hello World!") does more parsing than that.

CSharpIsGud (639)

@JaydenLiu1 https://repl.it/@CSharpIsGud/S-SPENSE Done.
Removed a lot of redundant code, added an if statement to add two numbers and still could do more with 6 minutes to spare.

JaydenLiu1 (9)

@CSharpIsGud Can't I just create a function that does that? Wait, that won't help.

JaydenLiu1 (9)

@CodeSalvageON "im pretty tired of seeing fake langs on talk. they're worse than fake os's"

CodeSalvageON (591)

@JaydenLiu1 yes, they are. Fake languages suck, and they really suckkkkkkkk

JaydenLiu1 (9)

@CodeSalvageON "yes, they are. Fake languages suck, and they really suckkkkkkkk"

CodeSalvageON (591)

@JaydenLiu1 yeah they’re legit just a bunch of crappy functions, nothing of value there

JaydenLiu1 (9)

@CodeSalvageON "yeah they’re legit just a bunch of crappy functions, nothing of value there"

CodeSalvageON (591)

@JaydenLiu1 yep, stuff like that is completely useless, people who make that stuff should learn how to use lexers and parsers lol

JaydenLiu1 (9)

@CodeSalvageON "yep, stuff like that is completely useless, people who make that stuff should learn how to use lexers and parsers lol"

CodeSalvageON (591)

@JaydenLiu1 fake langs are insipid and delusional

JaydenLiu1 (9)

@CodeSalvageON "fake langs are insipid and delusional"

CodeSalvageON (591)

@JaydenLiu1 good you're finally self aware

JaydenLiu1 (9)

@CodeSalvageON "good you're finally self aware" No I'm not I'm quoting you because you're annoying

CSharpIsGud (639)

@JaydenLiu1 So many pings from here.

Also, you are really only harming yourself by quoting him.
Some of his sentences might go a little overboard but its basically how things are.

If I didn't care about being swarmed by everyone who believes it takes a lot of effort to make a few if statements in a file I would also put the truth in as blunt words as possible.

It's just that it isn't worth doing that because none of them seem to be able to soak in that everyone that isn't one of those people would rather go enjoy the fully working javascript interpreter next door that took more than a day to give basic functionality.

CodeSalvageON (591)

@JaydenLiu1 ok u still aint self aware, have fun with ur fried logic boards

CSharpIsGud (639)

@JaydenLiu1 Typically if you actually call out said things as not being what they said they are they will go crazy.
There are plenty of things they may or may not reply with but I can think of some probable ones and their counterparts:
"Dude, chill" ('chilling' is not necessary when you are already 'chill')
"Hater" (This defeats itself.)
Special: "I diDn'T sAy iT wAs A rEAl C0diNG lAnGuAGE!" ('coding language' implies that it is a coding language)
"It took a lot of effort for him to make that" (If it did, you wouldn't be commenting about how it can be done in less than 10-30 minutes)
"Stop." (If they can't actually think of any reason you shouldn't call out how easy it is to do what they did)
+

JaydenLiu1 (9)

@CSharpIsGud ""Stop." (If they can't actually think of any reason you shouldn't call out how easy it is to do what they did)" Basically that implies you because you said "I can code S-SPENSE 1.1 in less than 30 minutes it's as easy as that"

CSharpIsGud (639)

@JaydenLiu1 Uh yeah, and what did I do literally as soon as I said that?

Made it in less than 30 minutes, because it is as easy as that.

CodeSalvageON (591)

@JaydenLiu1 imagine being an angry npc

AdCharity (1328)

if you think about it most of the "fake languages" are actually languages,they're just implemented very poorly. It's literally like me ragging on you for not separating the lexer and tokenizer because they're completely different.

CSharpIsGud (639)

@AdCharity I mean, I may have exploded on .split and regexp in the past, but you can technically call those languages. when people define some classes and import them in another file and genuinely believe it isn't just python. I impulsively point that out

AdCharity (1328)

@CSharpIsGud I get your point (in fact one of my "languages was the same thing, I'm going to pretend I'm different now"). Nice project though :P

BobNeo (39)

Can you like not hate on people’s projects just because they don’t fit your idea of a coding language?

CodeSalvageON (591)

@BobNeo they're modules at most, not "coding languages"

BobNeo (39)

That doesn’t excuse it. @CodeSalvageON

CodeSalvageON (591)

@BobNeo still, criticism is good and people should know what they're actually programming before they call it something else.

CSharpIsGud (639)

@BobNeo "my idea of a coding language" there is no my idea. its not a language if its just python with some defined classes, basically the same with .split and regexp

BobNeo (39)

That doesn’t excuse it either @CodeSalvageON

CSharpIsGud (639)

@BobNeo it does, because its true. but there isn't an excuse for blindly defending posts that don't even know what they are

LoganSpong (46)

@CSharpIsGud Also, I know who you're targeting.

CSharpIsGud (639)

@LoganSpong this applies to everyone who makes either of those types of not programming languages, your just the most recent

LoganSpong (46)

@CSharpIsGud Yours literally is Python. print(), Its just classes as well! And I can prove it! I can write any old Python code, and it will work!

LoganSpong (46)

@CSharpIsGud IsAlpha() is literally a redefinition of the str class and the function is .isalpha

Its also only 96 lines.
In Syntax.md IT LITERALLY SAYS: Some syntax borrowed from other languages.

Huh?

CSharpIsGud (639)

@LoganSpong good idea with isalpha, however by Standard syntax shared by most languages under expressions I obviously meant stuff like 1 + 2 * 3 which most languages share.

also its 97 lines because this is just the lexer and its in python.
if you look at my other langs like my python compiler you will see it quickly rises into the 3 digit range

LoganSpong (46)

@CSharpIsGud Python Compiler? Really? C'mon, triple-digits?
I can make one in 3-ish lines.

LoganSpong (46)

@CSharpIsGud Because you only have string analysing functions?

CSharpIsGud (639)

@LoganSpong I mean a real to native executable compiler, not a call to eval nested in a loop(which isn't a compiler anyway)

the one you make in 3 lines would just be using the existing python interpreter instead of making one

https://repl.it/@CSharpIsGud/CPython

[deleted]

@LoganSpong i will bet my life savings that you cannot make a python compiler in 3 lines

CSharpIsGud (639)

@LoganSpong Mine uses classes, but I never said the C++ classes were classes in my own language. If you look, you will see that the compiler doesn't actually support python classes because I haven't gotten to parsing those yet

And obviously I have to make a program for the compiler to compile

CodeSalvageON (591)

@LoganSpong he's not targeting anyone. If you call criticism "targeting" then "pls give upvotes"

LoganSpong (46)

@CSharpIsGud In python there is a compile function.

Python compiler:

code = input('Enter code here:')
exec(compile(code, code, 'exec')
NoelB33 (314)

@royaltgnail So when will you give your life savings to @LoganSpong

NoelB33 (314)

He’s obviously targeting somebody, this post came out right after he commented on the post he is targeting. @CodeSalvageON

CSharpIsGud (639)

@LoganSpong also thats just using an existing compiler and its compiling to bytecode(python is JIT compiled(TO BYTECODE NOT NATIVE) im sure so the compile function is basically the same amount of cheating as exec and eval)

BobNeo (39)

@CSharpIsGud I just got like 30 notifications from just this lol

JordanDixon1 (371)

@BobNeo @CSharpIsGud @CodeSalvageON Listen, heated discussions are not the reason repl.it was made. It was meant for making and sharing projects. It was meant for people that don't want to install the programming language on their computer that may be around 200mb! Also, I do believe CONSTRUCTIVE criticism is good, however, the keyword is constructive. You don't need to create a post about how someone else's post is invalid and wrong. You can simply comment on their post suggesting the name be changed to something different. @LoganSpong s module is actually really good, and although he may have the description wrong, it can still be really helpful for developers. I am working with him on making his module on pypi and I hope to see it on there soon. Anyway, I don't mean to point fingers, harass, or anything like that. I am simply trying to put an end to this heated discussion.

JaydenLiu1 (9)

@BobNeo ANOTHER NICE COMMENT! THE OTHERS ARE VERY RUDE!

Spiered (4)

Whether it is a "true" or a "fake" language (as you call them), both are useless in the sense that, barring exceptions, nobody will use them (except maybe for fun), and I don't think we should blame people making this "fake" languages or "true" languages because both are very interesting to code, it is a question of skills: if you are skillful and experienced then make a "real" language, but if you are a beginner or if you don't have a lot of time (whatever) code a "fake" language, nothing bad with that.

Otherwise this tutorial sounds interesting :)

JaydenLiu1 (9)

@Spiered I agree... Some people accuse other people for saying something they didn’t say.

JaydenLiu1 (9)

@Spiered There’s nothing wrong with a ”fake” coding language. People should stop overreacting about a ”fake” and ”real” coding language because they have no point and make no sense.

CSharpIsGud (639)

@JaydenLiu1 People call them fake, because they don't have any real parsing done at all, cant do anything that a normal language can do easily.
And as to why everyone gets so annoyed every time someone posts one, is because they probably made one that actually took longer than an hour to do. Meanwhile someone posts 30 minutes worth of input if print print input print input if and people will defend that like its gods creation whenever someone realizes what it is. That's exactly what's wrong with them, they don't take much effort to make, some people have such a loose definition of what is a language around here that they don't have to care, and if someone does start to point out how it took less than 30 minutes to do they don't have to worry because most if not all of the people that bothered to even look at it are the ones that will just say they are "overreacting" or "hating"

Simply saying that fake vs real makes no sense, makes no sense when there is a very obvious line between what is a programming language using a well known parsing algorithm and what is a program reading a list of predefined commands from a terminal(hint: the underlying language its made in does all the work)

Here is a good example of what a "real" one looks like from DynamicSquid, specifically the syntax.
You can't just parse that with a bunch of input and if statements, and it functions like a language instead of a list of set in stone commands.
https://repl.it/talk/share/Mirror-My-Other-Programming-Language/79690

Codemonkey51 (885)

Yeh I agree there semi-fake they are technically languages but this is better I think I'll add this to RePy a language by me and @SushiPython it would really import every it. Also I've always wanted to make a proper language so here I go

TheForArkLD (734)

is deflang true language?

CSharpIsGud (639)

@TheForArkLD Technically you could call .split and regexp a parser by the definition of the word, but you run into limitations really fast, note how you had to require multiple separators to split statements, parameters etc. and require an expression parsing algorithm like the shunting yard algorithm if you want stuff like 5 + 2 * 3(including order of operations of course)

xxpertHacker (480)

@CSharpIsGud Thinking about it, can we call Amasad's BASIC a language? It's really just a transpiler.

JaydenLiu1 (9)

I hate people saying "I hate fake coding languages" because it offends the creator of the coding language. Please stop saying "fake" or "hate" on people's projects because it's not really nice and it also makes the creator upset for something that he/she made in a long time span.

Also people should stop overreacting on just a project the creator did for fun. People have no point and make no sense. I mean, there’s no difference in the words ”real” and ”fake” when comparing two different coding languages in repl.it.

CSharpIsGud (639)

@JaydenLiu1 People say that, because they aren't languages.
If its fake, then people will call it fake regardless of if they hate it or not.
In case you have not seen, some people have literally just done this and called it a "coding language"

class Console:
    def WriteLn(str):
         print(str)

console = Console()

console.WriteLn("LOOK AT MY NEW LANGUAGE")

Luckily these kinds of things have sort of died down on replit now.
Simply calling it "hate" to call out what something is and is not does not change the fact that the above snippet is just python with a defined class.

JaydenLiu1 (9)

@CSharpIsGud Yeah I know those aren't really coding languages. It's technically C# in a nutshell. But, to be mean to the creator of a coding language that isn't just that, unacceptable! Hate is unacceptable!

And not to mention, not everybody is as good as you, my friend!

JaydenLiu1 (9)

@CodeSalvageON Stop being so mean. Like I said, hate/mean statements are UNACCEPTABLE!

JaydenLiu1 (9)

That's right! You heard me! UNACCEPTABLE!

JaydenLiu1 (9)

@CodeSalvageON BUT WE HATE HATE SPEECHES! IT'S UNACCEPTABLE!

JaydenLiu1 (9)

@CodeSalvageON OK I do not want to stick with a person and stay talking with a person who is clearly weird and unstable, so see ya later!

PowerCoder (623)

@JaydenLiu1 You have a point. But some languages are not true programming languages; they're "fake" programming languages. They lack the functionality, syntax, and semantics of a true programming language.

JaydenLiu1 (9)

@PowerCoder But to compare a ”real” and ”fake” coding language, technically the words ”real” and ”fake” don’t make any sense or have any meaning when put in a statement like that.

TheDrone7 (1431)

@CodeSalvageON please refrain from comments like this.

PowerCoder (623)

@JaydenLiu1 There's a formal definition of a programming language that separates it from shells, markup languges, and others.

Formal definition of a programming language:

A programming language is a formal language comprising a set of instructions that produce various kinds of output. Programming languages are used in computer programming to implement algorithms. Most programming languages consist of instructions for computers.

Some languages are deemed fake because they do not follow these guidelines.

LoganSpong (46)

Can I.. borrow this code for my true lang?

rediar (397)

"Enter a math equation to evaluate (like 2 + 2): 5^5
5"
hmmmm
Also, quick question, I couldn't figure out what self.cur (lexer.py) was supposed to do

TheDrone7 (1431)

Shall I recommend editing the posts to have a link to your next tutorials and previous ones (in the future posts) so that people can easily navigate through these?

LoganSpong (46)

Hm.. This is cool! I would like to make a parser, thanks!

DannyIsCoding (666)

Yay! I can't wait to make my own language :D

DynamicSquid (4359)

I'm really curious about making my own language, but I too busy now :(

The way I understand it, it that you have an input

a += 7

And you have to split that up into characters

a, +, =, 7

And that part is called the lexer?

CSharpIsGud (639)

@DynamicSquid its more than characters, tokens, like operators, numbers, strings

DynamicSquid (4359)

@CSharpIsGud oh, okay. and then then next next step is the parser?

CSharpIsGud (639)

@DynamicSquid Yes, I use recursive-descent parsers in my interpreters/compilers

DynamicSquid (4359)

@CSharpIsGud Oh, okay. And is that most of it?

CSharpIsGud (639)

@DynamicSquid after the parser you make the actual interpreter or compiler

DynamicSquid (4359)

@CSharpIsGud and that's where the user enters their input?

CSharpIsGud (639)

@DynamicSquid interpreter gets input -> passes to parser which passes it to the lexer -> parser generates a syntax tree -> interpreter traverses that tree

DynamicSquid (4359)

@CSharpIsGud ohh.. okay, it makes sense now. thanks!

xxpertHacker (480)

@DynamicSquid The += get's parsed as one operator, so that's only 3 tokens.

PYer (3505)

Hey! Great tutorial/idea! Haven't seen one of these yet. (But don't insult other people's projects either...)

DynamicSquid (4359)

@PYer unrelated, but your on your way to 3000

PYer (3505)

lol thanks! I have my first cycle special planned for it. it's been planned for 2 months, and I'm not sure if i'll have it finished in time @DynamicSquid

DynamicSquid (4359)

@PYer ooh... can't wait to see that! And I'm sure once you release your cycles special, it won't be long before you take over mat!

PYer (3505)

ummm... i think you're going to be disappointed. And I feel like it's going to take some time to beat mat. I've been ahead of him once before, but lost the lead. I'm satisfied being second. @CodingCactus and @Vandesm14 are slowly creeping up (quickly in the case of CodingCactus). The cycle special is REDACTED. I'll delete that in one minute though :) @DynamicSquid

DynamicSquid (4359)

@PYer oh, well, still, 3000 cycles! That's pretty good, well done :)

LoganSpong (46)

There. I changed the name of my post to: A collection of powerful functions. Like it now? I can also change it to: Some functions I made called Inspyre.

NoelB33 (314)

Your post was a really good post, and you don’t have to change it’s name just because some person doesn’t like it. @LoganSpong

LoganSpong (46)

@NoelBryan Meh, I don't care about cycles anyways. It's not like I'm goona get banned from Repl.it. I guess he is right.
But, @CSharpIsGud, can we stop fighting?
I get it. It was not a coding language. Yours may be better! But Repl.it is a website for innovation, not hating. Let's stop this.

JordanDixon1 (371)

@LoganSpong If you are still interested, we can upload your project to pypi. I haven't been on for awhile due to power outage, but I'm back sooooo...

LoganSpong (46)

@JordanDixon1 Yeah! I just wrote up README.md

JordanDixon1 (371)

@LoganSpong okay, I may or may not be able to help you so instead, I will give you the info on how to do it using my tutorial also you can fork the project and make sure that you use the version control option on the left when done to make a github git. On top of this replace the information in setup.py with the info you want.