rendered paste bodysee http://processing.org/reference/index.html for names.
** filtered at tokenization phase
/* ... */ : multiline comment
/** ... */ : doc comment
// : single line comment
** generative syntax
*** Structure
. (dot) : expression part
member_access := "." identifier
super : expression keyword
setup() : function
exit() : function
class : declaration
class_declaration := "class" identifier ... "{" class_member_list "}"
void : type_name
size() : function
false : expression keyword
noLoop() : function
this : expression keyword
true : expression keyword
new : expression part
new_object := "new" identifier "(" function_args ")"
comma : expression part
delay() : function
{} (curly braces) : expression part
draw() : function
loop() : function
implements : declaration part
implementation_indication := "implements" identifier
redraw() : function
; (semicolon) : expression part
[] (array access) : expression part
array_access := "[" expression "]"
extends : declaration part
derivation_indication := "extends" identifier
null : expression keyword
() (parenthesis) : expression part
return : expression part
return_statement := "return" expression
= (assign) : expression part
assignment := variable "=" expression
*** Environment
function -> frameRate(), noCursor(), cursor()
static variable -> frameRate, screen, width, height, frameCount
*** Data
type name -> color, char, float, int, boolean, byte, String, Array, Object
function -> (everything else)
*** Control
< (less than) : expression part
less_than_expr := expression "<" expression
<= (less than or equal to) : expression part
less_eq_expr := expression "<=" expression
> (greater than) : expression part
greater_than_expr := expression ">" expression
>= (greater than or equal to) : expression part
greater_eq_expr := expression ">=" expression
== (equality) : expression part
eq_expr := expression "==" expression
!= (inequality) : expression part
eq_expr := expression "!=" expression
for : expression part
for_statement := "for" "(" for_initializers ";" expression ";" for_continuations ")" statement_block
while : expression part
while_statement := "while" "(" expression ")" statement_block
break : statement
break_statement := "break"
switch : statement
switch_statement := "switch" "(" expression ")" "{" switch_case_list "}"
case : expression part
switch_case :=
"case" constant ":" statement_list
| "default" ":" statement_list // ends with break_statement
// must end with break_statement
(default : expression part)
else : expression part
if : statement
if_statement := "if" "(" expression ")"
|| (logical or) : expression
logical_or_expression := expression "||" expression
&& (logical and) : expression
logical_and_expression := expression "&&" expression
! (logical not) : expression
logical_not_expression := "!" expression
*** Shape
function -> everything
*** Input
static variable -> mouseButton, mousePressed, mouseX, mouseY, pmouseX, pmouseY
keyCode, key, keyPressed
function -> everything else
*** Output, Transform, Color
function -> everything
*** Image
PImage : type name
pixels : static variable (array)
function -> everything else
*** Typography
PFont : type name
function -> everything else
*** Math
+ (plus) : expression part
add_expression := expression "+" expression
- (minus) : expression part / expression part
subtract_expression := expression "-" expression
numeric_negation_expression := "-" expression
* (multiply) : expression part
multiply_expression := expression "*" expression
/ (divide) : expression part
divide_expression := expression "/" expression
% (modulo) : expression part
modulo_expression := expression "%" expression
+= (add assign) : statement
add_assignment := expression "+=" expression
-= (subtract assign) : statement
subtract_assignment := expression "-=" expression
++ (increment) : statement
increment_statement := expression "++" // FIXME: no pre-positioned increment?
-- (decrement) : statement
decrement_statement := expression "--" // FIXME: no pre-positioned increment?
static variable -> HALF_PI, TWO_PI, PI
function -> everything else