spade: A simple programming and debugging environment.

[ gpl, ide, interpreter, language, library, program ] [ Propose Tags ]
This version is deprecated.

A simple weakly typed, dynamic, interpreted programming langauge and terminal IDE.


[Skip to Readme]

Modules

  • Common
  • Compiler
    • Compiler.AST
      • Compiler.AST.Common
      • Compiler.AST.Expression
      • Compiler.AST.FunctionDef
      • Compiler.AST.FunctionStatement
      • Parser
        • Compiler.AST.Parser.Common
      • Compiler.AST.Program
    • Compiler.Lexer
      • Compiler.Lexer.Comments
      • Compiler.Lexer.Delimeters
      • Compiler.Lexer.Identifiers
      • Compiler.Lexer.Keywords
      • Compiler.Lexer.Literals
      • Compiler.Lexer.Operators
      • Compiler.Lexer.Tokens
      • Compiler.Lexer.Whitespaces
    • Compiler.Parser
  • Highlighter
    • Highlighter.Highlighter
  • IDE
    • IDE.Common
    • IDE.Help
      • IDE.Help.Contents
      • IDE.Help.Parser
    • IDE.IDE
  • Interpreter
    • Interpreter.Common
    • Interpreter.Initialize
    • Interpreter.Interpreter
    • Lib
      • Interpreter.Lib.Concurrency
      • Interpreter.Lib.Math
      • Interpreter.Lib.Misc
      • Interpreter.Lib.SDL
  • Parser
    • Parser.Lib
    • Parser.Parser
  • Test
    • Test.Common
  • UI
    • UI.Chars
    • Terminal
      • UI.Terminal.IO
    • UI.Widgets
      • UI.Widgets.AutoComplete
      • UI.Widgets.BorderBox
      • UI.Widgets.Common
      • UI.Widgets.Editor
        • UI.Widgets.Editor.Cursor
      • UI.Widgets.Layout
      • UI.Widgets.LogWidget
      • UI.Widgets.MenuContainer
      • UI.Widgets.NullWidget
      • UI.Widgets.TextContainer
      • UI.Widgets.WatchWidget

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.1.0.6, 0.1.0.7, 0.1.0.8, 0.1.0.9 (info)
Change log ChangeLog.md
Dependencies aeson, ansi-terminal, base (>=4.9 && <5), bytestring, constraints, containers, Decimal, exceptions, file-embed, hedgehog, hex-text, hspec, hspec-hedgehog, monad-loops, mtl, ordered-containers, process, random, scientific, sdl2, sdl2-mixer, spade, stm, template-haskell, text, time, unordered-containers, vector, vty, WAVE, Win32 (>=2.10.0.1) [details]
License GPL-3.0-only
Copyright 2022 Sandeep.C.R
Author Sandeep.C.R
Maintainer sandeep@sras.me
Category language, interpreter, ide
Uploaded by sras at 2022-01-02T18:38:30Z
Distributions
Executables spade
Downloads 437 total (21 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2022-01-02 [all 2 reports]

Readme for spade-0.1.0.1

[back to package description]

S.P.A.D.E

S.P.A.D.E stands of Simple Programming And Debugging Environment.

It contains a simple programming language and a built-in Terminal based IDE.

The following is a small spade program that draws a bunch of random circles in red color, in an SDL window.

graphicswindow(400, 400, true)
setcolor(255, 0, 0)
for i = 1 to 100
  circle(random(10, 300), random(10, 300), random(10, 40))
endfor
drawscreen()
waitforkey()

The entire language and function reference is available in the IDE in an easily searchable way. Press F1 or use the help menu to access it.

IDE Demo

A small screen recording of SPADE in action can be seen here

asciicast

Installing

You can download the source package and use stack tool to build and install it.

After extracting the source to a folder, running the following command in the folder should install it.

stack build && stack install

For the time being, this does not seem to build on Windows operating system.

Getting started

The program should be started by providing a file name. For example,

spade /tmp/temp.spd

If the file does not exist, it will be created on save. If it exist then contents will loaded into the editor.

Other than this are no provisions to select or open a file from within the IDE. The user is supposed to only work with a single file at one time.

To interpret a spade program without starting the IDE, you can use the run command.

spade run /tmp/temp.spd

Will execute the program without opening the IDE.

Dependencies

To install depdendencies:

  apt-get install libsdl2-dev
  apt-get install libsdl2-mixer-dev
  apt-get install libtinfo-dev