- Read input - Split into tokens - Split tokens into separate arrays - & denotes new array - && denotes new array - | denotes new array - Go through arrays - If last return value = Okay or no return value is set - Try to execute command Arrays[Current][0], passing Arrays[Current][1..len] as arguments. - Store return value