Skip to content

AnEmortalKid/dogescript

 
 

Repository files navigation

dogescript

dogescript

NPM version Build Status Dependency Status devDependency Status

This is an implementation of the best new compile-to-JS language, dogescript. Wow.

And yes, I am very aware I went about a very, er, non-conventional, way of parsing a language, and is probably riddled with bugs and edge-cases. However, this is dogescript, so anything goes!

    wow
         such dogescript
     very compiled
                  next-generation
       npm wow

Installation

npm install -g dogescript

Usage

Command Line

dogescript without a file launches a REPL.

dogescript location/to/dogescript.djs pipes the result to stdout. Use a command like dogescript dogescript.djs > compiled.js to save to a file.

Options:

  • --beautify - Runs the code through a beautifier.
  • --true-doge - Implements "true doge" mode, which splits lines by 3 spaces, instead of by newlines. This stays behind a flag until the spacing it exports is identical to non-true-doge mode. Deprecated in 2.4.0, to be removed in 3.0.0
  • --run - Runs the dogescript code

Javascript

dogescript(file, beauty, trueDoge)

  • file - A string of Dogescript.
  • beauty - A boolean, set to true if you want the output to be ran through a beautifier.
  • trueDoge - A boolean, set to true if you want to enable true-doge mode. Deprecated in 2.4.0, to be removed in 3.0.0

REPL Commands

  • .plz-load [path_to_doge]: loads dogescript code in the given file and adds it to the REPL environment. For this example, iota is a function that produces a series from 0 to n, ie: iota 5 => [0,1,2,3,4], and is defined in repl-test/iota.djs.
  • .plz-exit: exits the REPL environment and terminates the process. An alternative to .exit.

iota.djs

such iota much n
  very series is Array dose apply with null {length:n}&
  dose map with Number.call Number
wow series

Loaded and execute

DOGE> .plz-load repl-test/iota.djs
DOGE> undefined
DOGE> plz iota with 5
[ 0, 1, 2, 3, 4 ]
DOGE>

Language documentation

Projects using dogescript

Utilities

Syntax highlighting

Build plugins

Contributors

Dogescript was originally created by Zach Bruggeman, and is now maintained by the @dogescript/core team. Thank you to every contributor who's helped along the way!

$ git log --format='%aN' | sort -u
Alistair Mersereau
Bart van der Schoor
Bartvds
Ben Atkin
Cassidy Bridges
Chad Engler
Chris Wheatley
Christina Liu
Daniel Lockhart
Elan Shanker
Erik Erwitt
Jacob Groundwater
Jan Monterrubio (AnEmortalKid)
Joe Dailey
Johann Philipp Strathausen
Joseph Dailey
Mario Nachbaur
Nicholas Scheurich
Patrick Piemonte
Peter Carnesciali
Ray Toal
Zach Bruggeman
achesak
alehander42
alistair.mersereau
dogejs
jasdev
noformnocontent

Community

Join us at dogescript.slack.com. Since it is slack, you'll need an invite to the channel. Visit this site to get invited. The invite site is built with slack-invite-automation and is deployed to heroku. Since we are on the free tier, dyno's take a bit to load so give it at least 30 seconds to load the first time.

About

wow so syntax very doge much future

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 87.2%
  • Dogescript 11.1%
  • HTML 1.2%
  • Other 0.5%