File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed
Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -89,6 +89,10 @@ private Statement statement()
8989 {
9090 return new ReturnStatement ( expression ( ) ) ;
9191 }
92+ if ( match ( TokenType . SWITCH ) )
93+ {
94+ return switchs ( ) ;
95+ }
9296 if ( match ( TokenType . USE ) )
9397 {
9498 return new UseStatement ( expression ( ) . ToString ( ) ) ;
@@ -152,6 +156,22 @@ private FunctionDefine functionDefine()
152156 return new FunctionDefine ( name , argNames , body ) ;
153157 }
154158
159+ private Statement switchs ( )
160+ {
161+ Expression expr = expression ( ) ;
162+ List < CaseStatement > caseStatements = new List < CaseStatement > ( ) ;
163+ consume ( TokenType . LBRACE ) ;
164+
165+ while ( ! ( match ( TokenType . RBRACE ) ) )
166+ {
167+ consume ( TokenType . CASE ) ;
168+ Expression curr = expression ( ) ;
169+ caseStatements . Add ( new CaseStatement ( curr , expr , block ( ) ) ) ;
170+ }
171+
172+ return new SwitchStatement ( caseStatements ) ;
173+ }
174+
155175 private Statement enums ( )
156176 {
157177 string name = consume ( TokenType . WORD ) . getText ( ) ;
You can’t perform that action at this time.
0 commit comments