bp/grammars/python.bp
Bruce Hill a93220972f Overhaul of |-word boundaries (| is deprecated), performance
improvements for repeating matches, tweaks to the logic of word vs. id
2021-05-11 12:38:58 -07:00

21 lines
1020 B
Plaintext

# Syntax definitions for some Python-specific patterns
#
# NOTE: this is *NOT* intended to be a complete definition of the language's
# syntax! Providing a full language grammar is overkill, because the intended
# use case is finding/replacing string patterns. This task does not require a
# full parse tree, and having one makes the task considerably more complicated.
# See the accompanying README.md for more info.
comment: `# ..$
string: "'''" ..%\n "'''" / '"""' ..%\n '"""' / `" ..%(`\.) `" / `' ..%(`\.) `'
keyword: "and" / "as" / "assert" / "break" / "class" / "continue" / "def" /
"del" / "elif" / "else" / "except" / "finally" / "for" / "from" /
"global" / "if" / "import" / "in" / "is" / "lambda" / "None" / "nonlocal" /
"not" / "or" / "pass" / "raise" / "return" / "try" / "while" /
"with" / "yield"
class: class-def +(\N ..$)
class-def: ^_{class}_id[_parens]_`:
function: function-def +(\N ..$)
function-def: ^_{def}_id parens `:
import: ^_[{from} ..%parens >{import}] {import} ..%parens $