# cool language called sea: ::= ... ::= ... ::= ... ::= ... ::= ... ::= | '_' ::= | | '_' ::= | ::= * ::= | ::= fn '(' ,? ')' (-> )? ::= ::= | , ::= : ::= * | ::= | | | ';' ::= return ? ';' ::= ';' ::= ';' ::= |= | &= | ^= | /= | *= | %= | <<= | >>= | += | -= | = ::= ::= | ::= | || ::= | && ::= | '|' ::= | ^ ::= | & ::= | (!= | ==) ::= | (< | > | <= | >=) ::= | (<< | >>) ::= | (+ | -) ::= | (* | / | %) ::= ::= ! - & * ::= as ::= | '(' (,?)? ')' ::= | , ::= | : ::= | | | '(' ')' | ::= (let | var) (':' )? ( = )? ::= ';' ::= | | ::= '*' 'const'? ::= bool | | | void ::= ('u' | 'i') + ::= 'f'('32' | '64') ::= | ::= ? | '0x' ? | '0b' ? | '0o' ? ::= ? | '.' ? ? | '.' ? ? ? ::= ('e' | 'E') ('-' | '+')?