1048 Commits (f18cf30d762c4f1eb3a92934ea895fdcf151ae72)
 

Author SHA1 Message Date
Futago-za Ryuu f18cf30d76 Merge pull request #493 from AdhirRamjiawan/master
spelling error
7 years ago
Futago-za Ryuu 91c85d824d Merge pull request #494 from davidberneda/patch-1
Update arithmetics.pegjs
7 years ago
Futago-za Ryuu 624f87f66b README.md: Remove the notice about looking for a new maintainer [ci skip]
PEG.js has [a new maintainer](https://github.com/pegjs/pegjs/issues/503#issuecomment-303004127).
7 years ago
David Majda ba2f8bf3c2 README.md: Add a notice about looking for a new maintainer 7 years ago
David Berneda 962db9d090 Update arithmetics.pegjs
Allow spacing before digits like: "     2 * (3 + 4)"
7 years ago
Adhir Ramjiawan f861c2f476 spelling error 7 years ago
David Majda 205c55d309 Tests: s/Spec/Test/
Missed in f5a372b075 (I probably grepped
case-sensitively).
7 years ago
David Majda 2942fa1867 Tests: Make tracing tests more specific
Check that the console and the default tracer are called with specific
arguments in given order. Previously the order of calls wasn't checked.
7 years ago
David Majda 9cc35d2cab Tests: DRY up tracing tests 7 years ago
David Majda 5d6bd75619 Tests: Use "to.be.{a,an}" instead of "expect(typeof ...)" 7 years ago
David Majda 6817f3b964 Tests: Require specific modules instead of the whole library
Requiring the whole library was a relict from the time where the tests
were exercising the browser build when run in the browser.
7 years ago
David Majda 9f36131637 Use https: in links to majda.cz
This avoids redirects.
7 years ago
David Majda e0511a55d5 .travis.yml: Test also with Node.js 7.0.x 7 years ago
David Majda f982e1cfd1 README.md: Indicate that IE8 is unsupported
Should have been done as part of #441.
7 years ago
David Majda 95d1e0decf package.json: Use exact version of run-sequence
The package was added with a version range ("^") by mistake.
7 years ago
David Majda f5a372b075 Use "test" and "tests" instead of "spec" and "specs"
This reflects a convention used in most JavaScript projects. The change
involves renaming the "spec" directory, Gulp task, etc.
7 years ago
David Majda 73de2c9384 Switch from Jasmine to Mocha & Chai
The switch is mostly mechanical, with assertions translated 1:1. The
biggest non-mechanical part is rewriting Jasmine custom matchers as Chai
helpers. The matchers were streamlined and simplified in the process and
their messages were made more in line with messages produced by built-in
Chai helpers.

Fixes #409.
7 years ago
David Majda 266f17d11c Adapt to using HTTPS on PEG.js website
PEG.js website is now served exclusively using HTTPS. Change protocol in
all links to it to avoid redirects.
7 years ago
David Majda a733beb933 Remove unnecessary escaping of "]" in a regexp
This fixes the following ESLint error, which started to appear after
eslint/eslint#7424 was fixed:

  /Users/dmajda/Programming/PEG.js/pegjs/lib/compiler/js.js
    37:17  error  Unnecessary escape character: \]  no-useless-escape

This should fix broken Travis CI builds:

  https://travis-ci.org/pegjs/pegjs/builds/180092802
7 years ago
David Majda b5bd30c813 gulpfile.js: Use "run-sequence" to run default tasks
Instead of specifying tasks that are part of the "default" task using
dependencies and running them in parallel, execute them serially using
"run-sequence". This makes things deterministic and ensures that all
messages from all tasks are seen in the output (which wasn't the case
before, leading to confusion).
7 years ago
David Majda 9d12b500df .travis.yml: Separate entries with empty lines 8 years ago
David Majda b33f2b2d24 Remove VERSION
Version information is already present in package.json and no code uses
the VERSION file anymore. It doesn't make sense too keep it just for the
sake of following an old convention as it is a maintenance burden.
8 years ago
David Majda 9956b42392 Switch from Make to Gulp
The core of the transition is getting rid of Makefile and replacing it
with gulpfile.js. The rest is details (fixing dependencies, changing all
references to "make", etc.).

Target/task names mostly stay the same, so in most cases "gulp foo" does
what "make foo" did before. The only exceptions are "make browser" and
"make browserclean", which are now "gulp browser:build" and "gulp
browser:clean" (it feels more systematic).

Functionality is mostly unchanged (modulo Gulp clutter in the console),
but there are two small exceptions:

  gulp spec

    The reporter now displays just dots while previously it displayed
    spec descriptions. There is also a deprecation warning (most likely
    because I used an old version of gulp-jasmine in order to support
    Jasmine 1.x). I kept these issues unfixed because I plan to switch
    to Mocha soon (#409).

  gulp browser:build

    The copyright header is now added manually both to the development
    and minified build. Before, it was added only to the development
    build and the minified build relied on preserving it using "uglify
    --comments". This was broken since switching to //-style comments.

    There is now also an empty line between the header and the source
    code.

Fixes #444.
8 years ago
David Majda ef3abf33b9 Fix error when generating AMD/UMD dependencies
Generating AMD/UMD dependencies lead to an error:

  $ bin/pegjs --format amd --dependency $:jquery examples/arithmetics.pegjs
  dependencyIds is not defined

  $ bin/pegjs --format umd --dependency $:jquery examples/arithmetics.pegjs
  dependencyIds is not defined

This commit fixes the problem, which was caused by a mistake done in
d2569b9bf3.
8 years ago
David Majda 83d748d522 Code style: Make all static "require" calls global
The "global-require" rule is disabled in ESLint configuration used by
PEG.js, but the idea is not bad, so let's make all static "require"
calls global.

Follow-up to #407.
8 years ago
David Majda f4df9ddde1 Code style: Fix some ESLint errors in generated code
Running ESLint on generated code with the configuration used on PEG.js
itself produces a lot of errors. This commit fixes some unnecessary ones
caught by these rules:

  - max-len
  - new-cap
  - newline-before-return
  - no-unused-vars

See also 5dd8e797f7.

Follow-up to #407.
8 years ago
David Majda 7d6ad99e33 Code style: Remove unnecessary "eslint-disable" directives
Part of #407.
8 years ago
David Majda 8471b621a8 Code style: Fix ESLint "newline-before-return" errors
Part of #407.
8 years ago
David Majda 2cb94adba7 Code style: Fix ESLint "space-in-parens" errors
Part of #407.
8 years ago
David Majda 6c3565fc96 Code style: Fix ESLint "func-style" errors
Part of #407.
8 years ago
David Majda 88f115146d Code style: Fix ESLint "space-infix-ops" errors
Part of #407.
8 years ago
David Majda 80a9e03614 Code style: Fix ESLint "no-empty-function" errors
Part of #407.
8 years ago
David Majda fd07f64637 Code style: Fix ESLint "indent" errors
Part of #407.
8 years ago
David Majda e61ae59681 Code style: Fix ESLint "default-case" errors
Part of #407.
8 years ago
David Majda 364482dd68 Code style: Fix ESLint "no-prototype-builtins" errors
Part of #407.
8 years ago
David Majda 1870308afb Code style: Fix ESLint "object-shorthand" errors
Part of #407.
8 years ago
David Majda 6f34b542b4 Code style: Use eslint-config-dmajda ESLint configuration
This change leads to quite some errors being reported by ESLint. These
will be fixed in subsequent commits.

Part of #407.
8 years ago
David Majda 5dd8e797f7 Code style: Do not lint lib/parser.js
The idea behind linting lib/parser.js was that it would improve quality
of code generated by PEG.js in general. However, there is a couple of
problems with it:

  1. Code in lib/parser.js is ES5 while the rest of the code is ES2015.
     This would mean a separate ESLint configuration and a separate set
     of code style rules just for lib/parser.js once code style checks
     are added.

  2. Code in lib/parser.js is generated. This means that even today it
     violates checks like "no-unused-var", which have to be disabled.
     This would get worse once code style checks are added, again
     requiring a separate ESLint configuration just for lib/parser.js.

  3. Linting lib/parser.js checks only small portion of possible code
     generator output. For example, code generated when optimizing for
     size or when tracing is not checked at all. Thus, linting
     lib/parser.js gives a false sense of security.

Because of these problems I decided not to lint lib/parser.js at all and
rely on ad-hoc linting of parser files produced by PEG.js with ignoring
false-positives. I consider this more of a pragmatic cost vs. benefits
decision than a principial one.

Part of #407.
8 years ago
David Majda f82d9872ba Replace stray "var" by "let"
Likely missed in bdf91b5941.
8 years ago
David Majda 65afb7fd5d Remove unnecessary parens around arrow function parameters 8 years ago
David Majda 7495e6e03f Add missing semicolons 8 years ago
David Majda b81afb1471 Do not quote the "class" key
Quoting reserved words in property names is not needed since dropping
support of IE < 9.
8 years ago
David Majda fb26d6425b Remove extra newlines 8 years ago
David Majda 45b62d66d2 Whitespace fixes 8 years ago
David Majda 47bc456dcd Remove useless variable reference 8 years ago
David Majda ec3f7f5bb0 Remove extra indentation 8 years ago
David Majda 7ca229a432 Improve indentation of variable declarations
Before this commit, continuation lines of multi-line values in variable
declaration initializers were aligned with the variable name:

  let foo = {
        a: 5,
        b: 6
      };

This was highly irregular, maintenance intensive, and made declarations
look different from assignments.

This commit changes the indentation to be more regular and similar to
assignments:

  let foo = {
    a: 5,
    b: 6
  };
8 years ago
David Majda b5eb1a0ec4 Use eslint 3.6.1 8 years ago
David Majda ca5ac6bd5f LICENSE: Use more standard format
The LICENSE file used weird word wrapping and it didn't explicitly name
the license. I'm not sure where I originally copied it from.

I decided to replace it with more standard form from here:

  http://choosealicense.com/licenses/mit/

The content of the license stays exactly the same.
8 years ago
David Majda c0efd83394 benchmark/README.md: Fix command to execute the benchmark suite 8 years ago