1
0
Fork
You've already forked Iguana
0
No description
  • Python 81.6%
  • Modula-3 17%
  • Shell 1.4%
Find a file
2022年12月31日 17:15:53 +01:00
__pycache__ version 0.1 2022年12月27日 18:04:13 +01:00
overlays version 0.1 2022年12月27日 17:47:19 +01:00
tests removed usage of outdated feature '<-' in test2 2022年12月31日 17:15:53 +01:00
config.json 'final' helppage fix 2022年12月27日 18:45:27 +01:00
help.txt help 2022年12月27日 18:42:40 +01:00
iguanautils.py version 0.1 2022年12月27日 17:47:19 +01:00
install.sh 'final' helppage fix 2022年12月27日 18:45:27 +01:00
LICENSE init 2022年12月18日 20:09:50 +01:00
logo-simple.png logos 2022年12月31日 16:55:34 +01:00
logo.png logos 2022年12月31日 16:55:34 +01:00
main.py version 0.1 2022年12月27日 18:04:13 +01:00
README.md more readme minor stuff uwu 2022年12月31日 17:13:03 +01:00

Iguana Logo GNU GPLv3 or later

Iguana - Enhanced Reptile Language

A python overlay manager to increase coding elegance. This is NOT a programming language. It also adds a couple of aesthetic featues.

ERP doesn't mean anything else >:(

Table of contents

Installation

  • Requires python 3.8 or highier
  • Run sudo ./install.sh that will create the proper file in /usr/bin
  • You're all done!

Usage

  • To run a script, type iguana <file.ig> [flags]
  • If you run it without any input file, it will boot an interactive shell
  • Run iguana -h for further information

How to code in Iguana

This language is fully python compatible. This means that you can run python scripts with ERP However, it has some more features of its own.

Syntax

It's generally the python one, except:

Overlays

The main feature of Iguana, being a python "enhancer", is to add stuff, such stuff is referred to as "overlay".

An overlay is a function which takes in input the full code (plus params) and outputs it with some sort of modification. In /overlays you can see a bunch of examples.

Ideally, users would create overlays when they need them, then share them to be included in the default "library".

To apply an overlay, use overlay filename, the order in which you call overlays is the one they'll be applied.

Overlay are not to be thought as fancier modules, but as a developing tool that will hopefully save you some time.

Pipes

functions can be chained with bash stile pipe (|) examples:

"Hello, world!" | print
sum(my_list) | factorial | print

This tries to remove situations like

display(wrapper(get_account_details(safe_input("Username:")), **params))

However, usage as arguments or in statements like assignation and flow control won't work:

print("my string" | some_function) # NO!
my_var = input("number: ") | int # NO!
if my_thing | some_function: ... # NO!

in those situations, you can use this other pipe (::), which will tho disallow spaces outside strings/function arguments:

my_var = input("number: ")::int
if my_thing::some_function
# but
sum (my_list):: whatever # NO!
# ^ ^
# illegal spaces

Why you ask? I'm too lazy to elegantly solve this, if you care do it and push, I'll happily merge UwU.

Contributing

Feel free to share suggestions or implement and push them yourself! I'll happily merge stuff, although I can't guarantee immediate response.

Also, the code is poorly commented, so docs in form of comments and/or wiki pages are very appricieted

Iguana Logo Again