Browse Source

Move building parser into lang.

Only npm + shell, no grunt used to build.
Herby Vojčík 5 years ago
parent
commit
15f26d0a6b
4 changed files with 13 additions and 43 deletions
  1. 2 12
      Gruntfile.js
  2. 0 24
      grunt-tasks/grunt-peg.js
  3. 11 0
      lang/package.json
  4. 0 7
      package.json

+ 2 - 12
Gruntfile.js

@@ -6,12 +6,12 @@ module.exports = function (grunt) {
     grunt.loadNpmTasks('grunt-contrib-requirejs');
     grunt.loadNpmTasks('grunt-exec');
 
-    grunt.loadTasks('./grunt-tasks');
     grunt.loadTasks('./sdk/tasks');
 
     var helpers = require('./sdk').helpers;
 
     grunt.registerTask('default', ['peg', 'build:all']);
+    grunt.registerTask('peg', ['exec:build_parser']);
     grunt.registerTask('build:all', ['amberc:lang', 'amberc:tests', 'build:cli', 'amberc:dev']);
     grunt.registerTask('build:cli', ['amberc:cli', 'amdconfig', 'requirejs:cli']);
     grunt.registerTask('test', ['amdconfig', 'requirejs:test_runner', 'exec:test_runner', 'clean:test_runner']);
@@ -24,17 +24,6 @@ module.exports = function (grunt) {
             banner: '/*!\n <%= pkg.title || pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %> \n License: <%= pkg.license.type %> \n*/\n'
         },
 
-        peg: {
-            parser: {
-                options: {
-                    cache: true,
-                    export_var: '$globals.SmalltalkParser'
-                },
-                src: 'lang/support/parser.pegjs',
-                dest: 'lang/support/parser.js'
-            }
-        },
-
         amdconfig: {amber: {dest: 'config.js'}},
 
         amberc: {
@@ -135,6 +124,7 @@ module.exports = function (grunt) {
         },
 
         exec: {
+            build_parser: 'cd lang && npm run build:parser',
             test_runner: 'node test_runner.js'
         },
 

+ 0 - 24
grunt-tasks/grunt-peg.js

@@ -1,24 +0,0 @@
-module.exports = function (grunt) {
-
-    var PEG = require('pegjs');
-
-    /**
-     Full config looks like this:
-     pegjs: {
-     my_parser: {
-     options: {                       // optional
-     cache: true,                   // default: false
-     export_var: 'smalltalk.parser' // default: module.exports
-     },
-   */
-    grunt.registerMultiTask('peg', 'Generate JavaScript parser from PEG.js grammar description', function () {
-        var options = this.options({
-            cache: false,
-            output: 'source',
-            export_var: 'module.exports'
-        });
-        var parser = PEG.buildParser(grunt.file.read(this.data.src), options);
-        var content = "// jshint ignore:start\ndefine(['./boot'], function($boot) {\nvar $globals = $boot.globals;\n" + options.export_var + " = " + parser + ";\n});";
-        grunt.file.write(this.data.dest, content);
-    });
-};

+ 11 - 0
lang/package.json

@@ -22,5 +22,16 @@
   },
   "engines": {
     "node": ">=4.0.0"
+  },
+  "strings": {
+    "buildParserBegin": "// jshint ignore:start\ndefine(['./boot'], function($boot) {\nvar $globals = $boot.globals;\n",
+    "buildParserEnd": "});"
+  },
+  "scripts": {
+    "echos": "node -e \"process.stdout.write(require('./package.json').strings[process.argv[1]])\"",
+    "build:parser": "(npm run -s echos buildParserBegin && pegjs --cache --export-var \"$\"globals.SmalltalkParser < support/parser.pegjs && npm run -s echos buildParserEnd) > support/parser.js"
+  },
+  "devDependencies": {
+    "pegjs": "^0.9.0"
   }
 }

+ 0 - 7
package.json

@@ -24,13 +24,7 @@
   "engines": {
     "node": ">=4.0.0"
   },
-  "strings": {
-    "buildParserBegin": "// jshint ignore:start\ndefine(['./boot'], function($boot) {\nvar $globals = $boot.globals;\n",
-    "buildParserEnd": "});"
-  },
   "scripts": {
-    "echos": "node -e \"process.stdout.write(require('./package.json').strings[process.argv[1]])\"",
-    "build:parser": "(npm run -s echos buildParserBegin && pegjs --cache --export-var \"$\"globals.SmalltalkParser < lang/support/parser.pegjs && npm run -s echos buildParserEnd) > lang/support/parser.js",
     "test": "npm run test:sunit && npm run test:e2e",
     "test:sunit": "grunt test",
     "test:e2e": "(cd cli && npm test)"
@@ -42,7 +36,6 @@
     "grunt-contrib-jshint": "^1.1.0",
     "grunt-contrib-requirejs": "^1.0.0",
     "grunt-exec": "^2.0.0",
-    "pegjs": "^0.9.0",
     "requirejs": "^2.1.15"
   }
 }