expr :: Parser Expr
expr = try varDef
    <|> try varAssign
    <|> try funcCall
    <|> try binOp
    <|> try var
    <|> num
    <|> cstring
    <|> parens expr
expr :: Parser Expr
expr = try varDef
    <|> try varAssign
    <|> try funcCall
    <|> try binOp
    <|> try var
    <|> num
    <|> cstring
    <|> parens expr
expr = try varDef
    <|> try varAssign
    <|> try funcCall
    <|> try binOp
    <|> try var
    <|> num
    <|> cstring
    <|> parens expr