About CodeCombat
CodeCombat is a multiplayer programming game for learning to code. It was created to make learning fun, even addictive, through fast, extensive practice rather than slow, intensive lessons. CodeCombat's mission is to teach people to code. It is completely open source and hundreds of CodeCombat Archmages and contributors on CodeCombat's GitHub page are helping to build the best programming game ever.
The Challenge
Right now, CodeCombat can help you learn JavaScript, but that's just the start. In order to support other languages like Python, Ruby, or Haskell, we need more in-browser parsers!
Choose your favorite language and submit your own parser, or adapt an existing one, to the Mozilla abstract syntax tree format. You'll also need to figure out any basic library standins. After that, our Aether transpiler will take care of the rest!
Submissions should be in the form of open source JavaScript/CoffeeScript libraries that have APIs similar to Acorn or Esprima.
This is a great technical challenge for anyone familiar with compilers and a couple languages.
Related links:
https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
http://marijnhaverbeke.nl/acorn/
https://github.com/michaelficarra/CoffeeScriptRedux
Expected results: Players can play all CodeCombat levels in the new language.
Knowledge prerequisite: Basic understanding of compilers. Familiarity with the language you're trying to add. CoffeeScript or JavaScript will help, but they're easy to pick up.
Difficulty: Harder the further away from JavaScript the language is. Something like TypeScript or Roy would be easy, whereas languages like Python or Ruby would be hard, and some static languages like C++ would be very hard.
Eligibility
Anyone 18 or older who is not related to someone employed by CodeCombat can submit an entry, including individuals, teams, and organizations. We'll ship prizes anywhere.
Requirements
Submit an open-source JavaScript or CoffeeScript library with a similar API to Acorn or Esprima. MIT license and GitHub preferred. Must run in the browser, but it's nice to be able to run in node as well.
Prizes
$3,250 in prizes
Best Working Parser
MacBook Air
(Estimated retail value plus shipping and tax: $1300)
Honorable Mention Working Parsers
(3)
iPad Air
(Estimated retail value plus shipping and tax: $650)
Devpost Achievements
Submitting to this hackathon could earn you:
How to enter
Get in touch with us, either on the challenge discussion forum or through GitHub, and tell us about what language you want to write a parser for and how you want to do it. We'll be happy to help strategize!
Judges

Nick Winter
Cofounder of CodeCombat

Scott Erickson
Cofounder of CodeCombat

George Saines
Cofounder of CodeCombat
Judging Criteria
-
Correctness and completeness of parser
The more target language features properly supported, the better. Some languages are not feasible to fully translate to JavaScript, and their standard libraries are often larger than what JavaScript can match, but all the basics should be usable. -
Ease-of-use of parser as an open-source project
Parsers that include documentation, npm and bower packages, and few dependencies make better open source projects and are easier to integrate. -
Preservation of original source range info in AST nodes
Each AST node should have a "range" property indicating the start and end (either offsets or lines+columns) of its corresponding original source code, like Esprima does. -
Parser speed and code quality
The faster, clearer, and easier to maintain the parser's code is, the better. Also, being able to handle syntax errors like Acorn's loose mode is a big plus. -
Popularity of the programming language
The more popular and useful the programming language, the better the submission. Obsolete or esoteric programming languages are not eligible for prizes.
Tell your friends
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.