Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Allow for DSL's and ability to change the language in some defined areas #138

Closed
PhilAndrew opened this Issue · 5 comments

4 participants

@PhilAndrew

A lot people try to adjust Coffeescript to be their ideal language, for example LiveScript (http://gkz.github.com/LiveScript/) or ParsecCoffeescript (https://github.com/fab13n/parsec-coffee-script) or Coco (https://github.com/satyr/coco).
Also people want to express some problems in their own syntax.

Suggest you allow a way to extent the language in a easy way to allow people to express their problem in their own language which then gets translated to equivalent Coffeescript code. Scala attempts to do this with Scala Macros and DSL support and some other more complex ways, although I'm not suggesting Scala does it in a way that would be useful for Coffeescript.

@erisdev

Related: #120, jashkenas/coffeescript#2598, numerous others. Macros have definitely been suggested before, and that's probably the best way to implement something like this.

@PhilAndrew

You could take this further and have a language plugin registry, like NodeJS's NPM where you can search for sub-languages and select a sub-language and write your code in that language within that language in a block. Then its easy to write code in the sub-language within Coffeescript.

language "mathml"
then some mathml code markup here

Just a vague suggestion.

@gkz

LiveScript and Coco can't be sublangauges as they significantly change semantics in some areas (eg. variable shadowing), and thus need to be separate languages.

@michaelficarra

See #92. Not allowing the language to be dynamically extended was a conscious decision. This way CoffeeScript programs will be syntactically consistent. Sorry for not closing this earlier.

@PhilAndrew

I feel rejected.

@PhilAndrew PhilAndrew referenced this issue in ngn/apl
Closed

Mixin with Coffeescript code #4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.