-
Notifications
You must be signed in to change notification settings - Fork 0
Gunderscript Programming Language source code and documentation. Deprecated. See gunderscript-2.
License
gundermanc/gunderscript
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
*** 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: [email protected] ATTENTION: I am seeking developers to help me complete Gunderscript and test it. If anyone is interested, please email [email protected]. 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: - C style commenting, syntax, function declarations, operators, end statement character, etc. - Standard programming assignment statements: ex: varName = 3; - Multicharacter operators - Ability for library user to specify code entry points. - Variable Types: + Number :: Generic float data type + String :: String and generic byte data type + Boolean :: Boolean data type + Native C Custom :: Used by native developers to create file contexts, etc. - Auto conversion between types - Compiles to system independent bytecode. Runs on built in stack based VM. - Recursion - While loops - Return Statements - Nestable logic - Local variables - Compile Time Error Checking - Compile to byte code - File Interaction Library - Print to Console - Read From Console - Cross platform, tested on Windows (MingGW) and Linux (GCC). - 100% memory leak/error free. Checked with VALGRIND FEATURES, Future: - Apache2 module (maybe some day...not begun yet) - For loops - Object orientation/namespaces (this MIGHT happen) - Arrays (should be in the next week or so) - Datastructures: + Hashtables + Stacks + HashSet + Linked List + StringBuilder - File Manipulation Libraries (in progress) - System call libraries (in progress) - Configuration File Class 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: - Christian Gunderman - Design and Programming Lead - Kai Smith - Math Library and File functions from libsys.c - Austin Kidder - Bugfix
About
Gunderscript Programming Language source code and documentation. Deprecated. See gunderscript-2.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published