@simahfud/pine-to-kline 0.1.0 → 0.1.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 (113) hide show
  1. package/dist/PineInterpreter.d.ts +19 -0
  2. package/dist/PineInterpreter.d.ts.map +1 -0
  3. package/dist/PineInterpreter.js +89 -0
  4. package/dist/PineInterpreter.js.map +1 -0
  5. package/dist/adapter/FigureMapper.d.ts +8 -0
  6. package/dist/adapter/FigureMapper.d.ts.map +1 -0
  7. package/dist/adapter/FigureMapper.js +22 -0
  8. package/dist/adapter/FigureMapper.js.map +1 -0
  9. package/dist/adapter/KlineAdapter.d.ts +11 -0
  10. package/dist/adapter/KlineAdapter.d.ts.map +1 -0
  11. package/dist/adapter/KlineAdapter.js +88 -0
  12. package/dist/adapter/KlineAdapter.js.map +1 -0
  13. package/dist/adapter/StyleMapper.d.ts +10 -0
  14. package/dist/adapter/StyleMapper.d.ts.map +1 -0
  15. package/dist/adapter/StyleMapper.js +28 -0
  16. package/dist/adapter/StyleMapper.js.map +1 -0
  17. package/dist/builtins/color/constants.d.ts +7 -0
  18. package/dist/builtins/color/constants.d.ts.map +1 -0
  19. package/dist/builtins/color/constants.js +25 -0
  20. package/dist/builtins/color/constants.js.map +1 -0
  21. package/dist/builtins/color/functions.d.ts +21 -0
  22. package/dist/builtins/color/functions.d.ts.map +1 -0
  23. package/dist/builtins/color/functions.js +52 -0
  24. package/dist/builtins/color/functions.js.map +1 -0
  25. package/dist/builtins/index.d.ts +15 -0
  26. package/dist/builtins/index.d.ts.map +1 -0
  27. package/dist/builtins/index.js +32 -0
  28. package/dist/builtins/index.js.map +1 -0
  29. package/dist/builtins/input/functions.d.ts +28 -0
  30. package/dist/builtins/input/functions.d.ts.map +1 -0
  31. package/dist/builtins/input/functions.js +114 -0
  32. package/dist/builtins/input/functions.js.map +1 -0
  33. package/dist/builtins/math/functions.d.ts +9 -0
  34. package/dist/builtins/math/functions.d.ts.map +1 -0
  35. package/dist/builtins/math/functions.js +57 -0
  36. package/dist/builtins/math/functions.js.map +1 -0
  37. package/dist/builtins/ta/crossover.d.ts +18 -0
  38. package/dist/builtins/ta/crossover.d.ts.map +1 -0
  39. package/dist/builtins/ta/crossover.js +59 -0
  40. package/dist/builtins/ta/crossover.js.map +1 -0
  41. package/dist/builtins/ta/index.d.ts +12 -0
  42. package/dist/builtins/ta/index.d.ts.map +1 -0
  43. package/dist/builtins/ta/index.js +61 -0
  44. package/dist/builtins/ta/index.js.map +1 -0
  45. package/dist/builtins/ta/momentum.d.ts +22 -0
  46. package/dist/builtins/ta/momentum.d.ts.map +1 -0
  47. package/dist/builtins/ta/momentum.js +81 -0
  48. package/dist/builtins/ta/momentum.js.map +1 -0
  49. package/dist/builtins/ta/moving-averages.d.ts +24 -0
  50. package/dist/builtins/ta/moving-averages.d.ts.map +1 -0
  51. package/dist/builtins/ta/moving-averages.js +108 -0
  52. package/dist/builtins/ta/moving-averages.js.map +1 -0
  53. package/dist/builtins/ta/utility.d.ts +28 -0
  54. package/dist/builtins/ta/utility.d.ts.map +1 -0
  55. package/dist/builtins/ta/utility.js +156 -0
  56. package/dist/builtins/ta/utility.js.map +1 -0
  57. package/dist/builtins/ta/volatility.d.ts +21 -0
  58. package/dist/builtins/ta/volatility.d.ts.map +1 -0
  59. package/dist/builtins/ta/volatility.js +71 -0
  60. package/dist/builtins/ta/volatility.js.map +1 -0
  61. package/dist/index.d.ts +21 -695
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +24 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/lexer/Lexer.d.ts +40 -0
  66. package/dist/lexer/Lexer.d.ts.map +1 -0
  67. package/dist/lexer/Lexer.js +383 -0
  68. package/dist/lexer/Lexer.js.map +1 -0
  69. package/dist/lexer/Token.d.ts +16 -0
  70. package/dist/lexer/Token.d.ts.map +1 -0
  71. package/dist/lexer/Token.js +26 -0
  72. package/dist/lexer/Token.js.map +1 -0
  73. package/dist/lexer/TokenType.d.ts +74 -0
  74. package/dist/lexer/TokenType.d.ts.map +1 -0
  75. package/dist/lexer/TokenType.js +111 -0
  76. package/dist/lexer/TokenType.js.map +1 -0
  77. package/dist/parser/Parser.d.ts +55 -0
  78. package/dist/parser/Parser.d.ts.map +1 -0
  79. package/dist/parser/Parser.js +569 -0
  80. package/dist/parser/Parser.js.map +1 -0
  81. package/dist/parser/nodes/index.d.ts +215 -0
  82. package/dist/parser/nodes/index.d.ts.map +1 -0
  83. package/dist/parser/nodes/index.js +7 -0
  84. package/dist/parser/nodes/index.js.map +1 -0
  85. package/dist/plugin/KlineChartProPlugin.d.ts +43 -0
  86. package/dist/plugin/KlineChartProPlugin.d.ts.map +1 -0
  87. package/dist/plugin/KlineChartProPlugin.js +44 -0
  88. package/dist/plugin/KlineChartProPlugin.js.map +1 -0
  89. package/dist/runtime/BarContext.d.ts +23 -0
  90. package/dist/runtime/BarContext.d.ts.map +1 -0
  91. package/dist/runtime/BarContext.js +41 -0
  92. package/dist/runtime/BarContext.js.map +1 -0
  93. package/dist/runtime/PineRuntime.d.ts +51 -0
  94. package/dist/runtime/PineRuntime.d.ts.map +1 -0
  95. package/dist/runtime/PineRuntime.js +471 -0
  96. package/dist/runtime/PineRuntime.js.map +1 -0
  97. package/dist/runtime/SeriesEmulator.d.ts +21 -0
  98. package/dist/runtime/SeriesEmulator.d.ts.map +1 -0
  99. package/dist/runtime/SeriesEmulator.js +32 -0
  100. package/dist/runtime/SeriesEmulator.js.map +1 -0
  101. package/dist/runtime/VarPersistence.d.ts +20 -0
  102. package/dist/runtime/VarPersistence.d.ts.map +1 -0
  103. package/dist/runtime/VarPersistence.js +28 -0
  104. package/dist/runtime/VarPersistence.js.map +1 -0
  105. package/dist/types.d.ts +97 -0
  106. package/dist/types.d.ts.map +1 -0
  107. package/dist/types.js +6 -0
  108. package/dist/types.js.map +1 -0
  109. package/dist/utils/errors.d.ts +24 -0
  110. package/dist/utils/errors.d.ts.map +1 -0
  111. package/dist/utils/errors.js +46 -0
  112. package/dist/utils/errors.js.map +1 -0
  113. package/package.json +1 -1
@@ -0,0 +1,111 @@
1
+ /**
2
+ * pine-to-kline — Token Types
3
+ * All PineScript v5/v6 token categories
4
+ * @license Apache-2.0
5
+ */
6
+ export var TokenType;
7
+ (function (TokenType) {
8
+ // ─── Literals ───────────────────────────
9
+ TokenType["NUMBER"] = "NUMBER";
10
+ TokenType["STRING"] = "STRING";
11
+ TokenType["COLOR_LITERAL"] = "COLOR_LITERAL";
12
+ // ─── Identifiers ───────────────────────
13
+ TokenType["IDENTIFIER"] = "IDENTIFIER";
14
+ // ─── Keywords ───────────────────────────
15
+ TokenType["IF"] = "IF";
16
+ TokenType["ELSE"] = "ELSE";
17
+ TokenType["FOR"] = "FOR";
18
+ TokenType["TO"] = "TO";
19
+ TokenType["BY"] = "BY";
20
+ TokenType["IN"] = "IN";
21
+ TokenType["WHILE"] = "WHILE";
22
+ TokenType["SWITCH"] = "SWITCH";
23
+ TokenType["VAR"] = "VAR";
24
+ TokenType["VARIP"] = "VARIP";
25
+ TokenType["TRUE"] = "TRUE";
26
+ TokenType["FALSE"] = "FALSE";
27
+ TokenType["NA"] = "NA";
28
+ TokenType["AND"] = "AND";
29
+ TokenType["OR"] = "OR";
30
+ TokenType["NOT"] = "NOT";
31
+ TokenType["IMPORT"] = "IMPORT";
32
+ TokenType["EXPORT"] = "EXPORT";
33
+ TokenType["TYPE"] = "TYPE";
34
+ TokenType["METHOD"] = "METHOD";
35
+ TokenType["BREAK"] = "BREAK";
36
+ TokenType["CONTINUE"] = "CONTINUE";
37
+ TokenType["RETURN"] = "RETURN";
38
+ // ─── Pine-specific Keywords ─────────────
39
+ TokenType["INDICATOR"] = "INDICATOR";
40
+ TokenType["STRATEGY"] = "STRATEGY";
41
+ TokenType["LIBRARY"] = "LIBRARY";
42
+ // ─── Arithmetic Operators ───────────────
43
+ TokenType["PLUS"] = "PLUS";
44
+ TokenType["MINUS"] = "MINUS";
45
+ TokenType["STAR"] = "STAR";
46
+ TokenType["SLASH"] = "SLASH";
47
+ TokenType["PERCENT"] = "PERCENT";
48
+ TokenType["POWER"] = "POWER";
49
+ // ─── Comparison Operators ───────────────
50
+ TokenType["EQ"] = "EQ";
51
+ TokenType["NEQ"] = "NEQ";
52
+ TokenType["LT"] = "LT";
53
+ TokenType["GT"] = "GT";
54
+ TokenType["LTE"] = "LTE";
55
+ TokenType["GTE"] = "GTE";
56
+ // ─── Assignment Operators ───────────────
57
+ TokenType["ASSIGN"] = "ASSIGN";
58
+ TokenType["REASSIGN"] = "REASSIGN";
59
+ TokenType["PLUS_ASSIGN"] = "PLUS_ASSIGN";
60
+ TokenType["MINUS_ASSIGN"] = "MINUS_ASSIGN";
61
+ TokenType["STAR_ASSIGN"] = "STAR_ASSIGN";
62
+ TokenType["SLASH_ASSIGN"] = "SLASH_ASSIGN";
63
+ TokenType["PERCENT_ASSIGN"] = "PERCENT_ASSIGN";
64
+ // ─── Delimiters ─────────────────────────
65
+ TokenType["LPAREN"] = "LPAREN";
66
+ TokenType["RPAREN"] = "RPAREN";
67
+ TokenType["LBRACKET"] = "LBRACKET";
68
+ TokenType["RBRACKET"] = "RBRACKET";
69
+ TokenType["COMMA"] = "COMMA";
70
+ TokenType["DOT"] = "DOT";
71
+ TokenType["COLON"] = "COLON";
72
+ TokenType["QUESTION"] = "QUESTION";
73
+ TokenType["ARROW"] = "ARROW";
74
+ // ─── Whitespace / Structure ─────────────
75
+ TokenType["NEWLINE"] = "NEWLINE";
76
+ TokenType["INDENT"] = "INDENT";
77
+ TokenType["DEDENT"] = "DEDENT";
78
+ TokenType["EOF"] = "EOF";
79
+ // ─── Comments & Annotations ─────────────
80
+ TokenType["COMMENT"] = "COMMENT";
81
+ TokenType["COMPILER_ANNOTATION"] = "COMPILER_ANNOTATION";
82
+ })(TokenType || (TokenType = {}));
83
+ /** Keywords map for fast lookup */
84
+ export const KEYWORDS = {
85
+ 'if': TokenType.IF,
86
+ 'else': TokenType.ELSE,
87
+ 'for': TokenType.FOR,
88
+ 'to': TokenType.TO,
89
+ 'by': TokenType.BY,
90
+ 'in': TokenType.IN,
91
+ 'while': TokenType.WHILE,
92
+ 'switch': TokenType.SWITCH,
93
+ 'var': TokenType.VAR,
94
+ 'varip': TokenType.VARIP,
95
+ 'true': TokenType.TRUE,
96
+ 'false': TokenType.FALSE,
97
+ 'na': TokenType.NA,
98
+ 'and': TokenType.AND,
99
+ 'or': TokenType.OR,
100
+ 'not': TokenType.NOT,
101
+ 'import': TokenType.IMPORT,
102
+ 'export': TokenType.EXPORT,
103
+ 'type': TokenType.TYPE,
104
+ 'method': TokenType.METHOD,
105
+ 'break': TokenType.BREAK,
106
+ 'continue': TokenType.CONTINUE,
107
+ 'return': TokenType.RETURN,
108
+ // Pine type keywords are treated as identifiers, not reserved
109
+ // (int, float, bool, string, color, etc.)
110
+ };
111
+ //# sourceMappingURL=TokenType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenType.js","sourceRoot":"","sources":["../../src/lexer/TokenType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAN,IAAY,SAoFX;AApFD,WAAY,SAAS;IACnB,2CAA2C;IAC3C,8BAA0B,CAAA;IAC1B,8BAA0B,CAAA;IAC1B,4CAAiC,CAAA;IAEjC,0CAA0C;IAC1C,sCAA8B,CAAA;IAE9B,2CAA2C;IAC3C,sBAAsB,CAAA;IACtB,0BAAwB,CAAA;IACxB,wBAAuB,CAAA;IACvB,sBAAsB,CAAA;IACtB,sBAAsB,CAAA;IACtB,sBAAsB,CAAA;IACtB,4BAAyB,CAAA;IACzB,8BAA0B,CAAA;IAC1B,wBAAuB,CAAA;IACvB,4BAAyB,CAAA;IACzB,0BAAwB,CAAA;IACxB,4BAAyB,CAAA;IACzB,sBAAsB,CAAA;IACtB,wBAAuB,CAAA;IACvB,sBAAsB,CAAA;IACtB,wBAAuB,CAAA;IACvB,8BAA0B,CAAA;IAC1B,8BAA0B,CAAA;IAC1B,0BAAwB,CAAA;IACxB,8BAA0B,CAAA;IAC1B,4BAAyB,CAAA;IACzB,kCAA4B,CAAA;IAC5B,8BAA0B,CAAA;IAE1B,2CAA2C;IAC3C,oCAA6B,CAAA;IAC7B,kCAA4B,CAAA;IAC5B,gCAA2B,CAAA;IAE3B,2CAA2C;IAC3C,0BAAwB,CAAA;IACxB,4BAAyB,CAAA;IACzB,0BAAwB,CAAA;IACxB,4BAAyB,CAAA;IACzB,gCAA2B,CAAA;IAC3B,4BAAyB,CAAA;IAEzB,2CAA2C;IAC3C,sBAAsB,CAAA;IACtB,wBAAuB,CAAA;IACvB,sBAAsB,CAAA;IACtB,sBAAsB,CAAA;IACtB,wBAAuB,CAAA;IACvB,wBAAuB,CAAA;IAEvB,2CAA2C;IAC3C,8BAA0B,CAAA;IAC1B,kCAA4B,CAAA;IAC5B,wCAA+B,CAAA;IAC/B,0CAAgC,CAAA;IAChC,wCAA+B,CAAA;IAC/B,0CAAgC,CAAA;IAChC,8CAAkC,CAAA;IAElC,2CAA2C;IAC3C,8BAA0B,CAAA;IAC1B,8BAA0B,CAAA;IAC1B,kCAA4B,CAAA;IAC5B,kCAA4B,CAAA;IAC5B,4BAAyB,CAAA;IACzB,wBAAuB,CAAA;IACvB,4BAAyB,CAAA;IACzB,kCAA4B,CAAA;IAC5B,4BAAyB,CAAA;IAEzB,2CAA2C;IAC3C,gCAA2B,CAAA;IAC3B,8BAA0B,CAAA;IAC1B,8BAA0B,CAAA;IAC1B,wBAAuB,CAAA;IAEvB,2CAA2C;IAC3C,gCAA2B,CAAA;IAC3B,wDAA2C,CAAA;AAC7C,CAAC,EApFW,SAAS,KAAT,SAAS,QAoFpB;AAED,mCAAmC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAA8B;IACjD,IAAI,EAAS,SAAS,CAAC,EAAE;IACzB,MAAM,EAAO,SAAS,CAAC,IAAI;IAC3B,KAAK,EAAQ,SAAS,CAAC,GAAG;IAC1B,IAAI,EAAS,SAAS,CAAC,EAAE;IACzB,IAAI,EAAS,SAAS,CAAC,EAAE;IACzB,IAAI,EAAS,SAAS,CAAC,EAAE;IACzB,OAAO,EAAM,SAAS,CAAC,KAAK;IAC5B,QAAQ,EAAK,SAAS,CAAC,MAAM;IAC7B,KAAK,EAAQ,SAAS,CAAC,GAAG;IAC1B,OAAO,EAAM,SAAS,CAAC,KAAK;IAC5B,MAAM,EAAO,SAAS,CAAC,IAAI;IAC3B,OAAO,EAAM,SAAS,CAAC,KAAK;IAC5B,IAAI,EAAS,SAAS,CAAC,EAAE;IACzB,KAAK,EAAQ,SAAS,CAAC,GAAG;IAC1B,IAAI,EAAS,SAAS,CAAC,EAAE;IACzB,KAAK,EAAQ,SAAS,CAAC,GAAG;IAC1B,QAAQ,EAAK,SAAS,CAAC,MAAM;IAC7B,QAAQ,EAAK,SAAS,CAAC,MAAM;IAC7B,MAAM,EAAO,SAAS,CAAC,IAAI;IAC3B,QAAQ,EAAK,SAAS,CAAC,MAAM;IAC7B,OAAO,EAAM,SAAS,CAAC,KAAK;IAC5B,UAAU,EAAG,SAAS,CAAC,QAAQ;IAC/B,QAAQ,EAAK,SAAS,CAAC,MAAM;IAC7B,8DAA8D;IAC9D,0CAA0C;CAC3C,CAAA"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * pine-to-kline — Parser
3
+ * Recursive descent parser: Token[] → AST (ProgramNode)
4
+ * @license Apache-2.0
5
+ */
6
+ import { Token } from '../lexer/Token';
7
+ import type { ProgramNode } from './nodes/index';
8
+ export declare class Parser {
9
+ private tokens;
10
+ private pos;
11
+ constructor(tokens: Token[]);
12
+ parse(): ProgramNode;
13
+ private parseStatement;
14
+ private parseIdentifierStatement;
15
+ private parseIndicator;
16
+ private parseVarDecl;
17
+ private parseTypedDecl;
18
+ private parseAssignment;
19
+ private parseTupleAssign;
20
+ private parseIf;
21
+ private parseFor;
22
+ private parseWhile;
23
+ private parseSwitch;
24
+ private parseReturn;
25
+ private isFunctionDef;
26
+ private parseFunctionDef;
27
+ private parsePlotCall;
28
+ private parseHlineCall;
29
+ private parseExpression;
30
+ private parseTernary;
31
+ private parseOr;
32
+ private parseAnd;
33
+ private parseComparison;
34
+ private parseAddition;
35
+ private parseMultiplication;
36
+ private parsePower;
37
+ private parseUnary;
38
+ private parsePostfix;
39
+ private parsePrimary;
40
+ private parseCallArgs;
41
+ private parseBlock;
42
+ private parseBlockOrExpr;
43
+ private buildCalleeName;
44
+ private peek;
45
+ private peekAt;
46
+ private previous;
47
+ private isAtEnd;
48
+ private advance;
49
+ private check;
50
+ private checkAny;
51
+ private match;
52
+ private expect;
53
+ private skipNewlines;
54
+ }
55
+ //# sourceMappingURL=Parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../src/parser/Parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAGtC,OAAO,KAAK,EACV,WAAW,EAOZ,MAAM,eAAe,CAAA;AAKtB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAI;gBAEH,MAAM,EAAE,KAAK,EAAE;IAI3B,KAAK,IAAI,WAAW;IA0BpB,OAAO,CAAC,cAAc;IAsCtB,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,OAAO;IA2Bf,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,YAAY;IAqDpB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;CAGrB"}