diff --git a/src/abap/abap.test.ts b/src/abap/abap.test.ts index 904fccb1..fc3b5bfd 100644 --- a/src/abap/abap.test.ts +++ b/src/abap/abap.test.ts @@ -80,4 +80,16 @@ testTokenization('abap', [ { startIndex: 20, type: 'delimiter.abap' }, ] }], + [{ + line: '\'he\'\' llo\'', + tokens: [ + { startIndex: 0, type: 'string.abap' }, + ] + }], + [{ + line: '|hel\\|lo|', + tokens: [ + { startIndex: 0, type: 'string.abap' }, + ] + }], ]); diff --git a/src/abap/abap.ts b/src/abap/abap.ts index 64322033..00bdf670 100644 --- a/src/abap/abap.ts +++ b/src/abap/abap.ts @@ -87,7 +87,7 @@ export const language = { [/@symbols/, { cases: { '@operators': 'operator', '@default' : '' } } ], - [/'/, { token: 'string', bracket: '@open', next: '@string' } ], + [/'/, { token: 'string', bracket: '@open', next: '@stringquote' } ], [/\|/, { token: 'string', bracket: '@open', next: '@stringtemplate' } ], [/\d+/, 'number'], @@ -95,10 +95,11 @@ export const language = { stringtemplate: [ [/[^\\\|]+/, 'string'], - [/\|/, { token: 'string', bracket: '@close', next: '@pop' } ] + [/\\\|/, 'string'], + [/\|/, { token: 'string', bracket: '@close', next: '@pop' } ] ], - string: [ + stringquote: [ [/[^\\']+/, 'string'], [/'/, { token: 'string', bracket: '@close', next: '@pop' } ] ],