From c504801040ae2f7694b8d4c3ff98e4cb19633f46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Pelay?= Date: Wed, 28 Feb 2024 19:33:58 -0400 Subject: [PATCH 1/2] using regex in replace function --- static/js/lezer-parsers/tokens.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/js/lezer-parsers/tokens.ts b/static/js/lezer-parsers/tokens.ts index 4017981ed00..8d8180d428c 100644 --- a/static/js/lezer-parsers/tokens.ts +++ b/static/js/lezer-parsers/tokens.ts @@ -711,7 +711,7 @@ export function initializeTranslation(options: InitializeCodeMirrorSyntaxHighlig export function specializeKeyword(name: string, stack: Stack) { for (const [key, value] of specializeTranslations) { - const regexString = value.replace(' ', '|'); + const regexString = value.replace(/ /g, '|'); if (new RegExp(`^(${regexString})$`, 'gu').test(name)) { if (stack.canShift(keywordToToken[level].specialize[key])) { return keywordToToken[level].specialize[key]; @@ -723,7 +723,7 @@ export function specializeKeyword(name: string, stack: Stack) { export function extendKeyword(name: string, stack: Stack) { for (const [key, value] of extendTranslations) { - const regexString = value.replace(' ', '|'); + const regexString = value.replace(/ /g, '|'); if (new RegExp(`^(${regexString})$`, 'gu').test(name)) { if (stack.canShift(keywordToToken[level].extend[key])) { return keywordToToken[level].extend[key]; From fa5854728d387e39fb06f867631d3909798d048d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Pelay?= Date: Wed, 28 Feb 2024 19:34:01 -0400 Subject: [PATCH 2/2] test --- tests/cypress/e2e/lezer-tests/level_05.cy.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/cypress/e2e/lezer-tests/level_05.cy.js b/tests/cypress/e2e/lezer-tests/level_05.cy.js index 5956870d3aa..118abf2c4f7 100644 --- a/tests/cypress/e2e/lezer-tests/level_05.cy.js +++ b/tests/cypress/e2e/lezer-tests/level_05.cy.js @@ -178,6 +178,22 @@ describe('Lezer parser tests for level 5', () => { multiLevelTester('Test if text not in list print', code, expectedTree, 5, 7); }) + + describe('Test if text not in spanish, but using english keyword', () => { + const code = `si text not in list imprimir 'in'` + const expectedTree = + `Program( + Command( + If( + if, + Condition(NotInListCheck(Text,not_in,not_in,Text)), + IfLessCommand(Print(print,String)) + ) + ) + )` + + multiLevelTester('Test if text not in list print', code, expectedTree, 5, 7, 'es'); + }) }); }); })