commit
804f9e75bd
@ -1,133 +0,0 @@ |
||||
/* eslint-disable */ |
||||
export const cairoConf = { |
||||
comments: { |
||||
lineComment: '#' |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['%{', '%}'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '%{', close: '%}' }, |
||||
{ open: "'", close: "'", notIn: ['string', 'comment'] } |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: '{', close: '}' }, |
||||
{ open: '[', close: ']' }, |
||||
{ open: '(', close: ')' }, |
||||
{ open: '%{', close: '%}' }, |
||||
{ open: "'", close: "'" } |
||||
] |
||||
} |
||||
|
||||
|
||||
export const cairoLang = { |
||||
defaultToken: '', |
||||
tokenPostfix: '.cairo', |
||||
|
||||
brackets: [ |
||||
{ token: 'delimiter.curly', open: '{', close: '}' }, |
||||
{ token: 'delimiter.parenthesis', open: '(', close: ')' }, |
||||
{ token: 'delimiter.square', open: '[', close: ']' }, |
||||
{ token: 'delimiter.curly', open: '%{', close: '%}' } |
||||
], |
||||
|
||||
keywords: [ |
||||
// control
|
||||
'if', |
||||
'else', |
||||
'end', |
||||
|
||||
// meta
|
||||
'alloc_locals', |
||||
'as', |
||||
'assert', |
||||
'cast', |
||||
'const', |
||||
'dw', |
||||
'felt', |
||||
'from', |
||||
'func', |
||||
'import', |
||||
'let', |
||||
'local', |
||||
'member', |
||||
'nondet', |
||||
'return', |
||||
'static_assert', |
||||
'struct', |
||||
'tempvar', |
||||
'with_attr', |
||||
'with', |
||||
|
||||
// register
|
||||
'ap', |
||||
'fp', |
||||
|
||||
// opcode
|
||||
'call', |
||||
'jmp', |
||||
'ret', |
||||
'abs', |
||||
'rel' |
||||
], |
||||
|
||||
operators: ['=', ':', '==', '++', '+', '-', '*', '**', '/', '&', '%', '_'], |
||||
|
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
numberDecimal: /[+-]?[0-9]+/, |
||||
numberHex: /[+-]?0x[0-9a-fA-F]+/, |
||||
|
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
'@keywords': { token: 'keyword.$0' }, |
||||
'@default': 'identifier' |
||||
} |
||||
} |
||||
], |
||||
|
||||
// whitespace
|
||||
{ include: '@whitespace' }, |
||||
|
||||
// directives
|
||||
[/^%[a-zA-Z]\w*/, 'tag'], |
||||
|
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, '@brackets'], |
||||
[/[<>](?!@symbols)/, '@brackets'], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
'@operators': 'delimiter', |
||||
'@default': '' |
||||
} |
||||
} |
||||
], |
||||
|
||||
// numbers
|
||||
[/(@numberHex)/, 'number.hex'], |
||||
[/(@numberDecimal)/, 'number'], |
||||
|
||||
// strings
|
||||
[/'[^']*'/, 'string'] |
||||
], |
||||
|
||||
whitespace: [ |
||||
[/\s+/, 'white'], |
||||
[/(^#.*$)/, 'comment'] |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,132 @@ |
||||
/* eslint-disable */ |
||||
export const cairoLanguageConfig = { |
||||
comments: { |
||||
lineComment: "#", |
||||
}, |
||||
brackets: [ |
||||
["{", "}"], |
||||
["[", "]"], |
||||
["(", ")"], |
||||
["%{", "%}"], |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: "{", close: "}" }, |
||||
{ open: "[", close: "]" }, |
||||
{ open: "(", close: ")" }, |
||||
{ open: "%{", close: "%}" }, |
||||
{ open: "'", close: "'", notIn: ["string", "comment"] }, |
||||
], |
||||
surroundingPairs: [ |
||||
{ open: "{", close: "}" }, |
||||
{ open: "[", close: "]" }, |
||||
{ open: "(", close: ")" }, |
||||
{ open: "%{", close: "%}" }, |
||||
{ open: "'", close: "'" }, |
||||
], |
||||
} |
||||
|
||||
export const cairoTokensProvider = { |
||||
defaultToken: "", |
||||
tokenPostfix: ".cairo", |
||||
|
||||
brackets: [ |
||||
{ token: "delimiter.curly", open: "{", close: "}" }, |
||||
{ token: "delimiter.parenthesis", open: "(", close: ")" }, |
||||
{ token: "delimiter.square", open: "[", close: "]" }, |
||||
{ token: "delimiter.curly", open: "%{", close: "%}" }, |
||||
], |
||||
|
||||
keywords: [ |
||||
// control
|
||||
"if", |
||||
"else", |
||||
"end", |
||||
|
||||
// meta
|
||||
"alloc_locals", |
||||
"as", |
||||
"assert", |
||||
"cast", |
||||
"const", |
||||
"dw", |
||||
"felt", |
||||
"from", |
||||
"func", |
||||
"import", |
||||
"let", |
||||
"local", |
||||
"member", |
||||
"nondet", |
||||
"return", |
||||
"static_assert", |
||||
"struct", |
||||
"tempvar", |
||||
"with_attr", |
||||
"with", |
||||
|
||||
// register
|
||||
"ap", |
||||
"fp", |
||||
|
||||
// opcode
|
||||
"call", |
||||
"jmp", |
||||
"ret", |
||||
"abs", |
||||
"rel", |
||||
], |
||||
|
||||
operators: ["=", ":", "==", "++", "+", "-", "*", "**", "/", "&", "%", "_"], |
||||
|
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
numberDecimal: /[+-]?[0-9]+/, |
||||
numberHex: /[+-]?0x[0-9a-fA-F]+/, |
||||
|
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z_]\w*/, |
||||
{ |
||||
cases: { |
||||
"@keywords": { token: "keyword.$0" }, |
||||
"@default": "identifier", |
||||
}, |
||||
}, |
||||
], |
||||
|
||||
// whitespace
|
||||
{ include: "@whitespace" }, |
||||
|
||||
// directives
|
||||
[/^%[a-zA-Z]\w*/, "tag"], |
||||
|
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, "@brackets"], |
||||
[/[<>](?!@symbols)/, "@brackets"], |
||||
[ |
||||
/@symbols/, |
||||
{ |
||||
cases: { |
||||
"@operators": "delimiter", |
||||
"@default": "", |
||||
}, |
||||
}, |
||||
], |
||||
|
||||
// numbers
|
||||
[/(@numberHex)/, "number.hex"], |
||||
[/(@numberDecimal)/, "number"], |
||||
|
||||
// strings
|
||||
[/'[^']*'/, "string"], |
||||
], |
||||
|
||||
whitespace: [ |
||||
[/\s+/, "white"], |
||||
[/(^#.*$)/, "comment"], |
||||
], |
||||
}, |
||||
} |
@ -0,0 +1,144 @@ |
||||
/* eslint-disable */ |
||||
export const zokratesLanguageConfig = { |
||||
comments: { |
||||
lineComment: '//', |
||||
blockComment: ['/*', '*/'] |
||||
}, |
||||
brackets: [ |
||||
['{', '}'], |
||||
['[', ']'], |
||||
['(', ')'], |
||||
['<', '>'] |
||||
], |
||||
autoClosingPairs: [ |
||||
{ open: '"', close: '"', notIn: ['string', 'comment'] }, |
||||
{ open: '{', close: '}', notIn: ['string', 'comment'] }, |
||||
{ open: '[', close: ']', notIn: ['string', 'comment'] }, |
||||
{ open: '(', close: ')', notIn: ['string', 'comment'] }, |
||||
{ open: '<', close: '>', notIn: ['string', 'comment'] } |
||||
] |
||||
} |
||||
|
||||
export const zokratesTokensProvider = { |
||||
defaultToken: "", |
||||
tokenPostfix: ".zok", |
||||
|
||||
keywords: [ |
||||
"log", |
||||
"assert", |
||||
"as", |
||||
"bool", |
||||
"const", |
||||
"def", |
||||
"else", |
||||
"false", |
||||
"field", |
||||
"for", |
||||
"if", |
||||
"import", |
||||
"from", |
||||
"in", |
||||
"mut", |
||||
"private", |
||||
"public", |
||||
"return", |
||||
"struct", |
||||
"true", |
||||
"type", |
||||
"u8", |
||||
"u16", |
||||
"u32", |
||||
"u64", |
||||
], |
||||
|
||||
typeKeywords: ["bool", "field", "u8", "u16", "u32", "u64"], |
||||
|
||||
operators: [ |
||||
"=", |
||||
">", |
||||
"<", |
||||
"!", |
||||
"?", |
||||
":", |
||||
"==", |
||||
"<=", |
||||
">=", |
||||
"!=", |
||||
"&&", |
||||
"||", |
||||
"+", |
||||
"-", |
||||
"*", |
||||
"**", |
||||
"/", |
||||
"&", |
||||
"|", |
||||
"^", |
||||
"%", |
||||
"<<", |
||||
">>", |
||||
], |
||||
|
||||
decimalSuffix: /(u16|u32|u64|u8|f)?/, |
||||
|
||||
// we include these common regular expressions
|
||||
symbols: /[=><!~?:&|+\-*\/\^%]+/, |
||||
escapes: |
||||
/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, |
||||
|
||||
// The main tokenizer for our languages
|
||||
tokenizer: { |
||||
root: [ |
||||
// identifiers and keywords
|
||||
[ |
||||
/[a-zA-Z]\w*/, |
||||
{ |
||||
cases: { |
||||
"@typeKeywords": "type.identifier", |
||||
"@keywords": "keyword", |
||||
"@default": "identifier", |
||||
}, |
||||
}, |
||||
], |
||||
|
||||
// whitespace
|
||||
{ include: "@whitespace" }, |
||||
|
||||
// delimiters and operators
|
||||
[/[{}()\[\]]/, "@brackets"], |
||||
[/[<>](?!@symbols)/, "@brackets"], |
||||
[/@symbols/, { cases: { "@operators": "operator", "@default": "" } }], |
||||
|
||||
// numbers
|
||||
[/0[xX][0-9a-fA-F]+/, "number.hex"], |
||||
[/\d+(@decimalSuffix)/, "number"], |
||||
|
||||
// delimiter
|
||||
[/[;,.]/, "delimiter"], |
||||
|
||||
// strings
|
||||
[/"([^"\\]|\\.)*$/, "string.invalid"], // non-teminated string
|
||||
[/"/, { token: "string.quote", bracket: "@open", next: "@string" }], |
||||
], |
||||
|
||||
comment: [ |
||||
[/[^\/*]+/, "comment"], |
||||
[/\/\*/, "comment", "@push"], // nested comment
|
||||
["\\*/", "comment", "@pop"], |
||||
[/[\/*]/, "comment"], |
||||
], |
||||
|
||||
string: [ |
||||
[/[^\\"]+/, "string"], |
||||
[/@escapes/, "string.escape"], |
||||
[/\\./, "string.escape.invalid"], |
||||
[/"/, { token: "string.quote", bracket: "@close", next: "@pop" }], |
||||
], |
||||
|
||||
whitespace: [ |
||||
[/[ \t\r\n]+/, "white"], |
||||
[/\/\*/, "comment", "@comment"], |
||||
[/\/\/.*$/, "comment"], |
||||
], |
||||
}, |
||||
} |
Loading…
Reference in new issue