Skip to content
This repository has been archived by the owner on Mar 12, 2021. It is now read-only.
/ ego Public archive

Unusable simple interpreted toy language on Node.js.

License

Notifications You must be signed in to change notification settings

t532-old/ego

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ego

A programming language for no purpose.

Aims to:

  • Have a selected, unextensible set of types:
    • Integer (of any precision): TypeID int, underlying type bigint
    • Float (64bit double-precision): TypeID float, underlying type number
    • String: TypeID string, underlying type string
    • Boolean: TypeID bool, underlying type boolean
    • Null: TypeID null, underlying type null
    • Hash Table: TypeID scope, underlying type Scope
    • List: TypeID list, underlying type Scope
    • Executable: TypeID exec, underlying type Executable
    • Callable: TypeID */callable, underlying type AsyncFunction
  • Have a simplistic syntax (Only identifiers and function calls; no literals, keywords or anything else)
  • Implement runtime "macro"s, which allows developers to arrange execution order and time

It's a script language and is expected to run very slow.

Spec

TODO

Standard Lib

❓ Planning; ⚠️ Working On It; ✅ Done

  • ✅ Constants - TRUE, FALSE and NULL
  • ✅ Preload - Functions for importing other libs
  • ✅ Scope - Hash table
  • ⚠️ Util - Miscalleneous
  • ✅ Var - Declare, set and compare variables
  • ⚠️ Num - Basic rational calculation
  • ❓ Expr - Operations on expressions, for building runtime "macro"s
  • ❓ Flow - Control the program flow
  • ❓ Iter - Tools for iterables, e.g. map, reduce, filter, etc
  • ❓ Async - Async utility
  • ❓ Math - Identical to JavaScript Math utility
  • ⚠️ Str - String tools
  • ❓ Node - Interact with Node.js

About

Unusable simple interpreted toy language on Node.js.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published