See in [ShireParser.bnf] for latest version.
Hobbit Hole Design
Normal type
Example:
---
key: "value"
---
All
| ValueType | Description |
|---|---|
| String | “value” |
| IDENTIFIER | enum key in Shire soure code |
| Number | 123 |
| Boolean | true |
| Array | [1, 2, 3] |
| Object | {key: “value”} |
Function Type
Example:
---
when: { $selection.length() >= 0 }
---
All
| ValueType | Description | Example |
|---|---|---|
| Pattern Action | /regex/ { functionBlock } | /.*.java/ { $selection.length() >= 0 } |
| Function | { functionBlock } | { $selection.length() >= 0 } |
| Ast Query Expression | use from, select, where, | see in Ast Query Expression |
| Case Block | case “variable” { functionBlock } | case “$0” { default { find(“ERROR”) | sort | xargs(“notify_admin”) } } |
| Flags Block | flags { flagBlock } | flags { “ignore”: { } } |
Ast Query Expression
---
variables:
"allController": {
from {
PsiClass clazz // the class
}
where {
clazz.extends("org.springframework.web.bind.annotation.RestController") and clazz.getAnAnnotation() == "org.springframework.web.bind.annotation.RequestMapping"
}
select {
clazz.id, clazz.name, "code"
}
}
---