Coder Social home page Coder Social logo

aadhithya / rajinipp Goto Github PK

View Code? Open in Web Editor NEW
174.0 6.0 18.0 243 KB

Programming language based on Iconic dialogues of Rajinikanth. ๐Ÿค˜๐Ÿฝ

License: MIT License

Python 100.00%
esoteric-interpreter esoteric-language programming-language python rply interpreter

rajinipp's Introduction

rajini++

banner_thin

GitHub Workflow Status GitHub issues GitHub release (latest SemVer) GitHub Release Date PyPI - Python Version PyPI - License GitHub commits since latest release (by SemVer)

Twitter Follow GitHub followers

rajini++ (rajiniPP) the programming language is a tribute to the one and only superstar and based on the iconic dialogues of Rajinikanth. This is a hobby project and is not meant to be used for serious software development.

Superstar Rajinikanth

Installation

  • rajinipp requires python >= 3.8. Install python from here.

  • Install the rajini++ interpreter using the following command: pip install rajinipp

  • test installation: rajinipp version

Getting started

rajini++ is not a feature rich language and is not intended for serious use. It is rather a hobby project and a tribute to the one and only superstar.

Run programs

hello_world.rpp:

LAKSHMI START
DOT "Hello, World!";
MAGIZHCHI
  • Run the hello_world.rpp program:

    rajinipp run examples/hello_world.rpp

will result in the following output:

hello world output

Resources

  • Learn the rajini++ language:
  • The rajini++ Language Spec: The rajini++ commands and its equivalent in python3 can be found at the rajiniPP Language Spec wiki.
  • The rajinipp Interpreter Documentation: The documentation for the rajinipp interpreter can be found here.

Acknowledgements

Roadmap

rajini++ Features

  • Math Ops
    • SUM
    • SUB
    • MUL
    • DIV
    • MOD
  • Unary Ops
  • print multiple objects with the same statement.
  • variable declaration
  • variable access
  • variable manipulation
  • bool data type
  • float datatype
  • logical ops
  • if statement
  • if-else statement
  • for loop
  • while loop
  • functions
  • functions with return
  • functions with arguments
  • Execute python code in rajini++ scripts

rajinipp package

  • rajinipp python runner:
    • rajinipp.api.require: load rajini++ code into python program.
    • rajinipp.runner.RppRunner.exec: execute rajini++ programs in python loaded as string.
    • rajinipp.runner.RppRunner.eval:
      • eval rajini++ statement in python scripts [limited support].
      • support flow control statements.
      • eval function calls from loaded rajini++ code and return output.
  • rajinipp shell to run rajini++ commands from the terminal.
    • limited support using rajinipp.runner.RppRunner.eval.
    • complete support to all rajini++ features.

General

  • Add tests.
  • semantic releases.

rajinipp's People

Contributors

aadhithya avatar actions-user avatar dependabot[bot] avatar rajaniraiyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rajinipp's Issues

set up github actions

Github actions to do the following:

  • Code checks: Linting, formatting
  • semantic versioning on the master branch
  • tests: unit tests
  • tag, build and publish to registry: manual step

feat: embed python code in rajini++ programs

  • Since rajini++ is not feature rich, we want to be able to embed python code in rajini++ scripts for functions not supported by rajini++

Tasks

  • allow execution of python statements in rajini++ programs.

refactor __main__ and api enhancements

  • currently code in rajinipp.__main__.run() is duplicated in rajinipp.api.exec().
  • rajinipp.api.exec() can only execute complete rajini++ programs.

Tasks

  • reduce code duplication and improve abstraction
  • support executing single statements in rajinipp.api.exec()

runner: support importing rpp files.

  • we want to be able import rpp files and access methods/variables from the imported file using the RppRunner.eval() function.

Tasks

  • allow importing rpp files in python scripts

fix examples

  • rajini++ examples use old syntax. This causes the tests and eventually the pipelines to fail.
  • [ ] update the example code to new syntax

Bug while Running the RPP programs

Bug Report

Checklist

  • I am running the latest version of rajinipp.
  • I have searched the issues(open / closed) for this issue.
  • I have checked the project wiki.
  • This problem is reproducible.
  • This is not a feature request.

Current Behaviour

(rajini) C:\Users\ABIPRAVI\rajini>rajinipp version
Traceback (most recent call last):
  File "C:\Users\ABIPRAVI\AppData\Local\Programs\Python\Python310-32\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\ABIPRAVI\AppData\Local\Programs\Python\Python310-32\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\ABIPRAVI\Envs\rajini\Scripts\rajinipp.exe\__main__.py", line 4, in <module>
  File "C:\Users\ABIPRAVI\Envs\rajini\lib\site-packages\rajinipp\__init__.py", line 2, in <module>
    from . import ast, lexer, parser, runner, utils
  File "C:\Users\ABIPRAVI\Envs\rajini\lib\site-packages\rajinipp\runner.py", line 16, in <module>
    from .utils import read_yml
  File "C:\Users\ABIPRAVI\Envs\rajini\lib\site-packages\rajinipp\utils.py", line 1, in <module>
    import yaml
ModuleNotFoundError: No module named 'yaml'

Expected Behaviour

Version data

Steps to Reproduce

  1. Make sure to install the PyYAML automatically in the requirements
pip install PyYAML

Stack Trace / Screenshot

image

General Info

  • rajinipp version:latest
  • python version:10
  • os platform:Windows

Annoying Warning

Bug Report

Checklist

  • I am running the latest version of rajinipp.
  • I have searched the issues(open / closed) for this issue.
  • I have checked the project wiki.
  • This problem is reproducible.
  • This is not a feature request.

Current Behaviour

| WARNING | rajinipp.runner:init:35 - LineParser supports only a subset of rajini++ features.
I'm not sure why this warning pops up even for a fresh install.

Expected Behaviour

Warning could be avoided

Steps to Reproduce

Just normal installation and running it

Stack Trace / Screenshot

image

General Info

  • rajinipp version: v0.3.1
  • python version: v3.9.2
  • os platform: Linux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.