Refactor Crystal::Compiler a bit to make it usable without having to necessarily parse command line options
Rename ECR methods to process_string and process_file, and only include lexer
Explicit control of AST nodes inside macros. Must use "id" to get an id, and "stringify" to make a string literal with the node's string representation. No more implicit "id" call.
Use explicit "id" call in macros
Allow escaping curly braces inside a macro
Fixed: compiler prints [] when no options are passed
Another way to do require that allows us to reuse the logic to find files in crystal's path
Fixed --run arguments: use quotes so we can also pass empty arguments or arguments with whitespace
Use {{macro.id}} in samples
Added very basic String#underscore and String#camelcase
Small optimization for when interpoalting a string literal
Fixed: bug on reassigning argument that is passed by value (like struct or union)
Track line/column info in ECR
Added special location pragma to lexer: #<loc:"filename",line,column> to override's a lexer's filename/line/column in the middle of tokenization (useful for ecr and other templates)
Make ECR output location pragmas
Added run special macro call
Added ECR-related macros
Cache compiled macro programs
Updated Changelog for 0.2.0