pull/2748/head
Sergey Romanov 6 years ago
parent 329cadd860
commit 1b01285899

@ -51,32 +51,32 @@ export const conf: IRichLanguageConfiguration = {
{ open: '/*', close: '*/' }, { open: '/*', close: '*/' },
{ open: '\'', close: '\'', notIn: ['string_sq'] }, { open: '\'', close: '\'', notIn: ['string_sq'] },
{ open: '"', close: '"', notIn: ['string_dq'] }, { open: '"', close: '"', notIn: ['string_dq'] },
{ open: 'var', close: 'end_var'}, { open: 'var', close: 'end_var' },
{ open: 'var_input', close: 'end_var'}, { open: 'var_input', close: 'end_var' },
{ open: 'var_output', close: 'end_var'}, { open: 'var_output', close: 'end_var' },
{ open: 'var_in_out', close: 'end_var'}, { open: 'var_in_out', close: 'end_var' },
{ open: 'var_temp', close: 'end_var'}, { open: 'var_temp', close: 'end_var' },
{ open: 'var_global', close: 'end_var'}, { open: 'var_global', close: 'end_var' },
{ open: 'var_access', close: 'end_var'}, { open: 'var_access', close: 'end_var' },
{ open: 'var_external', close: 'end_var'}, { open: 'var_external', close: 'end_var' },
{ open: 'type', close: 'end_type'}, { open: 'type', close: 'end_type' },
{ open: 'struct', close: 'end_struct'}, { open: 'struct', close: 'end_struct' },
{ open: 'program', close: 'end_program'}, { open: 'program', close: 'end_program' },
{ open: 'function', close: 'end_function'}, { open: 'function', close: 'end_function' },
{ open: 'function_block', close: 'end_function_block'}, { open: 'function_block', close: 'end_function_block' },
{ open: 'action', close: 'end_action'}, { open: 'action', close: 'end_action' },
{ open: 'step', close: 'end_step'}, { open: 'step', close: 'end_step' },
{ open: 'initial_step', close: 'end_step'}, { open: 'initial_step', close: 'end_step' },
{ open: 'transaction', close: 'end_transaction'}, { open: 'transaction', close: 'end_transaction' },
{ open: 'configuration', close: 'end_configuration'}, { open: 'configuration', close: 'end_configuration' },
{ open: 'tcp', close: 'end_tcp'}, { open: 'tcp', close: 'end_tcp' },
{ open: 'recource', close: 'end_recource'}, { open: 'recource', close: 'end_recource' },
{ open: 'channel', close: 'end_channel'}, { open: 'channel', close: 'end_channel' },
{ open: 'library', close: 'end_library'}, { open: 'library', close: 'end_library' },
{ open: 'folder', close: 'end_folder'}, { open: 'folder', close: 'end_folder' },
{ open: 'binaries', close: 'end_binaries'}, { open: 'binaries', close: 'end_binaries' },
{ open: 'includes', close: 'end_includes'}, { open: 'includes', close: 'end_includes' },
{ open: 'sources', close: 'end_sources'} { open: 'sources', close: 'end_sources' }
], ],
surroundingPairs: [ surroundingPairs: [
{ open: '{', close: '}' }, { open: '{', close: '}' },
@ -84,32 +84,32 @@ export const conf: IRichLanguageConfiguration = {
{ open: '(', close: ')' }, { open: '(', close: ')' },
{ open: '"', close: '"' }, { open: '"', close: '"' },
{ open: '\'', close: '\'' }, { open: '\'', close: '\'' },
{ open: 'var', close: 'end_var'}, { open: 'var', close: 'end_var' },
{ open: 'var_input', close: 'end_var'}, { open: 'var_input', close: 'end_var' },
{ open: 'var_output', close: 'end_var'}, { open: 'var_output', close: 'end_var' },
{ open: 'var_in_out', close: 'end_var'}, { open: 'var_in_out', close: 'end_var' },
{ open: 'var_temp', close: 'end_var'}, { open: 'var_temp', close: 'end_var' },
{ open: 'var_global', close: 'end_var'}, { open: 'var_global', close: 'end_var' },
{ open: 'var_access', close: 'end_var'}, { open: 'var_access', close: 'end_var' },
{ open: 'var_external', close: 'end_var'}, { open: 'var_external', close: 'end_var' },
{ open: 'type', close: 'end_type'}, { open: 'type', close: 'end_type' },
{ open: 'struct', close: 'end_struct'}, { open: 'struct', close: 'end_struct' },
{ open: 'program', close: 'end_program'}, { open: 'program', close: 'end_program' },
{ open: 'function', close: 'end_function'}, { open: 'function', close: 'end_function' },
{ open: 'function_block', close: 'end_function_block'}, { open: 'function_block', close: 'end_function_block' },
{ open: 'action', close: 'end_action'}, { open: 'action', close: 'end_action' },
{ open: 'step', close: 'end_step'}, { open: 'step', close: 'end_step' },
{ open: 'initial_step', close: 'end_step'}, { open: 'initial_step', close: 'end_step' },
{ open: 'transaction', close: 'end_transaction'}, { open: 'transaction', close: 'end_transaction' },
{ open: 'configuration', close: 'end_configuration'}, { open: 'configuration', close: 'end_configuration' },
{ open: 'tcp', close: 'end_tcp'}, { open: 'tcp', close: 'end_tcp' },
{ open: 'recource', close: 'end_recource'}, { open: 'recource', close: 'end_recource' },
{ open: 'channel', close: 'end_channel'}, { open: 'channel', close: 'end_channel' },
{ open: 'library', close: 'end_library'}, { open: 'library', close: 'end_library' },
{ open: 'folder', close: 'end_folder'}, { open: 'folder', close: 'end_folder' },
{ open: 'binaries', close: 'end_binaries'}, { open: 'binaries', close: 'end_binaries' },
{ open: 'includes', close: 'end_includes'}, { open: 'includes', close: 'end_includes' },
{ open: 'sources', close: 'end_sources'} { open: 'sources', close: 'end_sources' }
], ],
folding: { folding: {
markers: { markers: {
@ -182,13 +182,27 @@ export const language = <ILanguage>{
// The main tokenizer for our languages // The main tokenizer for our languages
tokenizer: { tokenizer: {
root: [ root: [
[/(T|DT|TOD)#[0-9:-_shmyd]*/, 'tag'], [/(\.\.)/, 'delimiter'],
[/[A-Za-z]{1,6}#[0-9]*/, 'tag'],
[/\%(I|Q|M)(X|B|W|D|L)[0-9\.]*/, 'tag'], [/\b(16#[0-9A-Fa-f\_]*)+\b/, 'number.hex'],
[/\b(2#[01\_]+)+\b/, 'number.binary'],
[/\b(8#[0-9\_]*)+\b/, 'number.octal'],
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'],
[/\b(L?REAL)#[0-9\_\.e]+\b/, 'number.float'],
[/\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\_]+\b/, 'number'],
[/\d+/, 'number'],
[/\b(T|DT|TOD)#[0-9:-_shmyd]+\b/, 'tag'],
[/\%(I|Q|M)(X|B|W|D|L)[0-9\.]+/, 'tag'],
[/\%(I|Q|M)[0-9\.]*/, 'tag'], [/\%(I|Q|M)[0-9\.]*/, 'tag'],
[/[A-Za-z]{1,6}#[0-9]*/, 'tag'],
[/(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]*/, 'predefined'], [/(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]*/, 'predefined'],
[/[A_Za-z]*(_TO_)[A_Za-z]*/, 'predefined'], [/[A_Za-z]*(_TO_)[A_Za-z]*/, 'predefined'],
[/[;]/, 'delimiter'],
[/[.]/, { token: 'delimiter', next: '@params' }],
// identifiers and keywords // identifiers and keywords
[/[a-zA-Z_]\w*/, { [/[a-zA-Z_]\w*/, {
cases: { cases: {
@ -205,14 +219,7 @@ export const language = <ILanguage>{
{ include: '@whitespace' }, { include: '@whitespace' },
[/[;.]/, 'delimiter'],
[/[{}()\[\]]/, '@brackets'], [/[{}()\[\]]/, '@brackets'],
[/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'],
[/16#[0-9a-fA-F]+/, 'number.hex'],
[/2#[0-9_]+/, 'number.binary'],
[/\d+/, 'number'],
[/"([^"\\]|\\.)*$/, 'string.invalid'], // non-teminated string [/"([^"\\]|\\.)*$/, 'string.invalid'], // non-teminated string
[/"/, { token: 'string.quote', bracket: '@open', next: '@string_dq' }], [/"/, { token: 'string.quote', bracket: '@open', next: '@string_dq' }],
@ -222,6 +229,10 @@ export const language = <ILanguage>{
[/(')(@escapes)(')/, ['string', 'string.escape', 'string']], [/(')(@escapes)(')/, ['string', 'string.escape', 'string']],
[/'/, 'string.invalid'] [/'/, 'string.invalid']
], ],
params: [
[/\b[A-Za-z0-9_]+\b(?=\()/, { token: 'identifier', next: '@pop' }],
[/\b[A-Za-z0-9_]+\b/, 'variable.name', '@pop']
],
comment: [ comment: [
[/[^\/*]+/, 'comment'], [/[^\/*]+/, 'comment'],
[/\/\*/, 'comment', '@push'], // nested comment [/\/\*/, 'comment', '@push'], // nested comment

Loading…
Cancel
Save