Giter Site home page Giter Site logo

argonlang / argon Goto Github PK

View Code? Open in Web Editor NEW
38.0 4.0 0.0 3.21 MB

Argon programming language

Home Page: https://www.arlang.io

License: Apache License 2.0

CMake 0.77% C++ 99.12% C 0.11%
argon language programming-language scripting-language cpp interpreter argonlang

argon's Introduction

https://www.apache.org/licenses/LICENSE-2.0 Maintainability Rating Bugs Lines of Code

The Argon Programming Language

This is the main repository for Argon language. It contains interpreter and builtins libraries.

What's Argon

Argon is an interpreted multi-paradigm programming language. Its syntax is influenced by many modern languages and aims to be elegant, clean and simple to use.

import "enum"
import "io"

let NOBLE_GAS = ["Helium", "Neon", "Argon", "Krypton", "Xenon"]

var group_by_name_length = enum.group_by(len)

NOBLE_GAS
    |> group_by_name_length
    |> io.print

/* {6: [Helium], 4: [Neon], 5: [Argon, Xenon], 7: [Krypton]} */

๐Ÿš€ Quick start

The wiki is under development, you can view the current version here: wiki

If you are looking for examples, you can find them here: examples

A good way to start could also be to take a look at Argon's built-in modules here

๐Ÿ› ๏ธ Installing from source

Platform / Architecture x86 x86_64 ARM Apple silicon
Windows (7, 8, 10, ...) โœ“ โœ“ ??? ???
Linux โœ“ โœ“ โœ“ ???
Mac OS NA โœ“ NA โœ“

The Argon build system uses a simple cmake file to build the interpreter.

Building on Unix-like os

  1. Make sure you have installed the following dependences:
  • cmake >= 3.7
  • g++ or clang++
  • GNU make
  • git
  1. Clone the sources with git:
git clone https://github.com/ArgonLang/Argon
cd argon
  1. Build:
cmake .
make

When completed, Argon and related libraries will placed in bin/ directory.

N.B: At present there are no installation steps.

Building on Windows

Building Argon on Windows environment requires Visual Studio, or the Microsoft Build Tools. You can download and install the tool of your choice from the Microsoft Visual Studio page.

  1. Install Visual Studio / Microsoft Build Tools.
  2. From Windows start menu, open Developer Command Prompt and go to the Argon root folder:
    cd %path_of_Argon_folder%
  1. Execute build.bat to start compilation.

If you preferred to install Visual Studio, you can import the CMake project directly into visual studio. To do this, open Visual Studio and press continue without code in the welcome window that opens before the IDE. From IDE menu, select File > Open > CMake... and open the CMakeLists.txt file, ignore the CMake Overview Page that might open and from the top bar select Argon.exe as start up item, select the configuration of interest (Debug / Release) and start the compilation through the play button(or press F5 key).

โš ๏ธ Tested with Microsoft Visual Studio 2019.

โ€ผ๏ธ Notes

Argon is under active development, so many features are not yet active or available, a list (certainly not exhaustive) of the missing features is the following:

  • No support for interactive mode.
  • Lack of most of the built-in functionality for basic DataType (e.g. bytes::find, bytestream::split, ...).
  • Garbage collector not enabled (currently the memory is managed only by the ARC).
  • Limited I/O support.
  • No multithreading support.
  • No debugging support.
  • Currently, all test cases are disabled and out of date.

๐Ÿค Contributing

There is currently no guide available to contribute to the development, but if you are interested you can contribute in several ways:

  • Argon core (C++)
  • Argon builtins libraries (C++ / Argon)
  • Writing documentation

License

Argon is primarily distributed under the terms of the Apache License (Version 2.0).

See LICENSE

argon's People

Contributors

jacopodl 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

Watchers

 avatar  avatar  avatar  avatar

argon's Issues

Addition of floating number formatting support

๐Ÿž Problem
Currently, Argon implementation does not support using floating numbers to format a string.

๐ŸŽฏ Goal
Argon must support the use of floating numbers to format a string in the same way that C printf does.

At present the implementation of StringFormatter for floating numbers (StringFormatter::FormatDecimal) is a stub function that leads to a crash when called.

Version output in command line

according to

โฏ ./Argon --help
usage: ./Argon [option] [-c cmd | file] [arg] ...

Options and arguments:
-c cmd         : program string
-h, --help     : print this help message and exit
-i             : start interactive mode after running script
--nogc         : disable garbage collector
-q             : don't print version messages on interactive startup
-u             : force the stdout stream to be unbuffered
-v, --version  : print Argon version and exit

the -v option should output the version number, but doesn't output anything.

running ./Argon without any option I get the version number and an unexpected interactive prompt.

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.