Skip to content

Commit

Permalink
Disable line-by-line
Browse files Browse the repository at this point in the history
  • Loading branch information
evhub committed Dec 23, 2023
1 parent d8941a6 commit 5efdaba
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 14 deletions.
4 changes: 2 additions & 2 deletions coconut/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,6 @@ def get_path_env_var(env_var, default):

# below constants are experimentally determined to maximize performance

use_line_by_line_parser = True

use_packrat_parser = True # True also gives us better error messages
packrat_cache_size = None # only works because final() clears the cache

Expand All @@ -148,6 +146,8 @@ def get_path_env_var(env_var, default):
# note that _parseIncremental produces much smaller caches
use_incremental_if_available = False

use_line_by_line_parser = False

use_adaptive_if_available = False # currently broken
adaptive_reparse_usage_weight = 10

Expand Down
48 changes: 36 additions & 12 deletions coconut/tests/src/extras.coco
Original file line number Diff line number Diff line change
Expand Up @@ -209,10 +209,15 @@ cannot reassign type variable 'T' (use explicit '\T' syntax if intended) (line 1
assert_raises(-> parse("@"), CoconutParseError)
assert_raises(-> parse("range(1,10) |> reduce$(*, initializer = 1000) |> print"), CoconutParseError, err_has=(
"\n \\~~^",
"\n \\~~~~~~~~~~~~~~~~~~~~~~~^",
))
assert_raises(-> parse("a := b"), CoconutParseError, err_has=(
"\n ^",
"\n \\~^",
))
assert_raises(-> parse("a := b"), CoconutParseError, err_has="\n ^")
assert_raises(-> parse("1 + return"), CoconutParseError, err_has=(
"\n \\~~^",
"\n \\~~~~^",
))
assert_raises(-> parse("""
def f() =
Expand All @@ -229,22 +234,41 @@ def f() =
~^
""".strip(),
))
assert_raises(-> parse('b"abc" "def"'), CoconutParseError, err_has="\n ^")
assert_raises(-> parse('"abc" b"def"'), CoconutParseError, err_has="\n ^")
assert_raises(-> parse('"a" 10'), CoconutParseError, err_has="\n ^")
assert_raises(-> parse("A. ."), CoconutParseError, err_has="\n \\~^")
assert_raises(-> parse('b"abc" "def"'), CoconutParseError, err_has=(
"\n ^",
"\n \\~~~~~~^",
))
assert_raises(-> parse('"abc" b"def"'), CoconutParseError, err_has=(
"\n ^",
"\n \\~~~~~^",
))
assert_raises(-> parse('"a" 10'), CoconutParseError, err_has=(
"\n ^",
"\n \\~~~^",
))
assert_raises(-> parse("A. ."), CoconutParseError, err_has=(
"\n \\~^",
"\n \\~~^",
))
assert_raises(-> parse("f([] {})"), CoconutParseError, err_has=(
"\n \\~~~^",
"\n \\~~~~^",
))
assert_raises(-> parse("0xfgf"), CoconutParseError, err_has=(
"\n ^",
"\n \\~^",
"\n \\~~^",
))
assert_raises(-> parse("(. if 1)"), CoconutParseError, err_has=(
"\n ^",
"\n \\~~^",
))

assert_raises(-> parse('''f"""{
}"""'''), CoconutSyntaxError, err_has="parsing failed for format string expression")
assert_raises(-> parse("f([] {})"), CoconutParseError, err_has="\n \\~~~^")

assert_raises(-> parse("return = 1"), CoconutParseError, err_has='invalid use of the keyword "return"')
assert_raises(-> parse("if a = b: pass"), CoconutParseError, err_has="misplaced assignment")
assert_raises(-> parse("while a == b"), CoconutParseError, err_has="misplaced newline")
assert_raises(-> parse("0xfgf"), CoconutParseError, err_has=(
"\n ^",
"\n \\~^",
))
assert_raises(-> parse("(. if 1)"), CoconutParseError, err_has="\n ^")

try:
parse("""
Expand Down

0 comments on commit 5efdaba

Please sign in to comment.