gundermanc / gunderscript

Gunderscript Programming Language source code and documentation. Deprecated. See gunderscript-2.
GNU Lesser General Public License v3.0
3 stars 0 forks source link

DEPRECATION NOTICE: Please note, Gunderscript is now deprecated due to unfixable design problems. Gunderscript has been superseded by Gunderscript 2, https://github.com/gundermanc/gunderscript-2


Gunderscript Programming Language (C) 2013-2014 Christian Gunderman

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Contact Email: gundermanc@gmail.com

ATTENTION: I am seeking developers to help me complete Gunderscript and test it. If anyone is interested, please email gundermanc@gmail.com.

INTRODUCTION: This repository containsthe code for the Gunderscript scripting language, currently under construction. This project is about 75% complete and is maturing quickly. Currently, I am just trying to get the basic features completed. For more information about the project, see the Features and Completion Status sub- headers below.

PROJECT GOALS: Gunderscript is designed to be a dynamically typed C style embeddable scripting language written in C89 standard portable C. It compiles down to an executable opcode and intended for use as a scripting language in games etc. At the moment, it works cross platform and has been tested on 64 bit Windows, and linux_32 and linux64 for x86. I intend to support ARM as well, but have yet to test it.

BUILDING: Clone the repository. **IMPORTANT: Before building, run the following command to pull c-datastructs library ./submodules.sh Make the commandline application for linux with: make releaseapp Or make the static library only with: make linuxlibrary Other targets can be built with the same commands under MinGW on Windows. To use the command line application, after building, run: ./gunderscript [entrypoint] [scriptfiles] Where entrypoint is the name of the function to start execution, and scriptfiles is one or more space delimited gunderscript files. An example file is included in the repository. You can run this example file with: ./gunderscript main script.gxs

FEATURES, Current:

FEATURES, Future:

COMPLETION STATUS: C-Datastructs and Hashtable -- c-datastructs/ -- 100% VM Stack Frame Stack -- frmstk.c -- 100% Dynamic Buffer -- buffer.c -- 100% Lexer for Compiler -- lexer.c -- 100% Type Aware Stack -- typestk.c -- 100% Virtual Machine Object -- vm.c -- 95% VM Opcode interpreter -- ophandlers.c -- 98% Compiler -- compiler.c -- 75% Straight Code -- parsers.c -- 98% Ifs and Whiles -- parsers.c -- 95% For Loops -- parsers.c -- 0% Gunderscript Object -- gunderscript.c -- 50% Command Line Application -- main.c -- 25% File Manipulation Library -- libsys.c -- 25% String Manipulation Library -- libstr.c -- 100% Datastructures Library -- libdatastructs.c -- 0% (should be quick since they are already implemented..just need interfaces) Gtk+ Library -- libgtk.c -- 0% ..a pipe dream. I'm going to attempt this summer 2014

The planning documents can be found in the docs directory. They are WAY out of date since my efforts are now focused on construction, but they are still a good indicator of the intentions for the project.

CONTRIBUTORS: