Make sema recursive and add tokens for booleans.