@@ -59,31 +59,36 @@ export class CodeTokenizer {
5959 ) {
6060 tokenizedCode . push ( CodeTokens . WHILE ) ;
6161 // If line
62- } else if (
63- trimmedLine . startsWith ( languageIdentifier . ifIdentifier ( ) ) &&
64- trimmedLine . endsWith ( languageIdentifier . endLoopAndCondIdentifier ( ) )
65- ) {
62+ } else if ( languageIdentifier . isIfBlock ( trimmedLine ) ) {
6663 tokenizedCode . push ( CodeTokens . IF ) ;
67- const andOccurrences = CodeTokenizer . numberTokenPresentInLine (
68- languageIdentifier . andIdentifier ( ) ,
64+ tokenizedCode = CodeTokenizer . getAndOrTokens (
6965 trimmedLine ,
70- ) ;
71- tokenizedCode = CodeTokenizer . pushTokensInTab (
66+ languageIdentifier ,
7267 tokenizedCode ,
73- CodeTokens . AND ,
74- andOccurrences ,
7568 ) ;
7669
77- const orOccurrences = CodeTokenizer . numberTokenPresentInLine (
78- languageIdentifier . orIdentifier ( ) ,
70+ // Else if line
71+ } else if (
72+ CodeTokenizer . numberTokenPresentInLine (
73+ languageIdentifier . elseIfIdentifier ( ) ,
7974 trimmedLine ,
80- ) ;
81- tokenizedCode = CodeTokenizer . pushTokensInTab (
75+ ) > 0
76+ ) {
77+ tokenizedCode . push ( CodeTokens . ELSEIF ) ;
78+ tokenizedCode = CodeTokenizer . getAndOrTokens (
79+ trimmedLine ,
80+ languageIdentifier ,
8281 tokenizedCode ,
83- CodeTokens . OR ,
84- orOccurrences ,
8582 ) ;
8683
84+ // Else line
85+ } else if (
86+ CodeTokenizer . numberTokenPresentInLine (
87+ languageIdentifier . elseIdentifier ( ) ,
88+ trimmedLine ,
89+ ) > 0
90+ ) {
91+ tokenizedCode . push ( CodeTokens . ELSE ) ;
8792 // Case line
8893 } else if (
8994 trimmedLine . startsWith ( languageIdentifier . caseIdentifier ( ) ) &&
@@ -102,10 +107,39 @@ export class CodeTokenizer {
102107 tokenizedCode . push ( CodeTokens . LINE ) ;
103108 }
104109
105- console . log ( trimmedLine ) ;
110+ // console.log(trimmedLine);
106111 } ) ;
107112
108- console . log ( tokenizedCode ) ;
113+ // console.log(tokenizedCode);
114+
115+ return tokenizedCode ;
116+ }
117+
118+ private static getAndOrTokens (
119+ line : string ,
120+ languageIdentifier : CommonLangIdentifiers ,
121+ tokens : CodeTokens [ ] ,
122+ ) : CodeTokens [ ] {
123+ let tokenizedCode = tokens ;
124+ const andOccurrences = CodeTokenizer . numberTokenPresentInLine (
125+ languageIdentifier . andIdentifier ( ) ,
126+ line ,
127+ ) ;
128+ tokenizedCode = CodeTokenizer . pushTokensInTab (
129+ tokenizedCode ,
130+ CodeTokens . AND ,
131+ andOccurrences ,
132+ ) ;
133+
134+ const orOccurrences = CodeTokenizer . numberTokenPresentInLine (
135+ languageIdentifier . orIdentifier ( ) ,
136+ line ,
137+ ) ;
138+ tokenizedCode = CodeTokenizer . pushTokensInTab (
139+ tokenizedCode ,
140+ CodeTokens . OR ,
141+ orOccurrences ,
142+ ) ;
109143
110144 return tokenizedCode ;
111145 }
0 commit comments