A DSL for your API
Presented by Gregory M. Sohl
@gregsohl
What’s a DSL?
A language that is specific / custom - to meet your application’s needs
Why would I add scripting to my app?
Automation
Add agility to your applications
Testing
Who Scripts??
Excel
Install Tools
Salesforce.com
Others??
Have you scripted before?
CompSci 201
Dragon book
That’s hard!
Handwritten parsers
CompSci Theory - There’s dragons in there!
Generated parsers / lexers
Tools have improved
Compilers and Interpreters
What’s the difference?
What should I build?
Today’s App
TurtleGraphics.NET
You said there were new tools, right?
ANTLR4
Who uses it?
Salesforce.com - for Apex
Hibernate
Twitter’s search query language
Apache Cassandra
Apache Groovy language
Team Foundation Server - Source search
The ANTLR (R)evolution
Terence Parr - CompSci prof at University of San Francisco
Building language tools since 1989
The ANTLR4 Advantage
Simplified grammar - readability
Recursion issues nearly obliviated
Automatically rewrites left-recursive rules
Generates Parse Trees and Tree Walkers
Eliminates need for but still allows code snippets as actions in the grammar
file.
Generates Listener code - event driven like a SAX parser for XML
Generates Visitor code, where you control the walking of the Parse Tree
Great documentation
BSD License
Let’s build a
language

A DSL for Your API