yapp 2.2.180 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/example.js +295 -498
  2. package/lib/colours.js +3 -7
  3. package/lib/index.js +1 -9
  4. package/lib/lexer/javascript.js +6 -18
  5. package/lib/lexer/json.js +7 -20
  6. package/lib/lexer/plainText.js +7 -20
  7. package/lib/lexer/xml.js +6 -18
  8. package/lib/parser/javascript.js +10 -19
  9. package/lib/parser/json.js +10 -19
  10. package/lib/parser/plainText.js +10 -19
  11. package/lib/parser/xml.js +10 -19
  12. package/lib/plugin/javascript.js +3 -5
  13. package/lib/plugin/json.js +3 -5
  14. package/lib/plugin/plainText.js +3 -5
  15. package/lib/plugin/xml.js +3 -5
  16. package/lib/plugin.js +3 -2
  17. package/lib/processor/javascript.js +10 -6
  18. package/lib/scheme/syntax/javaScript.js +9 -5
  19. package/lib/style/syntax/javaScript.js +2 -2
  20. package/lib/{lexer/yapp.js → token/significant/jsx/attributeName.js} +33 -9
  21. package/lib/token/significant/{jsx.js → jsx/tagName.js} +12 -12
  22. package/lib/tokenTypes.js +9 -5
  23. package/package.json +1 -1
  24. package/src/colours.js +2 -3
  25. package/src/index.js +0 -2
  26. package/src/lexer/javascript.js +5 -8
  27. package/src/lexer/json.js +5 -8
  28. package/src/lexer/plainText.js +5 -9
  29. package/src/lexer/xml.js +4 -7
  30. package/src/parser/javascript.js +145 -135
  31. package/src/parser/json.js +16 -14
  32. package/src/parser/plainText.js +10 -8
  33. package/src/parser/xml.js +24 -22
  34. package/src/plugin/javascript.js +1 -1
  35. package/src/plugin/json.js +1 -1
  36. package/src/plugin/plainText.js +1 -1
  37. package/src/plugin/xml.js +1 -1
  38. package/src/plugin.js +5 -1
  39. package/src/processor/javascript.js +7 -8
  40. package/src/scheme/syntax/javaScript.js +5 -3
  41. package/src/style/syntax/javaScript.js +5 -6
  42. package/src/token/significant/jsx/attributeName.js +11 -0
  43. package/src/token/significant/jsx/tagName.js +11 -0
  44. package/src/tokenTypes.js +2 -1
  45. package/lib/parser/yapp.js +0 -132
  46. package/src/lexer/yapp.js +0 -5
  47. package/src/parser/yapp.js +0 -29
  48. package/src/token/significant/jsx.js +0 -11
package/src/plugin.js CHANGED
@@ -29,7 +29,11 @@ class Plugin {
29
29
  return this.node;
30
30
  }
31
31
 
32
- getLanguage() { return this.language; }
32
+ getLanguage() {
33
+ const { language } = this.constructor;
34
+
35
+ return language;
36
+ }
33
37
 
34
38
  setLexer(lexer) {
35
39
  this.lexer = lexer;
@@ -4,20 +4,19 @@ import { Query } from "occam-dom";
4
4
  import { characters } from "necessary";
5
5
 
6
6
  import Processor from "../processor";
7
- import JSXToken from "../token/significant/jsx";
8
7
  import ErrorToken from "../token/significant/error";
9
8
  import StringToken from "../token/significant/string";
10
9
  import VariableToken from "../token/significant/variable";
11
10
  import ArgumentToken from "../token/significant/argument";
11
+ import TagNameJSXToken from "../token/significant/jsx/tagName";
12
+ import AttributeNameJSXToken from "../token/significant/jsx/attributeName";
12
13
 
13
14
  const errorTerminalNodeQuery = Query.fromExpression("//error/@*"),
14
15
  jsxNonTerminalNodeQuery = Query.fromExpression("//jsx"),
15
- jsxTagTerminalNodeQuery = Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/@*"),
16
16
  variableTerminalNodeQuery = Query.fromExpression("//variable/@*"),
17
17
  jsxTagNameTerminalNodeQuery = Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/name/@*"),
18
18
  functionNonTerminalNodeQuery = Query.fromExpression("//functionBody|arrowFunction"),
19
- jsxTagAttributeTerminalNodeQuery = Query.fromExpression("//jsxAttribute/@*"),
20
- argumentVariableTerminalNodeQuery = Query.fromExpression("//argument//variable/@*"),
19
+ argumentVariableTerminalNodeQuery = Query.fromExpression("//argument/variable/@*"),
21
20
  jsxTagAttributeNameTerminalNodeQuery = Query.fromExpression("//jsxAttribute/name/@*"),
22
21
  variableDeclarationTerminalNodeQuery = Query.fromExpression("//var|let|const/variable/@*"),
23
22
  templateLiteralStringTerminalNodeQuery = Query.fromExpression("//templateLiteral/string/@*"),
@@ -38,10 +37,10 @@ export default class JavaScriptProcessor extends Processor {
38
37
 
39
38
  this.replaceTerminalNodesSignificantToken(tokens, node, (content) => (content === BACKTICK_CHARACTER) ? StringToken : null, templateLiteralDelimiterTerminalNodeQuery);
40
39
 
41
- jsxNonTerminalNodes.forEach((jsxNonTerminalNode) => this.replaceTerminalNodesSignificantToken(tokens, jsxNonTerminalNode, (content) => JSXToken, jsxTagTerminalNodeQuery,
42
- jsxTagNameTerminalNodeQuery,
43
- jsxTagAttributeTerminalNodeQuery,
44
- jsxTagAttributeNameTerminalNodeQuery));
40
+ jsxNonTerminalNodes.forEach((jsxNonTerminalNode) => {
41
+ this.replaceTerminalNodesSignificantToken(tokens, jsxNonTerminalNode, (content) => TagNameJSXToken, jsxTagNameTerminalNodeQuery);
42
+ this.replaceTerminalNodesSignificantToken(tokens, jsxNonTerminalNode, (content) => AttributeNameJSXToken, jsxTagAttributeNameTerminalNodeQuery);
43
+ });
45
44
 
46
45
  functionNonTerminalNodes.forEach((functionNonTerminalNode) => {
47
46
  const argumentNames = this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, (content) => ArgumentToken, argumentVariableTerminalNodeQuery),
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { springWood, cadetBlue, tahiti } from "../../colours";
4
-
5
- export const jsxColour = springWood;
3
+ import { celery, tahiti, sycamore, cadetBlue } from "../../colours";
6
4
 
7
5
  export const argumentColour = tahiti;
8
6
 
9
7
  export const variableColour = cadetBlue;
8
+
9
+ export const jsxTagNameColour = sycamore;
10
+
11
+ export const jsxAttributeNameColour = celery;
@@ -1,18 +1,17 @@
1
1
  "use strict";
2
2
 
3
- import { jsxColour, argumentColour, variableColour } from "../../scheme/syntax/javaScript";
3
+ import { argumentColour, variableColour, jsxTagNameColour, jsxAttributeNameColour } from "../../scheme/syntax/javaScript";
4
4
 
5
5
  const javaScriptSyntaxStyle = `
6
6
 
7
- .javascript.syntax > .jsx {
8
- color: ${jsxColour};
9
- font-weight: bold;
10
- }
11
-
12
7
  .javascript.syntax > .variable { color: ${variableColour}; }
13
8
 
14
9
  .javascript.syntax > .argument { color: ${argumentColour}; }
15
10
 
11
+ .javascript.syntax > .jsx-tag-name { color: ${jsxTagNameColour};}
12
+
13
+ .javascript.syntax > .jsx-attribute-name { color: ${jsxAttributeNameColour};}
14
+
16
15
  `;
17
16
 
18
17
  export default javaScriptSyntaxStyle;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ import { SignificantToken } from "occam-lexers";
4
+
5
+ import { JSX_ATTRIBUTE_NAME_TOKEN_TYPE } from "../../../tokenTypes";
6
+
7
+ const type = JSX_ATTRIBUTE_NAME_TOKEN_TYPE; ///
8
+
9
+ export default class JSXAttributeNameToken extends SignificantToken {
10
+ static fromContent(content) { return SignificantToken.fromContentAndType(JSXAttributeNameToken, content, type); }
11
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ import { SignificantToken } from "occam-lexers";
4
+
5
+ import { JSX_TAG_NAME_TOKEN_TYPE } from "../../../tokenTypes";
6
+
7
+ const type = JSX_TAG_NAME_TOKEN_TYPE; ///
8
+
9
+ export default class JSXTagNameToken extends SignificantToken {
10
+ static fromContent(content) { return SignificantToken.fromContentAndType(JSXTagNameToken, content, type); }
11
+ }
package/src/tokenTypes.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
- export const JSX_TOKEN_TYPE = "jsx";
4
3
  export const NAME_TOKEN_TYPE = "name";
5
4
  export const ERROR_TOKEN_TYPE = "error";
6
5
  export const COMMENT_TOKEN_TYPE = "comment";
7
6
  export const ARGUMENT_TOKEN_TYPE = "argument";
8
7
  export const VARIABLE_TOKEN_TYPE = "variable";
9
8
  export const ATTRIBUTE_TOKEN_TYPE = "attribute";
9
+ export const JSX_TAG_NAME_TOKEN_TYPE = "jsx-tag-name";
10
+ export const JSX_ATTRIBUTE_NAME_TOKEN_TYPE = "jsx-attribute-name";
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return YappParser;
9
- }
10
- });
11
- var _occamParsers = require("occam-parsers");
12
- var _occamGrammarUtilities = require("occam-grammar-utilities");
13
- function _assertThisInitialized(self) {
14
- if (self === void 0) {
15
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
- }
17
- return self;
18
- }
19
- function _classCallCheck(instance, Constructor) {
20
- if (!(instance instanceof Constructor)) {
21
- throw new TypeError("Cannot call a class as a function");
22
- }
23
- }
24
- function _defineProperties(target, props) {
25
- for(var i = 0; i < props.length; i++){
26
- var descriptor = props[i];
27
- descriptor.enumerable = descriptor.enumerable || false;
28
- descriptor.configurable = true;
29
- if ("value" in descriptor) descriptor.writable = true;
30
- Object.defineProperty(target, descriptor.key, descriptor);
31
- }
32
- }
33
- function _createClass(Constructor, protoProps, staticProps) {
34
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
35
- if (staticProps) _defineProperties(Constructor, staticProps);
36
- return Constructor;
37
- }
38
- function _getPrototypeOf(o) {
39
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
40
- return o.__proto__ || Object.getPrototypeOf(o);
41
- };
42
- return _getPrototypeOf(o);
43
- }
44
- function _inherits(subClass, superClass) {
45
- if (typeof superClass !== "function" && superClass !== null) {
46
- throw new TypeError("Super expression must either be null or a function");
47
- }
48
- subClass.prototype = Object.create(superClass && superClass.prototype, {
49
- constructor: {
50
- value: subClass,
51
- writable: true,
52
- configurable: true
53
- }
54
- });
55
- if (superClass) _setPrototypeOf(subClass, superClass);
56
- }
57
- function _possibleConstructorReturn(self, call) {
58
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
59
- return call;
60
- }
61
- return _assertThisInitialized(self);
62
- }
63
- function _setPrototypeOf(o, p) {
64
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
65
- o.__proto__ = p;
66
- return o;
67
- };
68
- return _setPrototypeOf(o, p);
69
- }
70
- var _typeof = function(obj) {
71
- "@swc/helpers - typeof";
72
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
73
- };
74
- function _isNativeReflectConstruct() {
75
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
76
- if (Reflect.construct.sham) return false;
77
- if (typeof Proxy === "function") return true;
78
- try {
79
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
80
- return true;
81
- } catch (e) {
82
- return false;
83
- }
84
- }
85
- function _createSuper(Derived) {
86
- var hasNativeReflectConstruct = _isNativeReflectConstruct();
87
- return function _createSuperInternal() {
88
- var Super = _getPrototypeOf(Derived), result;
89
- if (hasNativeReflectConstruct) {
90
- var NewTarget = _getPrototypeOf(this).constructor;
91
- result = Reflect.construct(Super, arguments, NewTarget);
92
- } else {
93
- result = Super.apply(this, arguments);
94
- }
95
- return _possibleConstructorReturn(this, result);
96
- };
97
- }
98
- var rulesFromBNF = _occamGrammarUtilities.parserUtilities.rulesFromBNF, parserFromRules = _occamGrammarUtilities.parserUtilities.parserFromRules;
99
- var YappParser = /*#__PURE__*/ function(CommonParser) {
100
- _inherits(YappParser, CommonParser);
101
- var _super = _createSuper(YappParser);
102
- function YappParser() {
103
- _classCallCheck(this, YappParser);
104
- return _super.apply(this, arguments);
105
- }
106
- _createClass(YappParser, null, [
107
- {
108
- key: "fromNothing",
109
- value: function fromNothing(Class) {
110
- var bnf = Class.bnf, rules = rulesFromBNF(bnf), parser = parserFromRules(Class, rules);
111
- return parser;
112
- }
113
- },
114
- {
115
- key: "fromBNF",
116
- value: function fromBNF(Class, bnf) {
117
- var rules = rulesFromBNF(bnf), parser = parserFromRules(Class, rules);
118
- return parser;
119
- }
120
- },
121
- {
122
- key: "fromRules",
123
- value: function fromRules(Class, rules) {
124
- var parser = parserFromRules(Class, rules);
125
- return parser;
126
- }
127
- }
128
- ]);
129
- return YappParser;
130
- }(_occamParsers.CommonParser);
131
-
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIveWFwcC5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ29tbW9uUGFyc2VyIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IHBhcnNlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1ncmFtbWFyLXV0aWxpdGllc1wiO1xuXG5jb25zdCB7IHJ1bGVzRnJvbUJORiwgcGFyc2VyRnJvbVJ1bGVzIH0gPSBwYXJzZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFlhcHBQYXJzZXIgZXh0ZW5kcyBDb21tb25QYXJzZXIge1xuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MpIHtcbiAgICBjb25zdCB7IGJuZiB9ID0gQ2xhc3MsXG4gICAgICAgICAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKSxcbiAgICAgICAgICBwYXJzZXIgPSBwYXJzZXJGcm9tUnVsZXMoQ2xhc3MsIHJ1bGVzKTtcblxuICAgIHJldHVybiBwYXJzZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbUJORihDbGFzcywgYm5mKSB7XG4gICAgY29uc3QgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKSxcbiAgICAgICAgICBwYXJzZXIgPSBwYXJzZXJGcm9tUnVsZXMoQ2xhc3MsIHJ1bGVzKTtcblxuICAgIHJldHVybiBwYXJzZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVzKENsYXNzLCBydWxlcykge1xuICAgIGNvbnN0IHBhcnNlciA9IHBhcnNlckZyb21SdWxlcyhDbGFzcywgcnVsZXMpO1xuXG4gICAgcmV0dXJuIHBhcnNlcjtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJZYXBwUGFyc2VyIiwicnVsZXNGcm9tQk5GIiwicGFyc2VyVXRpbGl0aWVzIiwicGFyc2VyRnJvbVJ1bGVzIiwiZnJvbU5vdGhpbmciLCJDbGFzcyIsImJuZiIsInJ1bGVzIiwicGFyc2VyIiwiZnJvbUJORiIsImZyb21SdWxlcyIsIkNvbW1vblBhcnNlciJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7Ozs7O2VBT1FBLFVBQVU7Ozs0QkFMRixlQUFlO3FDQUNaLHlCQUF5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekQsSUFBUUMsWUFBWSxHQUFzQkMsc0JBQWUsZ0JBQUEsQ0FBakRELFlBQVksRUFBRUUsZUFBZSxHQUFLRCxzQkFBZSxnQkFBQSxDQUFuQ0MsZUFBZSxBQUFxQjtBQUUzQyxJQUFBLEFBQU1ILFVBQVUsaUJBQWhCOzs7YUFBTUEsVUFBVTs7Ozs7O1lBQ3RCSSxHQUFXLEVBQVhBLGFBQVc7bUJBQWxCLFNBQU9BLFdBQVcsQ0FBQ0MsS0FBSyxFQUFFO2dCQUN4QixJQUFNLEFBQUVDLEdBQUcsR0FBS0QsS0FBSyxDQUFiQyxHQUFHLEFBQVUsRUFDZkMsS0FBSyxHQUFHTixZQUFZLENBQUNLLEdBQUcsQ0FBQyxFQUN6QkUsTUFBTSxHQUFHTCxlQUFlLENBQUNFLEtBQUssRUFBRUUsS0FBSyxDQUFDLEFBQUM7Z0JBRTdDLE9BQU9DLE1BQU0sQ0FBQzthQUNmOzs7WUFFTUMsR0FBTyxFQUFQQSxTQUFPO21CQUFkLFNBQU9BLE9BQU8sQ0FBQ0osS0FBSyxFQUFFQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQU1DLEtBQUssR0FBR04sWUFBWSxDQUFDSyxHQUFHLENBQUMsRUFDekJFLE1BQU0sR0FBR0wsZUFBZSxDQUFDRSxLQUFLLEVBQUVFLEtBQUssQ0FBQyxBQUFDO2dCQUU3QyxPQUFPQyxNQUFNLENBQUM7YUFDZjs7O1lBRU1FLEdBQVMsRUFBVEEsV0FBUzttQkFBaEIsU0FBT0EsU0FBUyxDQUFDTCxLQUFLLEVBQUVFLEtBQUssRUFBRTtnQkFDN0IsSUFBTUMsTUFBTSxHQUFHTCxlQUFlLENBQUNFLEtBQUssRUFBRUUsS0FBSyxDQUFDLEFBQUM7Z0JBRTdDLE9BQU9DLE1BQU0sQ0FBQzthQUNmOzs7O0NBQ0YsQ0FyQnVDRyxhQUFZLGFBQUEsQ0FxQm5EIn0=
package/src/lexer/yapp.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- import { CommonLexer } from "occam-lexers";
4
-
5
- export default class YappLexer extends CommonLexer {}
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- import { CommonParser } from "occam-parsers";
4
- import { parserUtilities } from "occam-grammar-utilities";
5
-
6
- const { rulesFromBNF, parserFromRules } = parserUtilities;
7
-
8
- export default class YappParser extends CommonParser {
9
- static fromNothing(Class) {
10
- const { bnf } = Class,
11
- rules = rulesFromBNF(bnf),
12
- parser = parserFromRules(Class, rules);
13
-
14
- return parser;
15
- }
16
-
17
- static fromBNF(Class, bnf) {
18
- const rules = rulesFromBNF(bnf),
19
- parser = parserFromRules(Class, rules);
20
-
21
- return parser;
22
- }
23
-
24
- static fromRules(Class, rules) {
25
- const parser = parserFromRules(Class, rules);
26
-
27
- return parser;
28
- }
29
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- import { SignificantToken } from "occam-lexers";
4
-
5
- import { JSX_TOKEN_TYPE } from "../../tokenTypes";
6
-
7
- const type = JSX_TOKEN_TYPE; ///
8
-
9
- export default class JSXToken extends SignificantToken {
10
- static fromContent(content) { return SignificantToken.fromContentAndType(JSXToken, content, type); }
11
- }