see 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_expression := "." identifier
super : expression keyword
super_expression := "super"
setup() : function
exit() : function
class : declaration
class_declaration := "class" identifier ... "{" class_member_list "}"
void : type_name
size() : function
false : expression keyword
false_expression := "false"
noLoop() : function
this : expression keyword
this_expression := "this"
true : expression keyword
true_expression := "true"
new : expression part
new_expression := "new" function_call_expression
comma : expression part
delay() : function
{} (curly braces) : expression part
draw() : function
loop() : function
implements : declaration part
implementation_indications := "implements" identifier_list_comma
redraw() : function
; (semicolon) : expression part
[] (array access) : expression part
array_access_expression := "[" expression "]"
extends : declaration part
derivation_indication := "extends" identifier
null : expression keyword
null_expression := "null"
() (parenthesis) : expression part
return : statement part
return_statement := "return" expression
= (assign) : statement part
assignment_statement := variable "=" expression
*** Environment
function -> frameRate(), noCursor(), cursor()
static variable -> online, focused, 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_expression := expression "<" expression
<= (less than or equal to) : expression part
less_eq_expression := expression "<=" expression
> (greater than) : expression part
greater_than_expression := expression ">" expression
>= (greater than or equal to) : expression part
greater_eq_expression := expression ">=" expression
== (equality) : expression part
eq_expression := expression "==" expression
!= (inequality) : expression part
eq_expression := expression "!=" expression
for : statement part
for_statement := "for" "(" for_initializers ";" expression ";" for_continuations ")" statement_block
while : statement part
while_statement := "while" "(" expression ")" statement_block
?: (conditional) : expression part
conditional_expression := expression "?" expression ":" expression
break : statement
break_statement := "break"
switch : statement part
switch_statement := "switch" "(" expression ")" "{" switch_case_list "}"
case : statement part
switch_case := "case" constant ":" statement_list
// must end with break_statement
default : statement part
switch_default := "default" ":" statement_list
// must end with break_statement
else : statement part
else_block := "else" statement_block
if : statement part
if_statement := "if" "(" expression ")" statement_block opt_else_block
|| (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
static variable -> PrintWriter
function -> everything else
*** Transform, Color
function -> everything
*** Image
PImage : type name
pixels : static variable (array)
function -> everything else
*** Rendering
PGraphics : type name
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_statement := expression "+=" expression
-= (subtract assign) : statement
subtract_assignment_statement := expression "-=" expression
++ (increment) : statement
increment_statement := expression "++" // FIXME: no pre-positioned increment?
-- (decrement) : statement
decrement_statement := expression "--" // FIXME: no pre-positioned increment?
& (bitwise and) : expression part
bitwise_and_expression := expression "&" expression
| (bitwise or) : expression part
bitwise_or_expression := expression "|" expression
<< (left shift) : expression part
left_shift_expression := expression "<<" expression
>> (right shift) : expression part
right_shift_expression := expression ">>" expression
static variable -> HALF_PI, TWO_PI, PI
function -> everything else