From 5a2a68bbfab18e9a781c3ddd3422dd6a14f87a29 Mon Sep 17 00:00:00 2001 From: Novus Nota <68142933+novusnota@users.noreply.github.com> Date: Wed, 18 Sep 2024 22:03:57 +0200 Subject: [PATCH 1/3] feat: update FunC from 0.2.0 to 0.4.4 and significantly enhance its capabilities --- components/prism-func.js | 203 +++++++++++++++++++++++++++------------ 1 file changed, 143 insertions(+), 60 deletions(-) diff --git a/components/prism-func.js b/components/prism-func.js index 056e0cc..ad6b0ad 100644 --- a/components/prism-func.js +++ b/components/prism-func.js @@ -1,60 +1,143 @@ -/** - * @file Prism.js definition for FunC - * @link https://docs.ton.org/develop/func/overview - * @version 0.2.0 - * @author Nikita Sobolev (https://github.com/sobolevn) - * @license MIT - */ -(function (Prism) { - // 1. Does not start from " - // 2. Can start from ` and end with `, containing any character - // 3. Starts with underscore or { or } and have more than 1 character after it - // 4. Starts with letter, contains letters, numbers and underscores - var identifier = /(?!")(`([^`]+)`|((?=_)_|(?=\{)\{|(?=\})\}|(?![_`{}]))([^;,\[\]\(\)\s~.]+))/; - var string = /"[^\n"]+"[Hhcusa]?/; - var number = /\b([\d_]+|0x[\d_a-fA-F]+|0b[1_0]+)\b/; - - Prism.languages.func = { - 'include': { - pattern: /#include(.*);/, - inside: { - 'keyword': /#include/, - 'string': string, - 'punctuation': /;/ - }, - }, - 'pragma': { - pattern: /#pragma(.*);/, - inside: { - 'keyword': /#pragma|not-version|version/, - 'number': /(\d+)(.\d+)?(.\d+)?/, - 'operator': [/>=/, /<=/, /=/, />/, /|>=|<=|!=|==|~>>=|~>>|\/%|\^%=|\^%|~%|\^\/=|\^\/|~\/=|~\/|\+=|-=|\*=|\/=|%=|<<=|>>=|\^>>=|\^>>|&=|>>|<<|\^=|\|=|\^|=|~|\/|%|-|\*|\+|>|<|&|\||:|\?)/, - 'punctuation': /[\.;\(\),\[\]~\{\}]/, - }; -}(Prism)); \ No newline at end of file +/** + * @file Prism.js definition for FunC + * @link https://docs.ton.org/develop/func/overview + * @version 0.4.4 + * @author Novus Nota (https://github.com/novusnota) + * @author Nikita Sobolev (https://github.com/sobolevn) + * @license MIT + */ +(function(Prism) { + /** @type {Prism.GrammarValue} */ + var number = /-?\b(?:\d+|0x[\da-fA-F]+)\b(?![^\.~,;\[\]\(\)\s])/; + + /** @type {Prism.GrammarValue} */ + var string = [ + { // multi-line + pattern: /"""[\s\S]*?"""[Hhcusa]?/, + greedy: true, + inside: { + // string type + 'symbol': { + pattern: /("""[\s\S]*?""")[Hhcusa]/, + lookbehind: true, + greedy: true, + } + }, + }, + { // single-line + pattern: /"[^\n"]*"[Hhcusa]?/, + greedy: true, + inside: { + // string type + 'symbol': { + pattern: /("[^\n"]*")[Hhcusa]/, + lookbehind: true, + greedy: true, + } + }, + }, + ]; + + /** @type {Prism.GrammarValue} */ + var operator = /(?:!=|\?|:|%=|%|&=|&|\*=|\*|\+=|\+|->|-=|-|\/%|\/=|\/|<=>|<<=|<<|<=|<|==|=|>>=|>>|>=|>|\^>>=|\^>>|\^=|\^\/=|\^\/|\^%=|\^%|\^|\|=|\||~>>=|~>>|~\/=|~\/|~%|~)(?=\s)/; + + /** @type {RegExp[]} */ + var var_identifier = [ + // quoted + /`[^`\n]+`/, + // plain + /[^\.~,;\[\]\(\)\s]+/ + ]; + + /** Prism.js definition for FunC */ + Prism.languages.func = { + 'comment': [ + { // single-line + pattern: /;;.*/, + lookbehind: true, + greedy: true, + }, + { // multi-line, not nested (TODO: nesting) + // . isn't used, because it only applies to the single line + pattern: /\{-[\s\S]*?(?:-\}|$)/, + lookbehind: true, + greedy: true, + }, + { + // unused variable identifier + pattern: /\b_\b(?![^\.~,;\[\]\(\)\s])/ + }, + ], + + // Custom token for #pragma's + 'pragma': { + pattern: /#pragma(.*);/, + inside: { + 'keyword': /(?:#pragma|test-version-set|not-version|version|allow-post-modification|compute-asm-ltr)\b/, + 'number': /(?:\d+)(?:.\d+)?(?:.\d+)?/, + 'operator': /=|\^|<=|>=|<|>/, + 'string': string, + 'punctuation': /;/, + } + }, + + // Custom token for #include's + 'include': { + pattern: /#include(.*);/, + inside: { + 'keyword': /#include\b/, + 'string': string, + 'punctuation': /;/, + } + }, + + // builtin types + 'builtin': /\b(?:int|cell|slice|builder|cont|tuple|type)\b/, + + // builtin constants + 'boolean': /\b(?:false|true|nil|Nil)\b/, + + 'keyword': /\b(?:forall|extern|global|asm|impure|inline_ref|inline|auto_apply|method_id|operator|infixl|infixr|infix|const|return|var|repeat|do|while|until|try|catch|ifnot|if|then|elseifnot|elseif|else)\b/, + + 'number': number, + + 'string': string, + + 'operator': operator, + + 'punctuation': [/[\.,;\(\)\[\]]/, /[\{\}](?![^\.~,;\[\]\(\)\s])/], + + // Function and method names in declarations, definitions and calls + 'function': [ + { // quoted + pattern: new RegExp(var_identifier[0].source + /(?=\s*\()/.source), + greedy: true, + }, + { // bitwise not operator + pattern: /~_/, + greedy: true, + }, + { // remaining operators + pattern: new RegExp(/\^?_/.source + operator.source + /_/.source), + greedy: true, + }, + { // plain function or method name + pattern: new RegExp(/[\.~]?/.source + var_identifier[1].source + /(?=\s*\()/.source), + greedy: true, + }, + { // builtin functions and methods + pattern: /\b(?:divmod|moddiv|muldiv|muldivr|muldivc|muldivmod|null\?|throw|throw_if|throw_unless|throw_arg|throw_arg_if|throw_arg_unless|load_int|load_uint|preload_int|preload_uint|store_int|store_uint|load_bits|preload_bits|int_at|cell_at|slice_at|tuple_at|at|touch|touch2|run_method0|run_method1|run_method2|run_method3|~divmod|~moddiv|~store_int|~store_uint|~touch|~touch2|~dump|~stdump)\b/, + greedy: true, + }, + ], + + // Parametric polymorphism + 'class-name': /[A-Z][^\.~,;\[\]\(\)\s]*/, + + // All the rest of identifiers + 'variable': var_identifier.map(x => { return { pattern: x, greedy: true } }), + }; + + // Adding a fc alias + Prism.languages.fc = Prism.languages.func; +}(Prism)); From e78b44aa72271af0ad014989a9b286e25db2ee51 Mon Sep 17 00:00:00 2001 From: Novus Nota <68142933+novusnota@users.noreply.github.com> Date: Wed, 18 Sep 2024 22:04:12 +0200 Subject: [PATCH 2/3] feat: update Tact from 1.2.0 to 1.5.0 --- components/prism-tact.js | 339 ++++++++++++++++++++------------------- 1 file changed, 171 insertions(+), 168 deletions(-) diff --git a/components/prism-tact.js b/components/prism-tact.js index 80f0832..2c806c0 100644 --- a/components/prism-tact.js +++ b/components/prism-tact.js @@ -1,168 +1,171 @@ -/** - * @file Prism.js definition for Tact - * @link https://tact-lang.org - * @version 1.2.0 - * @author Novus Nota (https://github.com/novusnota) - * @license MIT - */ -(function(Prism) { - Prism.languages.tact = { - // reserved keywords - 'keyword': [ - { - pattern: /\b(?:abstract|as|catch|const|contract(?!:)|do|else|extend|extends|foreach|fun|get|if|in|import|initOf|inline|let|message(?!:)|mutates|native|override|primitive|public|repeat|return|self|struct(?!:)|trait(?!:)|try|until|virtual|while|with)\b/, - }, - { // keyword after as - pattern: /(\bas\s+)\w+/, - lookbehind: true, - greedy: true, - }, - { // reserved function names - pattern: /\b(?:bounced|external|init|receive)\b/ - }, - ], - - // built-in types - 'builtin': { - pattern: /\b(?:Address|Bool|Builder|Cell|Int|Slice|String|StringBuilder)\b/, - }, - - // SCREAMING_SNAKE_CASE for null values and names of constants - 'constant': [ - { - pattern: /\bnull\b/, - }, - { - pattern: /\b[A-Z][A-Z0-9_]*\b/, - }, - ], - - // UpperCamelCase for names of contracts, traits, structs, messages - 'class-name': { - pattern: /\b[A-Z]\w*\b/, - }, - - // mappings to FunC - 'attribute': [ - { // functions - pattern: /@name/, - inside: { - 'function': /.+/, - }, - }, - { // contract interfaces - pattern: /@interface/, - inside: { - 'function': /.+/, - } - } - ], - - 'function': { - pattern: /\b\w+(?=\()/, - }, - - 'boolean': { - pattern: /\b(?:false|true)\b/, - }, - - 'number': [ - { // hexadecimal, case-insensitive /i - pattern: /\b0x[0-9a-f](?:_?[0-9a-f])*\b/i, - }, - { // octal, case-insensitive /i - pattern: /\b0o[0-7](?:_?[0-7])*\b/i, - }, - { // binary, case-insensitive /i - pattern: /\b0b[01](?:_?[01])*\b/i, - }, - { // decimal integers, starting with 0 - pattern: /\b0\d*\b/, - }, - { // other decimal integers - pattern: /\b[1-9](?:_?\d)*\b/, - }, - ], - - 'string': undefined, - - 'punctuation': { - pattern: /[{}[\]();,.:?]/, - }, - - 'comment': [ - { // single-line - pattern: /(^|[^\\:])\/\/.*/, - lookbehind: true, - greedy: true, - }, - { // multi-line - pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, - lookbehind: true, - greedy: true, - } - ], - - 'operator': { - 'pattern': /![!=]?|[+\-*/%=]=?|[<>]=|<>?|\|\|?|&&?|\^/, - }, - - }; - - // strings, made this way to not collide with other entities - Prism.languages.insertBefore('tact', 'string', { - 'string-literal': { - pattern: /(?:(")(?:\\.|(?!\1)[^\\\r\n])*\1(?!\1))/, - greedy: true, - inside: { - 'regex': [ - { // \\ \" \n \r \t \v \b \f - pattern: /\\[\\"nrtvbf]/, - }, - { // hexEscape, \x00 through \xFF - pattern: /\\x[0-9a-fA-F]{2}/, - }, - { // unicodeEscape, \u0000 through \uFFFF - pattern: /\\u[0-9a-fA-F]{4}/, - }, - { // unicodeCodePoint, \u{0} through \u{FFFFFF} - pattern: /\\u\{[0-9a-fA-F]{1,6}\}/, - }, - ], - 'string': { - pattern: /[\s\S]+/, - }, - }, - }, - }); - - // map and bounced message generic type modifiers - Prism.languages.insertBefore('tact', 'keyword', { - 'generics': { - pattern: /(?:\b(?:bounced|map)\b<[^\\\r\n]*>)/, - greedy: true, - inside: { - 'builtin': [ - Prism.languages['tact']['builtin'], - { - pattern: /\b(?:bounced(?=<)|map(?=<))\b/ - }, - ], - 'class-name': Prism.languages['tact']['class-name'], - 'punctuation': { - pattern: /[<>(),.?]/, - }, - 'keyword': [ - { - pattern: /\bas\b/, - }, - { - pattern: /(\bas\s+)\w+/, - lookbehind: true, - greedy: true, - }, - ], - }, - }, - }); -}(Prism)); \ No newline at end of file +/** + * @file Prism.js definition for Tact + * @link https://tact-lang.org + * @version 1.5.0 + * @author Novus Nota (https://github.com/novusnota) + * @license MIT + */ +(function(Prism) { + Prism.languages.tact = { + // reserved keywords + 'keyword': [ + { + pattern: /\b(?:abstract|asm|as|catch|const|contract(?!:)|do|else|extend|extends|foreach|fun|get|if|in|import|initOf|inline|let|message(?!:)|mutates|native|override|primitive|public|repeat|return|self|struct(?!:)|trait(?!:)|try|until|virtual|while|with)\b/, + }, + { // reserved function names + pattern: /\b(?:bounced|external|init|receive)\b(?=\()/ + }, + ], + + // built-in types + 'builtin': [ + { + pattern: /\b(?:Address|Bool|Builder|Cell|Int|Slice|String|StringBuilder)\b/, + }, + { // keyword after as, see: https://prismjs.com/extending.html#object-notation + pattern: /(\bas\s+)(?:coins|remaining|bytes32|bytes64|int257|u?int(?:2[0-5][0-6]|1[0-9][0-9]|[1-9][0-9]?))\b/, + lookbehind: true, + greedy: true, + }, + ], + + // SCREAMING_SNAKE_CASE for null values and names of constants + 'constant': [ + { + pattern: /\bnull\b/, + }, + { + pattern: /\b[A-Z][A-Z0-9_]*\b/, + }, + ], + + // UpperCamelCase for names of contracts, traits, structs, messages + 'class-name': { + pattern: /\b[A-Z]\w*\b/, + }, + + // mappings to FunC + 'attribute': [ + { // functions + pattern: /@name/, + inside: { + 'function': /.+/, + }, + }, + { // contract interfaces + pattern: /@interface/, + inside: { + 'function': /.+/, + } + } + ], + + 'function': { + pattern: /\b\w+(?=\()/, + }, + + 'boolean': { + pattern: /\b(?:false|true)\b/, + }, + + 'number': [ + { // hexadecimal, case-insensitive /i + pattern: /\b0x[0-9a-f](?:_?[0-9a-f])*\b/i, + }, + { // octal, case-insensitive /i + pattern: /\b0o[0-7](?:_?[0-7])*\b/i, + }, + { // binary, case-insensitive /i + pattern: /\b0b[01](?:_?[01])*\b/i, + }, + { // decimal integers, starting with 0 + pattern: /\b0\d*\b/, + }, + { // other decimal integers + pattern: /\b[1-9](?:_?\d)*\b/, + }, + ], + + 'string': undefined, + + 'punctuation': { + pattern: /[{}[\]();,.:?]/, + }, + + 'comment': [ + { // single-line + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true, + greedy: true, + }, + { // multi-line + pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, + lookbehind: true, + greedy: true, + }, + { + // unused variable identifier + pattern: /\b_\b/ + } + ], + + 'operator': { + 'pattern': /![!=]?|->|[+\-*/%=]=?|[<>]=|<>?|~|\|[\|=]?|&[&=]?|\^=?/, + }, + + 'variable': { + 'pattern': /\b[a-zA-Z_]\w*\b/, + }, + + }; + + // strings, made this way to not collide with other entities + Prism.languages.insertBefore('tact', 'string', { + 'string-literal': { + pattern: /(?:(")(?:\\.|(?!\1)[^\\\r\n])*\1(?!\1))/, + greedy: true, + inside: { + 'regex': [ + { // \\ \" \n \r \t \v \b \f + pattern: /\\[\\"nrtvbf]/, + }, + { // hexEscape, \x00 through \xFF + pattern: /\\x[0-9a-fA-F]{2}/, + }, + { // unicodeEscape, \u0000 through \uFFFF + pattern: /\\u[0-9a-fA-F]{4}/, + }, + { // unicodeCodePoint, \u{0} through \u{FFFFFF} + pattern: /\\u\{[0-9a-fA-F]{1,6}\}/, + }, + ], + 'string': { + pattern: /[\s\S]+/, + }, + }, + }, + }); + + // map and bounced message generic type modifiers + Prism.languages.insertBefore('tact', 'keyword', { + 'generics': { + pattern: /(?:\b(?:bounced|map)\b<[^\\\r\n]*>)/, + greedy: true, + inside: { + 'builtin': [ + ...Prism.languages['tact']['builtin'], + { + pattern: /\b(?:bounced(?=<)|map(?=<))\b/ + }, + ], + 'class-name': Prism.languages['tact']['class-name'], + 'punctuation': { + pattern: /[<>(),.?]/, + }, + 'keyword': { + pattern: /\bas\b/, + }, + }, + }, + }); +}(Prism)); From 91cc8a0e1cd5129370eb6613b00da011a54f1823 Mon Sep 17 00:00:00 2001 From: Novus Nota <68142933+novusnota@users.noreply.github.com> Date: Wed, 18 Sep 2024 22:04:24 +0200 Subject: [PATCH 3/3] chore: update `grammars.dat` --- libprisma/grammars.dat | Bin 621241 -> 628535 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/libprisma/grammars.dat b/libprisma/grammars.dat index 532ed27b68cccc28bc87ea41a7fceb060d3693db..3a762ce2f21e1a2929e109f1fd09c341aef5a739 100644 GIT binary patch delta 78633 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

$V%NHDt0X)AzZx(_Z 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