瀏覽代碼

more tests and fixes

larshp 5 年之前
父節點
當前提交
70dcf9020c
共有 2 個文件被更改,包括 16 次插入3 次删除
  1. 12 0
      src/abap/abap.test.ts
  2. 4 3
      src/abap/abap.ts

+ 12 - 0
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' },
+		]
+	}],
 ]);

+ 4 - 3
src/abap/abap.ts

@@ -87,7 +87,7 @@ export const language = <ILanguage> {
 		[/@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 = <ILanguage> {
 
 	  stringtemplate: [
 		[/[^\\\|]+/, 'string'],
-		[/\|/,       { token: 'string', bracket: '@close', next: '@pop' } ]
+    	[/\\\|/,   'string'],
+		[/\|/,     { token: 'string', bracket: '@close', next: '@pop' } ]
 	  ],
 
-	  string: [
+	  stringquote: [
 		[/[^\\']+/, 'string'],
 		[/'/,       { token: 'string', bracket: '@close', next: '@pop' } ]
 	  ],