start = title cast panels+ {ComicStripScript.run(ComicStripScript.tree)} title = sp '---TITLE' sp t:titleString sp {ComicStripScript.tree.title = t;} titleString = s:[^\n]* sp {return s.join("")} cast = sp '---CAST' starring starring = sp c:casts* sp {ComicStripScript.addToCasts(c);} casts = sp 'Starring' space path:string space 'as' space name:string sp {return {name:name, path:path}} panels = sp '---' sp contents:(left/right)+ sp { ComicStripScript.addToPanels(contents);} left = sp name:string sp ':' sp emoticon:emoticon space '<(' caption:caption ')' {return {name:name, caption:caption, emoticon:emoticon, direction:"left"} } right = sp name:string sp ':' sp '(' caption:caption ')>' space emoticon:emoticon {return {name:name, caption:caption, emoticon:emoticon, direction:"right"} } caption = '"' s:[^"]* '"' {return s.join("")} emoticon = s:[^ \n]+ { return s.join("")} sp = [ \n\t]* space = ' ' string = s:[a-zA-Z0-9'"]* {return s.join("")} number = d:[0-9\.-]+ sp {return parseFloat(d.join(""));}

ComicStripScript

ComicStripScript is a javascript-based language which allows you to draw a comic strip with emoticons and speech bubbles.

Syntax
Who : Expression <("Caption")
A : ('-') <("make sure to have a space between Expression and the speech bubble.")

You can refer the emoticon-table for Expression.
Currently 5 expressions are available.
Index | Expression
0 | ('-')
1 | (;゚ロ゚)
2 | (^o^)
3 | (`ε´)
4 | (・_・)
5 | (:_;)

You can add your custom emoticons but using default table is recommended to keep compatibility between characters.
Find out more on the documentation.

Loop, if, random functions will be implemented in the next updates.

DRAW YOUR COMIC STRIP
DRAW YOUR COMIC STRIP
Fork me on GitHub