Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.
This report presents the forensic synthetic code analysis of lark-parser/lark, a Python project with 5,946 GitHub stars. SynthScan v2.0 examined 24,586 lines of code across 123 source files, recording 354 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 15.0 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 354 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lark/parser_frontends.py | 2 | CODE | |
| LOW | lark/tree.py | 1 | CODE | |
| LOW | lark/tree.py | 4 | CODE | |
| LOW | lark/tree.py | 4 | CODE | |
| LOW | lark/tree.py | 9 | CODE | |
| LOW | lark/tree.py | 14 | CODE | |
| LOW | lark/visitors.py | 1 | CODE | |
| LOW | lark/lark.py | 7 | CODE | |
| LOW | lark/lark.py | 7 | CODE | |
| LOW | lark/lark.py | 7 | CODE | |
| LOW | lark/lark.py | 18 | CODE | |
| LOW | lark/lark.py | 20 | CODE | |
| LOW | lark/lark.py | 12 | CODE | |
| LOW | lark/lark.py | 13 | CODE | |
| LOW | lark/lark.py | 14 | CODE | |
| LOW | lark/lark.py | 15 | CODE | |
| LOW | lark/lark.py | 16 | CODE | |
| LOW | lark/lark.py | 16 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 1 | CODE | |
| LOW | lark/__init__.py | 11 | CODE | |
| LOW | lark/__init__.py | 12 | CODE | |
| LOW | lark/__init__.py | 13 | CODE | |
| LOW | lark/__init__.py | 14 | CODE | |
| LOW | lark/__init__.py | 14 | CODE | |
| LOW | lark/__init__.py | 15 | CODE | |
| LOW | lark/__init__.py | 15 | CODE | |
| LOW | lark/__init__.py | 16 | CODE | |
| LOW | lark/__init__.py | 16 | CODE | |
| LOW | lark/__init__.py | 16 | CODE | |
| LOW | lark/__init__.py | 16 | CODE | |
| LOW | lark/__init__.py | 16 | CODE | |
| LOW | lark/common.py | 7 | CODE | |
| LOW | lark/common.py | 8 | CODE | |
| LOW | lark/common.py | 9 | CODE | |
| LOW | lark/common.py | 10 | CODE | |
| LOW | lark/common.py | 10 | CODE | |
| LOW | lark/common.py | 11 | CODE | |
| LOW | lark/common.py | 13 | CODE | |
| LOW | lark/common.py | 15 | CODE | |
| LOW | lark/lexer.py | 16 | CODE | |
| LOW | lark/lexer.py | 17 | CODE | |
| LOW | lark/exceptions.py | 2 | CODE | |
| LOW | lark/exceptions.py | 2 | CODE | |
| LOW | lark/exceptions.py | 6 | CODE | |
| LOW | lark/exceptions.py | 7 | CODE | |
| LOW | lark/parsers/xearley.py | 29 | CODE | |
| LOW | lark/parsers/xearley.py | 29 | CODE | |
| LOW | lark/parsers/lalr_analysis.py | 15 | CODE | |
| LOW | lark/parsers/lalr_analysis.py | 15 | CODE | |
| LOW | lark/parsers/earley.py | 25 | CODE | |
| LOW | lark/parsers/earley.py | 25 | CODE | |
| LOW | lark/tools/standalone.py | 27 | CODE | |
| LOW | lark/tools/standalone.py | 28 | CODE | |
| 66 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lark/parser_frontends.py | 63 | def _deserialize_parsing_frontend(data, memo, lexer_conf, callbacks, options): | CODE |
| LOW | lark/parser_frontends.py | 311 | def create_earley_parser__dynamic(lexer_conf: LexerConf, parser_conf: ParserConf, **kw): | CODE |
| LOW | lark/parser_frontends.py | 321 | def create_earley_parser__basic(lexer_conf: LexerConf, parser_conf: ParserConf, **kw): | CODE |
| LOW | lark/parser_frontends.py | 369 | def _construct_parsing_frontend( | CODE |
| LOW | lark/load_grammar.py | 961 | def _translate_parser_exception(parse, e): | CODE |
| LOW | lark/load_grammar.py | 994 | def _search_interactive_parser(interactive_parser, predicate): | CODE |
| LOW | lark/parse_tree_builder.py | 162 | def maybe_create_child_filter(expansion, keep_all_tokens, ambiguous, _empty_indices: List[bool]): | CODE |
| LOW | lark/parse_tree_builder.py | 223 | def maybe_create_ambiguous_expander(tree_class, expansion, keep_all_tokens): | CODE |
| LOW | lark/parsers/earley_forest.py | 401 | def transform_intermediate_node(self, node, data): | CODE |
| LOW | lark/parsers/earley_forest.py | 438 | def visit_intermediate_node_out(self, node): | CODE |
| LOW | lark/parsers/earley_forest.py | 582 | def transform_intermediate_node(self, node, data): | CODE |
| LOW | lark/parsers/lalr_analysis.py | 229 | def compute_includes_lookback(self): | CODE |
| LOW | lark/tools/nearley.py | 144 | def create_code_for_nearley_grammar(g, start, builtin_path, folder_path, es6=False): | STRING |
| LOW | tests/test_parser.py | 368 | def test_backwards_custom_lexer(self): | CODE |
| LOW | tests/test_parser.py | 888 | def test_multiple_start_solutions(self): | CODE |
| LOW | tests/test_parser.py | 2726 | def test_interactive_treeless_transformer(self): | CODE |
| LOW⚡ | tests/test_parser.py | 2009 | def test_relative_import_unicode(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2015 | def test_relative_import_rename(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2021 | def test_relative_rule_import(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2030 | def test_relative_rule_import_drop_ignore(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2038 | def test_relative_rule_import_subrule(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2090 | def test_relative_multi_import(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2095 | def test_relative_import_preserves_leading_underscore(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2100 | def test_relative_import_of_nested_grammar(self): | STRING |
| LOW⚡ | tests/test_parser.py | 2105 | def test_relative_import_rules_dependencies_imported_only_once(self): | STRING |
| LOW | tests/test_parser.py | 149 | def test_comment_in_rule_definition(self): | STRING |
| LOW | tests/test_parser.py | 263 | def test_embedded_transformer(self): | STRING |
| LOW | tests/test_parser.py | 319 | def test_embedded_transformer_inplace(self): | STRING |
| LOW | tests/test_parser.py | 493 | def test_earley_repeating_empty(self): | STRING |
| LOW | tests/test_parser.py | 509 | def test_earley_explicit_ambiguity(self): | STRING |
| LOW | tests/test_parser.py | 562 | def test_ambiguous_inlined_rule(self): | STRING |
| LOW | tests/test_parser.py | 583 | def test_ambiguous_intermediate_node(self): | STRING |
| LOW | tests/test_parser.py | 600 | def test_ambiguous_symbol_and_intermediate_nodes(self): | STRING |
| LOW | tests/test_parser.py | 635 | def test_nested_ambiguous_intermediate_nodes(self): | STRING |
| LOW | tests/test_parser.py | 748 | def test_ambiguous_intermediate_node_unnamed_token(self): | STRING |
| LOW | tests/test_parser.py | 764 | def test_ambiguous_intermediate_node_inlined_rule(self): | STRING |
| LOW | tests/test_parser.py | 781 | def test_ambiguous_intermediate_node_conditionally_inlined_rule(self): | STRING |
| LOW | tests/test_parser.py | 909 | def test_ignore_carryover_with_priority(self): | STRING |
| LOW | tests/test_parser.py | 1004 | def test_cycles_with_child_filter(self): | STRING |
| LOW | tests/test_parser.py | 1034 | def test_symbol_node_start_end_dynamic_lexer(self): | STRING |
| LOW | tests/test_parser.py | 1054 | def test_resolve_ambiguity_with_shared_node(self): | STRING |
| LOW | tests/test_parser.py | 1299 | def test_unicode_literal_range_escape(self): | STRING |
| LOW | tests/test_parser.py | 1312 | def test_hex_literal_range_escape(self): | STRING |
| LOW | tests/test_parser.py | 1760 | def test_token_flags_collision(self): | STRING |
| LOW | tests/test_parser.py | 1801 | def test_token_flags_verbose_multiline(self): | STRING |
| LOW | tests/test_parser.py | 1867 | def test_lexer_prioritization(self): | STRING |
| LOW | tests/test_parser.py | 1919 | def test_dynamic_lexer_prioritization(self): | STRING |
| LOW | tests/test_parser.py | 2052 | def test_relative_rule_import_subrule_no_conflict(self): | STRING |
| LOW | tests/test_parser.py | 2067 | def test_relative_rule_import_rename(self): | STRING |
| LOW | tests/test_parser.py | 2386 | def test_priority_vs_embedded(self): | STRING |
| LOW | tests/test_parser.py | 2533 | def test_serialize_with_transformer(self): | STRING |
| LOW | tests/test_parser.py | 2555 | def test_lexer_detect_newline_tokens(self): | STRING |
| LOW | tests/test_parser.py | 2622 | def test_regex_width_fallback(self): | STRING |
| LOW | tests/test_parser.py | 2638 | def test_parser_interactive_parser(self): | STRING |
| LOW | tests/test_parser.py | 2675 | def test_error_with_interactive_parser(self): | STRING |
| LOW | tests/test_parser.py | 2710 | def test_on_error_without_lalr(self): | STRING |
| LOW | tests/test_parser.py | 2748 | def test_default_in_treeless_mode(self): | STRING |
| LOW | tests/test_parser.py | 2838 | def test_parse_textslice_fails(self): | STRING |
| LOW | tests/test_python_grammar.py | 238 | def _test_parsed_is_this_terminal(self, text, terminal, start): | STRING |
| LOW | tests/test_python_grammar.py | 245 | def _test_parsed_is_file_containing_only_this_statement(self, text, statement): | STRING |
| 54 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_parser.py | 0 | sentence: noun verb noun -> simple | noun verb "like" noun -> comparative noun: adj? noun verb: verb adj: adj noun: "fli | STRING |
| HIGH | examples/fruitflies.py | 0 | sentence: noun verb noun -> simple | noun verb "like" noun -> comparative noun: adj? noun verb: verb adj: adj noun: "fli | STRING |
| HIGH | examples/advanced/tree_forest_transformer.py | 0 | sentence: noun verb noun -> simple | noun verb "like" noun -> comparative noun: adj? noun verb: verb adj: adj noun: "fli | STRING |
| HIGH | tests/test_reconstructor.py | 0 | { "empty_object" : {}, "empty_array" : [], "booleans" : { "yes" : true, "no" : false }, "numbers" : [ 0, 1, -2, 3.3, 4.4 | STRING |
| HIGH | examples/json_parser.py | 0 | { "empty_object" : {}, "empty_array" : [], "booleans" : { "yes" : true, "no" : false }, "numbers" : [ 0, 1, -2, 3.3, 4.4 | STRING |
| HIGH | examples/advanced/reconstruct_json.py | 0 | { "empty_object" : {}, "empty_array" : [], "booleans" : { "yes" : true, "no" : false }, "numbers" : [ 0, 1, -2, 3.3, 4.4 | STRING |
| HIGH | tests/test_reconstructor.py | 0 | ?value: dict | list | string | signed_number -> number | "true" -> true | "false" -> false | "null" -> null list : "[" [ | STRING |
| HIGH | docs/ide/app/examples.py | 0 | ?value: dict | list | string | signed_number -> number | "true" -> true | "false" -> false | "null" -> null list : "[" [ | STRING |
| HIGH | examples/json_parser.py | 0 | ?value: dict | list | string | signed_number -> number | "true" -> true | "false" -> false | "null" -> null list : "[" [ | STRING |
| HIGH | examples/advanced/_json_parser.py | 0 | ?value: dict | list | string | signed_number -> number | "true" -> true | "false" -> false | "null" -> null list : "[" [ | STRING |
| HIGH | docs/json_tutorial.md | 0 | ?value: dict | list | string | signed_number -> number | "true" -> true | "false" -> false | "null" -> null list : "[" [ | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lark/parser_frontends.py | 33 | CODE | |
| LOW | lark/parser_frontends.py | 173 | CODE | |
| LOW | lark/load_grammar.py | 540 | CODE | |
| LOW | lark/load_grammar.py | 872 | CODE | |
| LOW | lark/load_grammar.py | 1394 | CODE | |
| LOW | lark/load_grammar.py | 346 | CODE | |
| LOW | lark/load_grammar.py | 451 | CODE | |
| LOW | lark/load_grammar.py | 692 | CODE | |
| LOW | lark/load_grammar.py | 1162 | CODE | |
| LOW | lark/load_grammar.py | 1242 | CODE | |
| LOW | lark/load_grammar.py | 1311 | CODE | |
| LOW | lark/load_grammar.py | 1347 | CODE | |
| LOW | lark/visitors.py | 297 | CODE | |
| LOW | lark/lark.py | 298 | CODE | |
| LOW | lark/utils.py | 350 | CODE | |
| LOW | lark/lexer.py | 371 | CODE | |
| LOW | lark/lexer.py | 676 | CODE | |
| LOW | lark/exceptions.py | 75 | CODE | |
| LOW | lark/reconstruct.py | 33 | CODE | |
| LOW | lark/parse_tree_builder.py | 71 | CODE | |
| LOW | lark/parse_tree_builder.py | 275 | CODE | |
| LOW | lark/parse_tree_builder.py | 358 | CODE | |
| LOW | lark/parse_tree_builder.py | 279 | CODE | |
| LOW | lark/parsers/earley_forest.py | 274 | CODE | |
| LOW | lark/parsers/lalr_parser.py | 40 | CODE | |
| LOW | lark/parsers/cyk.py | 133 | CODE | |
| LOW | lark/parsers/xearley.py | 40 | CODE | |
| LOW | lark/parsers/xearley.py | 42 | CODE | |
| LOW | lark/parsers/lalr_analysis.py | 166 | CODE | |
| LOW | lark/parsers/lalr_analysis.py | 194 | CODE | |
| LOW | lark/parsers/lalr_analysis.py | 229 | CODE | |
| LOW | lark/parsers/lalr_analysis.py | 267 | CODE | |
| LOW | lark/parsers/lalr_analysis.py | 171 | CODE | |
| LOW | lark/parsers/grammar_analysis.py | 78 | CODE | |
| LOW | lark/parsers/earley.py | 78 | CODE | |
| LOW | lark/tools/standalone.py | 75 | CODE | |
| LOW | lark/tools/nearley.py | 113 | CODE | |
| LOW | docs/ide/app/core.py | 2827 | CODE | |
| LOW | docs/ide/app/core.py | 3014 | CODE | |
| LOW | docs/ide/app/core.py | 657 | CODE | |
| LOW | docs/ide/app/core.py | 814 | CODE | |
| LOW | docs/ide/app/core.py | 834 | CODE | |
| LOW | docs/ide/app/core.py | 2513 | CODE | |
| LOW | docs/ide/app/core.py | 3059 | CODE | |
| LOW | docs/ide/app/ignite.py | 158 | CODE | |
| LOW | docs/ide/app/ext.py | 339 | CODE | |
| LOW | examples/turtle_dsl.py | 38 | CODE | |
| LOW | examples/advanced/reconstruct_python.py | 28 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | lark/load_grammar.py | 698 | # =================== | COMMENT |
| MEDIUM | lark/load_grammar.py | 700 | # =================== | COMMENT |
| MEDIUM | lark/load_grammar.py | 717 | # ================= | COMMENT |
| MEDIUM | lark/load_grammar.py | 719 | # ================= | COMMENT |
| MEDIUM | lark/tools/standalone.py | 5 | # ---------------------------------- | COMMENT |
| MEDIUM | lark/__pyinstaller/hook-lark.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | lark/__pyinstaller/hook-lark.py | 10 | #----------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | lark/parsers/earley_forest.py | 1 | """"This module implements an SPPF implementation | STRING |
| MEDIUM | lark/parsers/lalr_parser.py | 1 | """This module implements a LALR(1) Parser | STRING |
| MEDIUM | lark/parsers/earley_common.py | 1 | """This module implements useful building blocks for the Earley parser | STRING |
| MEDIUM | lark/parsers/cyk.py | 1 | """This module implements a CYK parser.""" | STRING |
| MEDIUM | lark/parsers/xearley.py | 1 | """This module implements an Earley parser with a dynamic lexer | STRING |
| MEDIUM | lark/parsers/lalr_interactive_parser.py | 1 | # This module provides a LALR interactive parser, which is used for debugging and error handling | COMMENT |
| MEDIUM | lark/parsers/earley.py | 1 | """This module implements an Earley parser. | STRING |
| MEDIUM | docs/conf.py | 7 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | examples/json_parser.py | 52 | ### Create the JSON parser with Lark, using the Earley algorithm | STRING |
| MEDIUM | examples/json_parser.py | 57 | ### Create the JSON parser with Lark, using the LALR algorithm | STRING |
| MEDIUM | examples/advanced/_json_parser.py | 52 | ### Create the JSON parser with Lark, using the LALR algorithm | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 1 | # To use: | COMMENT |
| LOW | lark/parsers/earley_common.py | 41 | # class TransitiveItem(Item): | COMMENT |
| LOW | lark/parsers/cyk.py | 161 | r1_tree = trees[span1][r1.lhs] | COMMENT |
| LOW | lark/parsers/grammar_analysis.py | 81 | Adapted from: http://lara.epfl.ch/w/cc09:algorithm_for_first_and_follow_sets""" | COMMENT |
| LOW | lark/tools/standalone.py | 1 | ###{standalone | COMMENT |
| LOW | lark/__pyinstaller/hook-lark.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | docs/conf.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | docs/conf.py | 61 | project = 'Lark' | COMMENT |
| LOW | docs/conf.py | 101 | # further. For a list of options available for each theme, see the | COMMENT |
| LOW | examples/fruitflies.py | 41 | # make_png(sys.argv[1]) | COMMENT |
| LOW | examples/advanced/prioritizer.py | 61 | COMMENT | |
| LOW | examples/relative-imports/multiples.py | 1 | # | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | lark/utils.py | 166 | A view of a string or bytes object, between the start and end indices. Never creates a copy. Lark accepts inst | STRING |
| HIGH | lark/tree_matcher.py | 162 | Match the elements of `tree` to the symbols of rule `rulename`. Parameters: tree (Tree): the tree n | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lark/visitors.py | 127 | except Exception as e: | CODE |
| LOW | lark/visitors.py | 140 | except Exception as e: | CODE |
| LOW | lark/lark.py | 359 | except Exception: | STRING |
| LOW | lark/lark.py | 385 | except Exception: # We should probably narrow done which errors we catch here. | STRING |
| LOW | lark/parsers/lalr_parser.py | 112 | except Exception as e: | CODE |
| MEDIUM | lark/parsers/lalr_parser.py | 40 | def parse(self, lexer, start, on_error=None): | CODE |
| LOW⚡ | tests/test_parser.py | 1169 | except Exception as e: | STRING |
| LOW⚡ | tests/test_parser.py | 1172 | except Exception as be: | STRING |
| LOW⚡ | tests/test_parser.py | 1178 | except Exception as be: | STRING |
| LOW | docs/ide/app/app.py | 69 | except Exception as e: | STRING |
| LOW | examples/turtle_dsl.py | 76 | except Exception as e: | STRING |
| LOW | examples/advanced/qscintilla_json.py | 109 | except Exception as e: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lark/parser_frontends.py | 151 | # Would break behavior of exhaust_lexer(), which currently raises TypeError, and after the change would just r | COMMENT |
| LOW | examples/turtle_dsl.py | 40 | turtle.color(*t.children) # We just pass the color names as-is | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/json_tutorial.md | 290 | ### Step 1 - Benchmark | STRING |
| LOW | docs/json_tutorial.md | 365 | ### Step 2 - LALR(1) | STRING |
| LOW | docs/json_tutorial.md | 384 | ### Step 3 - Tree-less LALR(1) | STRING |
| LOW | docs/json_tutorial.md | 410 | ### Step 4 - PyPy | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lark/parsers/cyk.py | 103 | # Check if the parse succeeded. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_parser.py | 35 | __all__ = ['TestParsers'] | CODE |
| LOW | tests/test_tree_templates.py | 29 | __all__ = [ | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/ide/app/ext.py | 51 | self["placeholder"] = placeholder | CODE |
| LOW | docs/ide/app/ext.py | 182 | "placeholder": placeholder | STRING |