#############################################
# operators
#############################################

# -----------------------
# relational
# -----------------------

>	greaterthan
<	lessthan
>=	greaterthanorequalto
<=	lessthanorequalto
==	equality
!=	inequality

# -----------------------
# mathematical
# -----------------------

+	addition
-	minus
*	multiply
/	divide
++	increment
--	decrement
%	modulo
+=	addassign
-=	subtractassign

# -----------------------
# stucture
# -----------------------

;	semicolon
=	assign
()	parentheses
,	comma
//	comment
.	dot
/*	multilinecomment
{}	curlybraces
[]	arrayaccess

# -----------------------
# logical
# -----------------------

&&	logicalAND
||	logicalOR
!	logicalNOT

# -----------------------
# bitwise
# -----------------------

&	bitwiseAND
&=	bitwiseANDandassign
|	bitwiseOR
|=	bitwiseORandassign
^	bitwiseXOR
~	bitwiseonescomplement
<<	bitwisebitshiftleft
>>	bitwisebitshiftright

#############################################
# datatypes (KEYWORD1)
#############################################

# -----------------------
# primitive
# -----------------------

boolean	KEYWORD1	boolean_
byte	KEYWORD1	byte_
char	KEYWORD1	char_
float	KEYWORD1	float_
int	KEYWORD1	int_
double	KEYWORD1	double_
long	KEYWORD1	long_
short	KEYWORD1
unsigned	KEYWORD1
const	KEYWORD1
String	KEYWORD1	String


# -----------------------
# iteration
# -----------------------

while	KEYWORD1	while_
for	KEYWORD1	for_
do	KEYWORD1
continue	KEYWORD1

# -----------------------
# conditionals
# -----------------------

if	KEYWORD1	if_
else	KEYWORD1	else_
switch	KEYWORD2	switch_
case	KEYWORD1	case_
default	KEYWORD1	default_

# -----------------------
# misc
# -----------------------

void	KEYWORD1	void
return	KEYWORD1	return
break	KEYWORD1	break
static	KEYWORD1	
volatile	KEYWORD1
include	KEYWORD1	include
define	KEYWORD1	define

#############################################
# methods and functions (KEYWORD2)
#############################################

# -----------------------
# mathematical
# -----------------------

abs	KEYWORD2	abs_
sq	KEYWORD2	sq_
sqrt	KEYWORD2	sqrt_
pow	KEYWORD2	pow_
max	KEYWORD2	max_
min	KEYWORD2	min_
ceil	KEYWORD2	ceil_
floor	KEYWORD2	floor_
round	KEYWORD2	round_
constrain	KEYWORD2	constrain_
map	KEYWORD2	map_

sin	KEYWORD2	sin_
cos	KEYWORD2	cos_
tan	KEYWORD2	tan_
atan2	KEYWORD2	atan2_
radians	KEYWORD2	radians_
degrees	KEYWORD2	degrees_

random	KEYWORD2	random_
randomSeed	KEYWORD2	randomSeed_

# -----------------------
# String
# -----------------------

charAt	KEYWORD2	String_charAt_
setCharAt	KEYWORD2	String_setCharAt_
append	KEYWORD2	String_append_
equals	KEYWORD2	String_equals_
contains	KEYWORD2	String_contains_
getBytes	KEYWORD2	String_getBytes_
indexOf	KEYWORD2	String_indexOf_
length	KEYWORD2	String_length_
capacity	KEYWORD2	String_capacity_
startsWith	KEYWORD2	String_startsWith_
substring	KEYWORD2	String_substring_
valueOf	KEYWORD2	valueOf_
toCharArray	KEYWORD2	String_toCharArray_
trim	KEYWORD2	String_trim_
endsWith	KEYWORD2	String_endsWith_
replace	KEYWORD2	String_replace_
toLowerCase	KEYWORD2	String_toLowerCase_
toUpperCase	KEYWORD2	String_toUpperCase_

# -----------------------
# bit & byte manipulation
# -----------------------

bit	KEYWORD2	bit_
bitRead	KEYWORD2	bitRead_
bitWrite	KEYWORD2	bitWrite_
lowByte	KEYWORD2	lowByte_
highByte	KEYWORD2	highByte_
makeWord	KEYWORD2	makeWord_

setBits	KEYWORD2
clearBits	KEYWORD2
setBit	KEYWORD2
clearBit	KEYWORD2
bitSet	KEYWORD2
bitClear	KEYWORD2
bitsSet	KEYWORD2
bitsClear	KEYWORD2


# -----------------------
# standard memory manage
# -----------------------

sizeof	KEYWORD2
malloc	KEYWORD2

# -----------------------
# environment
# -----------------------
delay	KEYWORD2	delay_
delayMicroseconds	KEYWORD2	delayMicroseconds_

# -----------------------
# analog i/o
# -----------------------

analogRead	KEYWORD2	analogRead_
analogWrite	KEYWORD2	analogWrite_

# -----------------------
# digital i/o
# -----------------------

pinMode	KEYWORD2	pinMode_
digitalRead	KEYWORD2	digitalRead_
digitalWrite	KEYWORD2	digitalWrite_

# -----------------------
# port digital i/o
# -----------------------

portMode	KEYWORD2	portMode_
portRead	KEYWORD2	portRead_
portWrite	KEYWORD2	portWrite_

# -----------------------
# time & date
# -----------------------

millis	KEYWORD2	millis_

# -----------------------
# pulse
# -----------------------

pulseIn	KEYWORD2	pulseIn_
shiftOut	KEYWORD2	shiftOut_
pulseOut	KEYWORD2	pulseOut_
pulseRunning	KEYWORD2	pulseRunning_
pulseStop	KEYWORD2	pulseStop_

# beginPulse	KEYWORD2	beginPulse_
# endPulse	KEYWORD2	endPulse_
# pulseFrequency	KEYWORD2	pulseFrequency_
# pulseRun	KEYWORD2	pulseRun_
# pulseStop	KEYWORD2	pulseStop_
# pulseRunning	KEYWORD2	pulseRunning_

# -----------------------
# interrupt
# -----------------------

attachInterrupt	KEYWORD2	attachInterrupt_
detachInterrupt	KEYWORD2	detachInterrupt_
interruptMode	KEYWORD2	interruptMode_
interrupts	KEYWORD2	interrupts_
noInterrupts	KEYWORD2	noInterrupts_

# -----------------------
# text output
# -----------------------

# printMode	KEYWORD2	printMode_
# print	KEYWORD2	print_

#############################################
# predefined functions (KEYWORD3)
#############################################

setup	KEYWORD3	setup_
loop	KEYWORD3	loop_

#############################################
# constants (LITERAL1)
#############################################

HIGH	LITERAL1	HIGH
LOW	LITERAL1	LOW

INPUT	LITERAL1	INPUT	
OUTPUT	LITERAL1	OUTPUT

FALLING	LITERAL1	FALLING
RISING	LITERAL1	RISING

MSBFIRST	LITERAL1	MSBFIRST
LSBFIRST	LITERAL1	LSBFIRST

true	LITERAL1	true
false	LITERAL1	false
null	LITERAL1	null
NULL	LITERAL1	null

PI	LITERAL1	PI
HALF_PI	LITERAL1	HALF_PI
TWO_PI	LITERAL1	TWO_PI

