@@ -59,31 +59,36 @@ export class CodeTokenizer {
59
59
) {
60
60
tokenizedCode . push ( CodeTokens . WHILE ) ;
61
61
// If line
62
- } else if (
63
- trimmedLine . startsWith ( languageIdentifier . ifIdentifier ( ) ) &&
64
- trimmedLine . endsWith ( languageIdentifier . endLoopAndCondIdentifier ( ) )
65
- ) {
62
+ } else if ( languageIdentifier . isIfBlock ( trimmedLine ) ) {
66
63
tokenizedCode . push ( CodeTokens . IF ) ;
67
- const andOccurrences = CodeTokenizer . numberTokenPresentInLine (
68
- languageIdentifier . andIdentifier ( ) ,
64
+ tokenizedCode = CodeTokenizer . getAndOrTokens (
69
65
trimmedLine ,
70
- ) ;
71
- tokenizedCode = CodeTokenizer . pushTokensInTab (
66
+ languageIdentifier ,
72
67
tokenizedCode ,
73
- CodeTokens . AND ,
74
- andOccurrences ,
75
68
) ;
76
69
77
- const orOccurrences = CodeTokenizer . numberTokenPresentInLine (
78
- languageIdentifier . orIdentifier ( ) ,
70
+ // Else if line
71
+ } else if (
72
+ CodeTokenizer . numberTokenPresentInLine (
73
+ languageIdentifier . elseIfIdentifier ( ) ,
79
74
trimmedLine ,
80
- ) ;
81
- tokenizedCode = CodeTokenizer . pushTokensInTab (
75
+ ) > 0
76
+ ) {
77
+ tokenizedCode . push ( CodeTokens . ELSEIF ) ;
78
+ tokenizedCode = CodeTokenizer . getAndOrTokens (
79
+ trimmedLine ,
80
+ languageIdentifier ,
82
81
tokenizedCode ,
83
- CodeTokens . OR ,
84
- orOccurrences ,
85
82
) ;
86
83
84
+ // Else line
85
+ } else if (
86
+ CodeTokenizer . numberTokenPresentInLine (
87
+ languageIdentifier . elseIdentifier ( ) ,
88
+ trimmedLine ,
89
+ ) > 0
90
+ ) {
91
+ tokenizedCode . push ( CodeTokens . ELSE ) ;
87
92
// Case line
88
93
} else if (
89
94
trimmedLine . startsWith ( languageIdentifier . caseIdentifier ( ) ) &&
@@ -102,10 +107,39 @@ export class CodeTokenizer {
102
107
tokenizedCode . push ( CodeTokens . LINE ) ;
103
108
}
104
109
105
- console . log ( trimmedLine ) ;
110
+ // console.log(trimmedLine);
106
111
} ) ;
107
112
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
+ ) ;
109
143
110
144
return tokenizedCode ;
111
145
}
0 commit comments