From fe208fdb8074475c2d8f830300add1bbf026447a Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Tue, 1 Oct 2024 14:15:24 +0000 Subject: [PATCH] checkpoint while splitting out the dependency graph build tool to its own project --- #README.md# | 31 + .gitignore | 3 +- README.md | 14 +- build.gradle | 24 +- developer/Lethe/Hibou_build.gradle | 106 --- developer/Lethe/buid_from_leaf.gradle | 68 -- developer/Lethe/build.gradle | 71 -- developer/Lethe/build.html | 90 --- developer/Lethe/make | 15 - developer/Lethe/makefile-project.mk | 251 ------- developer/Lethe/makefile-tool.mk | 61 -- developer/Lethe/makefile-top.mk | 62 -- developer/executor/env_build | 155 ---- .../Arithmetic2_SyntaxAnnotate.java | 81 --- ...ithmetic2_SyntaxAnnotate_PrintVisitor.java | 663 ------------------ developer/ologist/.githolder | 0 .../ANTLR/ANTLRv4Lexer.g4 | 0 .../ANTLR/ANTLRv4Parser.g4 | 0 {developer => developers}/ANTLR/Arithmetic.g4 | 0 .../ANTLR/Arithmetic2.g4 | 0 .../ANTLR/GQL_20240412.g4 | 0 .../ANTLR/GQL_20240412_rf1_literals.g4 | 0 .../ANTLR/GQL_20240412_substituted.g4 | 0 {developer => developers}/ANTLR/LexBasic.g4 | 0 .../ANTLR/LexerAdaptor.java | 0 .../ANTLR/lexer_rules.g4 | 0 .../Erebus => developers/Somnus}/.gitignore | 0 developers/build.gradle | 13 + developers/dependency_graph_definition.groovy | 387 ++++++++++ .../executor/ANTLR_OUT_FL | 0 .../build_from_dependency_graph.groovy | 559 ++------------- .../executor/cat_w_names | 0 {developer => developers}/executor/clean | 0 .../executor/clean_directory | 0 .../executor/clean_file_list | 0 .../executor/clean_grammar | 0 .../executor/clean_program | 0 {developer => developers}/executor/gradle | 0 .../experiment}/.githolder | 0 .../experiment/script2.sh | 0 .../javac/ANTLR/.gitignore | 0 .../javac/leaf/ANTLR_OUT_FL.java | 0 .../javac/leaf/Arithmetic_Echo.java | 0 .../leaf/Arithmetic_Echo_PrintVisitor.java | 0 .../javac/leaf/Arithmetic_Echo__Test.java | 0 .../javac/leaf/Arithmetic_Swap.java | 0 .../javac/leaf/Arithmetic_SwapVisitor.java | 0 .../javac/leaf/Arithmetic_SyntaxAnnotate.java | 0 ...rithmetic_SyntaxAnnotate_PrintVisitor.java | 0 .../leaf/Arithmetic_SyntaxAnnotate__Test.java | 0 .../javac/leaf/RuleNameList.java | 0 .../javac/leaf/RuleNameListRegx.java | 0 .../javac/leaf/StringUtils.java | 0 .../javac/leaf/Synthesize_SyntaxAnnotate.java | 0 ...ynthesize_SyntaxAnnotate_PrintVisitor.java | 0 ...ize_SyntaxAnnotate_PrintVisitorMethod.java | 0 .../javac/leaf/TestBench.java | 0 .../javac/synthesized}/.gitignore | 0 {tool => developers/jvm}/.gitignore | 0 .../readers}/#rule_list.txt# | 0 .../readers}/.githolder | 0 .../readers}/.ispell_antlr | 0 .../readers}/Cypher_GQL_differences.txt | 0 .../readers}/GQL_20240412_rule_list.txt | 0 .../readers}/antlr-mode.el | 0 .../readers}/cycle_dection.html | 0 .../readers}/dependency_graph.html | 0 .../readers}/deps.gradle | 0 .../ologist => developers/readers}/emacs.txt | 0 .../readers}/for_developers.md | 0 .../readers}/grammar_source.txt | 0 .../ologist => developers/readers}/groovy.el | 0 .../readers}/node_labels_unique_q.txt | 0 .../readers}/rule_list.txt | 0 .../readers}/rules_by_catebory.txt | 0 .../readers}/rules_by_category.html | 0 .../readers}/terminal_symbol_list.txt | 0 .../terminal_symbol_list_unsorted.txt | 0 developers/tanuki/.gitignore | 4 + .../Arithmetic_SyntaxAnnotate__Test_0.txt | 0 .../Arithmetic_SyntaxAnnotate__Test_1.txt | 0 .../Arithmetic_SyntaxAnnotate__Test_2.txt | 0 .../Arithmetic_SyntaxAnnotate__Test_3.txt | 0 .../Arithmetic_SyntaxAnnotate__Test_4.txt | 0 .../test/Neo4NBA/create_relationship_0.cypher | 0 .../test/Neo4NBA/create_team_0.cypher | 0 .../delete_player_and_relationship.cypher | 0 .../test/Neo4NBA/notes.txt | 0 .../Neo4NBA/query_players_by_team_0.cypher | 0 .../test/Neo4NBA/updating_nodes_0.cypher | 0 ...d_graph_from_graph_type_(double_colon).gql | 0 ...closed_graph_from_graph_type_(lexical).gql | 0 ..._from_nested_graph_type_(double_colon).gql | 0 .../create_graph.gql | 0 .../create_schema.gql | 0 .../insert_statement.gql | 0 .../match_and_insert_example.gql | 0 ...cate_(match_block_statement_in_braces).gql | 0 ...(match_block_statement_in_parentheses).gql | 0 ...sts_predicate_(nested_match_statement).gql | 0 .../session_set_graph_to_current_graph.gql | 0 ...on_set_graph_to_current_property_graph.gql | 0 .../session_set_property_as_value.gql | 0 .../session_set_time_zone.gql | 0 .../transcript_Arithmetic_Syntax__Test.sh | 0 .../test/transcript_RuleNameList.sh | 0 .../test/transcript_notes.txt | 0 .../test/transcript_test_Arithmetic_Echo.sh | 0 .../test/transcript_test_Arithmetic_Syntax.sh | 0 .../transcript_test_PrintRuleNameListRegx.sh | 0 executor/clean_ANTLR | 2 +- executor/clean_Java | 2 +- executor/clean_upstream | 6 +- executor/env_dev | 6 +- executor/env_pm | 11 +- executor/install_tools.txt | 36 + ologist/directory_structure.md | 159 ----- ologist/gradle_notes.txt | 30 - {ologist => readers}/README.md | 0 readers/directory_naming.txt | 40 ++ {ologist => readers}/log.md | 6 + {Erebus => tanuki}/.gitignore | 0 toolsmiths/.gitignore | 4 + 123 files changed, 650 insertions(+), 2310 deletions(-) create mode 100644 #README.md# delete mode 100644 developer/Lethe/Hibou_build.gradle delete mode 100644 developer/Lethe/buid_from_leaf.gradle delete mode 100644 developer/Lethe/build.gradle delete mode 100644 developer/Lethe/build.html delete mode 100755 developer/Lethe/make delete mode 100644 developer/Lethe/makefile-project.mk delete mode 100644 developer/Lethe/makefile-tool.mk delete mode 100644 developer/Lethe/makefile-top.mk delete mode 100755 developer/executor/env_build delete mode 100644 developer/javac/synthesized/Arithmetic2_SyntaxAnnotate.java delete mode 100644 developer/javac/synthesized/Arithmetic2_SyntaxAnnotate_PrintVisitor.java delete mode 100644 developer/ologist/.githolder rename {developer => developers}/ANTLR/ANTLRv4Lexer.g4 (100%) rename {developer => developers}/ANTLR/ANTLRv4Parser.g4 (100%) rename {developer => developers}/ANTLR/Arithmetic.g4 (100%) rename {developer => developers}/ANTLR/Arithmetic2.g4 (100%) rename {developer => developers}/ANTLR/GQL_20240412.g4 (100%) rename {developer => developers}/ANTLR/GQL_20240412_rf1_literals.g4 (100%) rename {developer => developers}/ANTLR/GQL_20240412_substituted.g4 (100%) rename {developer => developers}/ANTLR/LexBasic.g4 (100%) rename {developer => developers}/ANTLR/LexerAdaptor.java (100%) rename {developer => developers}/ANTLR/lexer_rules.g4 (100%) rename {developer/Erebus => developers/Somnus}/.gitignore (100%) create mode 100644 developers/build.gradle create mode 100644 developers/dependency_graph_definition.groovy rename {developer => developers}/executor/ANTLR_OUT_FL (100%) rename developer/build.gradle => developers/executor/build_from_dependency_graph.groovy (53%) rename {developer => developers}/executor/cat_w_names (100%) rename {developer => developers}/executor/clean (100%) rename {developer => developers}/executor/clean_directory (100%) rename {developer => developers}/executor/clean_file_list (100%) rename {developer => developers}/executor/clean_grammar (100%) rename {developer => developers}/executor/clean_program (100%) rename {developer => developers}/executor/gradle (100%) rename {developer/Lethe => developers/experiment}/.githolder (100%) rename {developer => developers}/experiment/script2.sh (100%) rename {developer => developers}/javac/ANTLR/.gitignore (100%) rename {developer => developers}/javac/leaf/ANTLR_OUT_FL.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_Echo.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_Echo_PrintVisitor.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_Echo__Test.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_Swap.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_SwapVisitor.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_SyntaxAnnotate.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_SyntaxAnnotate_PrintVisitor.java (100%) rename {developer => developers}/javac/leaf/Arithmetic_SyntaxAnnotate__Test.java (100%) rename {developer => developers}/javac/leaf/RuleNameList.java (100%) rename {developer => developers}/javac/leaf/RuleNameListRegx.java (100%) rename {developer => developers}/javac/leaf/StringUtils.java (100%) rename {developer => developers}/javac/leaf/Synthesize_SyntaxAnnotate.java (100%) rename {developer => developers}/javac/leaf/Synthesize_SyntaxAnnotate_PrintVisitor.java (100%) rename {developer => developers}/javac/leaf/Synthesize_SyntaxAnnotate_PrintVisitorMethod.java (100%) rename {developer => developers}/javac/leaf/TestBench.java (100%) rename {developer/jvm => developers/javac/synthesized}/.gitignore (100%) rename {tool => developers/jvm}/.gitignore (100%) rename {developer/ologist => developers/readers}/#rule_list.txt# (100%) rename {developer/experiment => developers/readers}/.githolder (100%) rename {developer/ologist => developers/readers}/.ispell_antlr (100%) rename {developer/ologist => developers/readers}/Cypher_GQL_differences.txt (100%) rename {developer/ologist => developers/readers}/GQL_20240412_rule_list.txt (100%) rename {developer/ologist => developers/readers}/antlr-mode.el (100%) rename {developer/ologist => developers/readers}/cycle_dection.html (100%) rename {developer/ologist => developers/readers}/dependency_graph.html (100%) rename {developer/ologist => developers/readers}/deps.gradle (100%) rename {developer/ologist => developers/readers}/emacs.txt (100%) rename {developer/ologist => developers/readers}/for_developers.md (100%) rename {developer/ologist => developers/readers}/grammar_source.txt (100%) rename {developer/ologist => developers/readers}/groovy.el (100%) rename {developer/ologist => developers/readers}/node_labels_unique_q.txt (100%) rename {developer/ologist => developers/readers}/rule_list.txt (100%) rename {developer/ologist => developers/readers}/rules_by_catebory.txt (100%) rename {developer/ologist => developers/readers}/rules_by_category.html (100%) rename {developer/ologist => developers/readers}/terminal_symbol_list.txt (100%) rename {developer/ologist => developers/readers}/terminal_symbol_list_unsorted.txt (100%) create mode 100644 developers/tanuki/.gitignore rename {developer => developers}/test/Arithmetic_SyntaxAnnotate__Test_0.txt (100%) rename {developer => developers}/test/Arithmetic_SyntaxAnnotate__Test_1.txt (100%) rename {developer => developers}/test/Arithmetic_SyntaxAnnotate__Test_2.txt (100%) rename {developer => developers}/test/Arithmetic_SyntaxAnnotate__Test_3.txt (100%) rename {developer => developers}/test/Arithmetic_SyntaxAnnotate__Test_4.txt (100%) rename {developer => developers}/test/Neo4NBA/create_relationship_0.cypher (100%) rename {developer => developers}/test/Neo4NBA/create_team_0.cypher (100%) rename {developer => developers}/test/Neo4NBA/delete_player_and_relationship.cypher (100%) rename {developer => developers}/test/Neo4NBA/notes.txt (100%) rename {developer => developers}/test/Neo4NBA/query_players_by_team_0.cypher (100%) rename {developer => developers}/test/Neo4NBA/updating_nodes_0.cypher (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/create_closed_graph_from_graph_type_(double_colon).gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/create_closed_graph_from_graph_type_(lexical).gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/create_closed_graph_from_nested_graph_type_(double_colon).gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/create_graph.gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/create_schema.gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/insert_statement.gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/match_and_insert_example.gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/match_with_exists_predicate_(match_block_statement_in_braces).gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/match_with_exists_predicate_(match_block_statement_in_parentheses).gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/match_with_exists_predicate_(nested_match_statement).gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/session_set_graph_to_current_graph.gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/session_set_graph_to_current_property_graph.gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/session_set_property_as_value.gql (100%) rename {developer => developers}/test/opengql_grammar_samples_20240801/session_set_time_zone.gql (100%) rename {developer => developers}/test/transcript_Arithmetic_Syntax__Test.sh (100%) rename {developer => developers}/test/transcript_RuleNameList.sh (100%) rename {developer => developers}/test/transcript_notes.txt (100%) rename {developer => developers}/test/transcript_test_Arithmetic_Echo.sh (100%) rename {developer => developers}/test/transcript_test_Arithmetic_Syntax.sh (100%) rename {developer => developers}/test/transcript_test_PrintRuleNameListRegx.sh (100%) create mode 100644 executor/install_tools.txt delete mode 100644 ologist/directory_structure.md delete mode 100644 ologist/gradle_notes.txt rename {ologist => readers}/README.md (100%) create mode 100644 readers/directory_naming.txt rename {ologist => readers}/log.md (91%) rename {Erebus => tanuki}/.gitignore (100%) create mode 100644 toolsmiths/.gitignore diff --git a/#README.md# b/#README.md# new file mode 100644 index 0000000..a089cdd --- /dev/null +++ b/#README.md# @@ -0,0 +1,31 @@ + +Directories are named after the agent that uses the files in them. See +`readers/directory_naming.txt` for more information. + + + +Document readers will find material in the 'readers' directory. + +As you are reading this you might be a GQL_to_Cypter-ologist. Please read +documents in the ./ologist directory for project information, and the +documents in the developer/ologist directory for documents on building +the project. + +The project top level is for project management and imported tools. Developers +do development work in the `developer` directory. + +For developers, from the top of the project get started by typing: +``` +> . executor/env_dev +`` + +This will setup the environment and `cd` to the developer directory. (`env_dev` +is analogous to the Python virtual environment `activate`.) + +# About + +This is a project to develope a transpiler from GQL to Cypher. + + + + diff --git a/.gitignore b/.gitignore index 02b640c..79a93aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -#note also the .gitignore files in the tool and developer directories and any -# other directory that might have one. +# be careful to note also the .gitignore files in various directories. #*# *~ diff --git a/README.md b/README.md index 6d0d30a..ad94442 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,17 @@ -# Project management +Directories are named after the agent that uses the files in them. See +`readers/directory_naming.txt` for more information. + +The top level directory is reserved for project management. This includes +the git repo, virtual environment tool installs, and the startup scripts. + +An `executor` is a generic name for a program that runs a file. It is used to +name directories that might have a mix of directly loaded, interpreted, and +shell script files. Files in an 'exector' directory are for the executor. + + + +Document readers will find material in the 'readers' directory. As you are reading this you might be a GQL_to_Cypter-ologist. Please read documents in the ./ologist directory for project information, and the diff --git a/build.gradle b/build.gradle index 4312062..1358aa3 100644 --- a/build.gradle +++ b/build.gradle @@ -121,9 +121,27 @@ task installJava { } } +task installGroovyWrapper { + doLast { + def groovyJar = file("${gradle.gradleHomeDir}/lib/groovy-all.jar") + def wrapperDest = file("${toolDir}/bin/groovy-wrapper") + + if (groovyJar.exists()) { + println "Creating Groovy wrapper script in ${wrapperDest}" + wrapperDest.text = + '''#!/bin/bash + exec java -cp ${groovyJar.absolutePath} groovy.ui.GroovyMain "$@" + ''' + wrapperDest.setExecutable(true) + } else { + throw new GradleException("Groovy .jar file not found in Gradle library") + } + } +} + // Add a task to install both tools task installTools { - dependsOn installAntlr, installJava + dependsOn installAntlr, installJava, installGroovyWrapper } //-------------------------------------------------------------------------------- @@ -152,8 +170,8 @@ task cleanTool { } } -task cleanErebus { - description = "Cleans the project level temporary directory 'Erebus'" +task Tanuki { + description = "Cleans the project level temporary directory" doLast { if (erebusDir.exists()) { erebusDir.eachFile { file -> diff --git a/developer/Lethe/Hibou_build.gradle b/developer/Lethe/Hibou_build.gradle deleted file mode 100644 index ca38ddd..0000000 --- a/developer/Lethe/Hibou_build.gradle +++ /dev/null @@ -1,106 +0,0 @@ -task setup { - doLast { - def dirs = [ - "$(ANTLR_IN_PRIMARY_DIR)", - "$(JAVA_COMP_IN_DIR)", - "$(JAVA_COMP_IN_PRIMARY_DIR)", - "$(JAVA_COMP_IN_ANTLR_DIR)", - "$(JAVA_COMP_IN_SYN_DIR)", - "$(JVM_IN_DIR)", - "$(EXECUTOR_IN_DIR)", - "test", - "deprecated", - "experiment", - "ologist", - "temporary" - ] - dirs.each { dir -> - if (!file(dir).exists()) { - mkdir dir - } - } - } -} - -def compileJava(source, target) { - tasks.create(name: "compile${source}", type: Exec) { - commandLine '$(JAVA_COMP)', '-d', '$(JAVA_COMP_OUT_DIR)', '-sourcepath', '$(JAVA_COMP_IN_DL)', source - doLast { - println "Compiled ${source} to ${target}" - } - } -} - -def createJar(source, target) { - tasks.create(name: "jar${source}", type: Exec) { - commandLine '$(JAVA_ARCHIVE)', 'cf', target, '-C', '$(JAVA_COMP_OUT_DIR)', source - doLast { - println "Created ${target}" - } - } -} - -def createWrapper(source, target) { - tasks.create(name: "wrapper${source}", type: Exec) { - doLast { - def script = new File(target) - script.text = "#!/usr/bin/env bash\n$(JAVA_INTERP) -cp ${CLASSPATH}:${JVM_IN_DP}:${JVM_IN_DP}/${source}.jar ${source} \$@" - script.setExecutable(true) - println "Created program ${target}" - } - } -} - -task ANTLR_OUT_FL { - dependsOn setup - doLast { - println "Building ANTLR_OUT_FL..." - // Add specific build steps for ANTLR_OUT_FL here - } -} - -task all { - dependsOn ANTLR_OUT_FL - doLast { - println "Building all targets..." - } -} - -task clean { - doLast { - println "Use the command `clean