<commit_before>![Aether logo](http://i.imgur.com/uf36eRD.jpg)
======
##Purpose
**aether** aims to make it easy for people to learn and write CoffeeScript and JavaScript by helping them catch and fix bugs, 
letting them see and more easily understand the execution of their program [(like <NAME> commanded!)](http://youtu.be/PUv66718DII?t=17m25s), 
and giving them tips on how they can improve their code. [CodeCombat](http://codecombat.com/) is behind it.

##License
The MIT License (MIT)

Copyright (c) 2013 CodeCombat, Inc. and other contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.<commit_msg>Started 'porting' functionality draft<commit_after>![Aether logo](http://i.imgur.com/uf36eRD.jpg)
======
##Purpose
**aether** aims to make it easy for people to learn and write CoffeeScript and JavaScript by helping them catch and fix bugs, 
letting them see and more easily understand the execution of their program [(like <NAME> commanded!)](http://youtu.be/PUv66718DII?t=17m25s), 
and giving them tips on how they can improve their code. [CodeCombat](http://codecombat.com/) is behind it.

##Functionality

###Compilation
The program should determine whether a given piece of code compiles.
####Successful Compilation
If compilation is successful, aether will compare the generated AST to the last AST generated by the user to avoid unnecessary computation.

####Unsuccessful Compilation
#####Syntax Errors
aether should return a list of syntax errors and warnings coupled with the line and column information.
#####Additional Errors and Error Modification
aether should allow custom errors and modification of errors generated by the parser.

For example, spell checking could be ran at compile time (and configured at runtime), and detailed compile errors thrown.

By giving the user more detailed errors than those generated by the parser, a gentler educational experience can be provided.
#####Syntax manipulation
On certain errors, aether should manipulate the syntax to conform and throw a warning instead. For instance, if the user forgets a "this." while calling a method, it should be corrected, and the user educated about the mistake they made.

###Strict compilation
The code shall be compiled with the "use strict;" option to prevent the user from breaking the code with unsafe actions, such as accessing the global object, as well as catch some runtime errors before they happen.



##License
The MIT License (MIT)

Copyright (c) 2013 CodeCombat, Inc. and other contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
{'fraction_non_alphanumeric': 0.05645699044232052, 'fraction_numerical': 0.006668148477439431, 'mean_word_length': 5.130790190735695, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7599362', 'n_tokens_mistral': 1121, 'n_tokens_neox': 1057, 'n_words': 658}