Added shell grammar
This commit is contained in:
parent
008db80229
commit
54b5dfba4d
@ -42,6 +42,7 @@ parens: `(..`) % (\n/parens/string)
|
||||
string: `"..`" % (`\.) / `'..`' % (`\.)
|
||||
id: !<`a-z,A-Z,_,0-9 (`a-z,A-Z,_ *`a-z,A-Z,_,0-9)!=(keyword$)
|
||||
id-char: `a-z,A-Z,_,0-9
|
||||
var: id
|
||||
keyword: !"" # No keywords defined by default
|
||||
word: !<`a-z,A-Z,_,0-9 +`a-z,A-Z !>`0-9,_
|
||||
|: !<`a-z,A-Z,_,0-9 / !>`a-z,A-Z,_,0-9
|
||||
|
19
grammars/shell.bp
Normal file
19
grammars/shell.bp
Normal file
@ -0,0 +1,19 @@
|
||||
# Syntax definition for some Shell-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: `"..`" % (`\./subcommand/\n) / `'..`' % \n / "<<" _ @delim=id _$ ..(^delim$)%\n
|
||||
subcommand: `` .. `` % \n / "$" parens
|
||||
keyword: |(
|
||||
"echo" / "read" / "set" / "unset" / "readonly" / "shift" / "export" / "if" / "fi" /
|
||||
"else" / "while" / "do" / "done" / "for" / "until" / "case" / "esac" / "break" /
|
||||
"continue" / "exit" / "return" / "trap" / "wait" / "eval" / "exec" / "ulimit" / "umask"
|
||||
)|
|
||||
function-def: ^_ ["function"_] id _ `(_`) >(__`{)
|
||||
function: function-def __ braces
|
||||
var: `$ (id / braces)
|
Loading…
Reference in New Issue
Block a user