Bladeren bron

HUE-8856 [autocomplete] Update the makefile to support new parser generation

Johan Ahlen 6 jaren geleden
bovenliggende
commit
02f6874fa1
3 gewijzigde bestanden met toevoegingen van 12 en 12 verwijderingen
  1. 3 3
      Makefile
  2. 4 4
      desktop/core/src/desktop/js/parse/sql/sqlParserRepository.js
  3. 5 5
      tools/jison/generateParsers.js

+ 3 - 3
Makefile

@@ -290,11 +290,11 @@ solr-formula-parser:
 
 .PHONY: sql-all-parsers
 sql-all-parsers:
-	@node tools/jison/generateParsers.js sqlAutocompleteParser sqlSyntaxParser sqlStatementsParser
+	@node tools/jison/generateParsers.js generic hive impala
 
 .PHONY: sql-autocomplete-parser
 sql-autocomplete-parser:
-	@node tools/jison/generateParsers.js sqlAutocompleteParser
+	@node tools/jison/generateParsers.js genericAutocomp hiveAutocomp impalaAutocomp
 
 .PHONY: sql-statement-parser
 sql-statement-parser:
@@ -302,7 +302,7 @@ sql-statement-parser:
 
 .PHONY: sql-syntax-parser
 sql-syntax-parser:
-	@node tools/jison/generateParsers.js sqlSyntaxParser
+	@node tools/jison/generateParsers.js genericSyntax hiveSyntax impalaSyntax
 # END DEV ONLY >>>>
 
 ###################################

+ 4 - 4
desktop/core/src/desktop/js/parse/sql/sqlParserRepository.js

@@ -20,13 +20,13 @@
  */
 const AUTOCOMPLETE_MODULES = {
   generic: () => import(/* webpackChunkName: "generic-parser" */ 'parse/sql/generic/genericAutocompleteParser'),
-  impala: () => import(/* webpackChunkName: "impala-parser" */ 'parse/sql/impala/impalaAutocompleteParser'),
-  hive: () => import(/* webpackChunkName: "hive-parser" */ 'parse/sql/hive/hiveAutocompleteParser')
+  hive: () => import(/* webpackChunkName: "hive-parser" */ 'parse/sql/hive/hiveAutocompleteParser'),
+  impala: () => import(/* webpackChunkName: "impala-parser" */ 'parse/sql/impala/impalaAutocompleteParser')
 };
 const SYNTAX_MODULES = {
   generic: () => import(/* webpackChunkName: "generic-parser" */ 'parse/sql/generic/genericSyntaxParser'),
-  impala: () => import(/* webpackChunkName: "impala-parser" */ 'parse/sql/impala/impalaSyntaxParser'),
-  hive: () => import(/* webpackChunkName: "hive-parser" */ 'parse/sql/hive/hiveSyntaxParser')
+  hive: () => import(/* webpackChunkName: "hive-parser" */ 'parse/sql/hive/hiveSyntaxParser'),
+  impala: () => import(/* webpackChunkName: "impala-parser" */ 'parse/sql/impala/impalaSyntaxParser')
 };
 /* eslint-enable */
 

+ 5 - 5
tools/jison/generateParsers.js

@@ -119,9 +119,9 @@ const readFile = path =>
   new Promise((resolve, reject) => {
     fs.readFile(path, (err, buf) => {
       if (err) {
-        reject();
+        reject(err);
       }
-      resolve(buf.toString());
+      resolve(buf ? buf.toString() : '');
     });
   });
 
@@ -201,7 +201,7 @@ const generateParser = parserName =>
               deleteFile(targetPath); // Remove concatenated file
             }
             console.log('Adjusting JS...');
-            const generatedJsFileName = parserConfig.target.replace('.jison', '.js');
+            const generatedJsFileName = parserConfig.target.replace('.jison', '.js').replace(/^.*\/([^/]+)$/, '$1');
             readFile(generatedJsFileName)
               .then(contents => {
                 parserConfig
@@ -522,11 +522,11 @@ identifySqlParsers().then(() => {
         readFile(SQL_PARSER_REPOSITORY_PATH).then(contents => {
           contents = contents.replace(
             /const SYNTAX_MODULES = [^}]+}/,
-            'const SYNTAX_MODULES = {\n' + syntaxParsers.join(',\n') + '\n}'
+            'const SYNTAX_MODULES = {\n' + syntaxParsers.sort().join(',\n') + '\n}'
           );
           contents = contents.replace(
             /const AUTOCOMPLETE_MODULES = [^}]+}/,
-            'const AUTOCOMPLETE_MODULES = {\n' + autocompParsers.join(',\n') + '\n}'
+            'const AUTOCOMPLETE_MODULES = {\n' + autocompParsers.sort().join(',\n') + '\n}'
           );
           writeFile(SQL_PARSER_REPOSITORY_PATH, contents).then(() => {
             console.log('Done!\n');