追記(2025.03.06):AGEFreighterに統合しました。
YACCの勉強がてら、Cypherクエリのパーサを書いて、一通り動くようになったのでリリースした。

なんで書いたかというと、AGE関連で色々書くのに軽量なパーサが欲しかったのよね。例えば、GremlinクエリをAGE用のCypherに変換するg2cでも、”AS (n agtype)”の部分を付加するのに、RETURNされてるトークンを抽出する必要があったりするので。
コマンドとしてはbrewでインストール可能。
brew tap rioriost/pcypher
brew intall pcypher
ライブラリとして使うなら、以下。
mkdir your_directory
cd your_directory
python3 -m venv venv
source venv/bin/activate
python3 -m pip install pcypher
こんな感じで使う。
from pcypher import CypherParser
def main():
query = "CREATE (adam:User {name: 'Adam'}), (pernilla:User {name: 'Pernilla'}), (david:User {name: 'David'}), (adam)-[:FRIEND]->(pernilla), (pernilla)-[:FRIEND]->(david)"
parser = CypherParser()
result = parser.parse(query)
print(f"{str(result)}")
if __name__ == "__main__":
main()
タイトルの「ゃくゃく様」は、YACCにかかってるとか何とかw