Merge branch 'master' of https://github.com/ethereum/remix-project into filedecoratorplugin
commit
d0febd2d35
@ -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