На этой игровой площадке последний оператор всегда игнорируется и не фиксируется. Why is this? https://ast-grep.github.io/playground.html#eyJtb2RlIjoiQ29uZmlnIiwibGFuZyI6ImNwcCIsInF1ZXJ5IjoidXNpbmcgbmFtZXNwYWNlICRBOyIsInJld3JpdGUiOiJ1c2luZyBuYW1lc3BhY2UgZm9vOjokQTsiLCJjb25maWciOiJcbmlkOiB0ZXN0YmFzZV9pbml0aWFsaXplclxubGFuZ3VhZ2U6IENQUFxucnVsZTpcbiAgcGF0dGVybjpcbiAgICBzZWxlY3RvcjogY29tcG91bmRfc3RhdGVtZW50XG4gICAgY29udGV4dDogXCJBOjpBKCkgOiBmb28oKSB7ICQkJEJPRFlTVFVGRiB9XCJcbmZpeDogfC1cbiAge1xuICAgIGYoKTtcbiAgICAkJCRCT0RZU1RVRkY7XG4gIH0iLCJzb3VyY2UiOiJBOjpBKClcbiAgOiBiYXNlOjpDbGFzcyhhLCBiLCBjKSB7IFxuICAgICBhO1xuICAgICBiO1xuICAgICBjO1xuICB9In0= Test C++ code: [code]A::A() : base::Class(a, b, c) { a; b; c; } [/code] Правила тестирования: [code]id: testbase_initializer language: CPP rule: pattern: selector: compound_statement context: "A::A() : foo() { $$$BODYSTUFF }" fix: |- { f(); $$$BODYSTUFF; } [/code] Снято BODYSTUFF: a;b;. Но c; в нем нет. Почему? Для справки, несокращенный тестовый пример: [code]id: testbase_initializer language: CPP rule: pattern: selector: compound_statement context: "A::A() : foo() { $$$BODYSTUFF }"
$$$BODYSTUFF } [/code] И предполагалось переместить часть инициализатора базового класса в тело. Но исправление всегда отбрасывало последний оператор тела!
В настоящее время я использую Cxx, чтобы позволить коду Julia взаимодействовать с библиотекой C++. Часть того, что я хочу сделать, — это эффективно передавать коллекции (обычно векторы) сложных данных в обоих направлениях. То есть мне бы хотелось...
У меня есть следующее правило AST-grep для замены некоторых целочисленных литералов HTTP в моем коде с постоянными
id: replace_http_status_with_constants
language: python
rule:
all:
- regex: ^(200|201|204|302|400|401|403|404|500|502|503|504)$
-...
Я пишу процессор аннотации в качестве доказательства концепции (реализовано как проект Maven). Он обнаруживает классы, аннотированные с помощью моего пользовательского @funnybooleans , которые обменяются всеми флами и наоборот. Я был в состоянии...
Я пишу процессор аннотации в качестве доказательства концепции (реализовано как проект Maven). Он обнаруживает классы, аннотированные с помощью моего пользовательского @funnybooleans , которые обменяются всеми флами и наоборот. Я был в состоянии...