Parsing algorithm