Code Monkey home page Code Monkey logo

vpp-source's Introduction

V++ Interpreter (vppi)

Introduction

V++ is a small static-typed interpreted language made for running small programs in a console window.

This repository contains vppsetup, vpps, vppi, vpppm and interpreter extensions. In order to install the V++ Runtime Environment you must check releases. For documentation check the V++ wiki.

In case you want to create V++ scripts and need syntax highlighting, you can install the official V++ VSCode extension

WARNING

Indents must be used with tabs, not spaces. If you use space indents, the interpreter will not execute the code.

Important feautures of V++

  • Security
  • Customizabilty
  • Easy to setup and create a new project

Running a script on V++

!! SCRIPTS MUST HAVE A .vpp EXTENSION IN ORDER FOR THE INTERPRETER TO RUN THEM !!

In order to run a script in V++ you can:

  • drag the script into vppi or the V++ shortcut on your desktop.
  • run V++ in cmd (Windows Command Prompt) with the first parameter being the script that you want to run (vppi test.vpp)

Sample code


function test ()
	command (0x0006,null)
	exit
end function

function main ()
	command (0x0001,"I am a title!",null)
	command (0x0008,"I am a message box!",null)
	test ()
end function

How does it work

Loading a script

When you load a script a new interpreter instance that runs in parallel with the other instances. When a script is loaded by the user/another app via a command line call, there is created a master interpreter that can log data and is the main script. When a script is loaded by main script/master interpreter via the @Include keyword there is created a slave interpreter which works the same as a master interpreter but can be ordered to execute a function or get/set a value.

After the loading of the script the interpreter (either master or slave) will enter the setup phase, where setup keywords like @EntryPoint, @Include and function. The setup phase defines functions and sets things up before the runtime phase. After the setup finishes, the interpreter enters in the runtime phase, where the script is executed.

History and important events

2017

The first V++ interpreter was made in 2017, but it was very unstable and didn't have an official name. The syntax was strange. (printline Hello world!).

2018

Nothing interesting happened, just decided to remake V++ from scratch, which resulted in today's V++.

2019

Made a lot of progress, the syntax of V++ in 2019 is very similar to the one in 1.0.0.0.

2020

Released V++ 1.0.0.0 on 19 Nov 2020.

2021

First prerelease of V++. Dropped support for V++ 1.0.0.0.

Bugs, feauture requests and discussions

To report bugs or request new feautures go to the Issues tab or click here.

For discussions/requesting a library/dependecy for the V++ package manager go to the discussions tab or click here.

Donation

For donating click this link: https://link-to.net/337571/vppdonation. It is free, it does not cost you anything and it helps me develop V++ more.

vpp-source's People

Contributors

vmgp avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vpp-source's Issues

V++ for Linux!

Is your feature request related to a problem? Please describe.
When trying to install V++ 1.1.0.0-pre2 on Raspbian OS, the installer says "V++ is incopatible with your OS."

Describe the solution you would like
I would like V++ to be ported to Linux and be compatible, or at least so it can be fully-compatible with Mono.

Additional context
image

WebRequests, variable operations, lists, enums and arrays

Is your feature request related to a problem? Please describe.
No.

Describe the solution you would like
I would like WebRequests, variable operations, lists, enums and arrays to be added to V++. These feautures would be really helpful to me and other developers working with V++.

Additional context
No.

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.