package Ġcom . github . pro log db . parser . lexer Ċ Ċ import Ġcom . github . pro log db . parser . source . Source Location Ċ import Ġcom . github . pro log db . parser . source . Source Unit Ċ import Ġio . kot lint est . matchers . should Equal Ċ import Ġio . kot lint est . specs . Free Spec Ċ Ċ class ĠLex er Iterator Test Ġ: ĠFree Spec () Ġ{ init { ĊĠĠĠ Ġ" test " Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġ""" predicate ( arg ). ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpredicate ( arg 1 , Ġarg 2 ). ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrule Head Predicate ( arg 1 , ĠX ) Ġ:- Ġgoal 1 ( arg 1 ), Ġgoal 2 ( X ). ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo ( 1 , 2 , 3 . 4 1 2 ) Ġ Ġ. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa + 1 . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" this Ġis Ġa Ġsimple Ġstring " Ġ Ġ" this Ġ\ a Ġis Ġ\ b Ġ\ v Ġa Ġ\ e Ġ\ t Ġstring Ġ\ n Ġwith Ġ\ r Ġ\" Ġescaped Ġ\ stuff " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ% Ġthis Ġsign le - line Ġcomment Ġshould Ġbe Ġignored ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo Ġbar Ġ% Ġthis Ġcomment Ġshould Ġbe Ġignored , Ġtoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġignore ! Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbar Ġ/* Ġignore ! Ġ*/ Ġfoo ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġval Ġlexer Ġ= ĠLex er Iterator ( source . as Iterable (). iterator (), ĠSource Location ( Source Unit (" test code "), Ġ 1 , Ġ 1 , Ġ 0 )) ĊĊĠĠĠĠĠĠĠ Ġvar Ġnext : ĠToken ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 1 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" predicate " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 9 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ OPEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" arg " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ CLOSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 4 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . FULL _ STOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 5 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 2 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" predicate " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ OPEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" arg 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 6 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . COMMA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 7 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" arg 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ CLOSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . FULL _ STOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 3 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" rule Head Predicate " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 9 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ OPEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" arg 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 4 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . COMMA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" X " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 7 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ CLOSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 8 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . HEAD _ QUERY _ SEPARATOR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 4 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 4 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" goal 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 4 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 4 7 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ OPEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 4 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 4 8 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" arg 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 4 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 5 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ CLOSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 5 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 5 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . COMMA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 5 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 5 4 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" goal 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 5 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 6 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ OPEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 6 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 6 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" X " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 6 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 6 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ CLOSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 6 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 6 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . FULL _ STOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 6 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 6 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 4 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ OPEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 6 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠNumeric Literal Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠNumeric Literal Token ). number Ġshould Equal Ġ 1 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 7 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . COMMA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 8 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠNumeric Literal Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠNumeric Literal Token ). number Ġshould Equal Ġ 2 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 9 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . COMMA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠNumeric Literal Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠNumeric Literal Token ). number Ġshould Equal Ġ 3 . 4 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PARENT _ CLOSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 6 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . FULL _ STOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 2 9 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 5 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" a " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . PLUS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 4 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠNumeric Literal Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠNumeric Literal Token ). number Ġshould Equal Ġ 1 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠOperator Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠOperator Token ). operator Ġshould Equal ĠOperator . FULL _ STOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 6 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠString Literal Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠString Literal Token ). content Ġshould Equal Ġ" this Ġis Ġa Ġsimple Ġstring " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 7 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠString Literal Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠString Literal Token ). content Ġshould Equal Ġ" this Ġ\ u 0 0 0 7 Ġis Ġ\ b Ġ\ u 0 0 0 B Ġa Ġ\ u 0 0 1 B Ġ\ t Ġstring Ġ\ n Ġwith Ġ\ r Ġ\" Ġescaped Ġstuff " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 4 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 0 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 9 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" bar " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 9 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" line Ġ 1 1 " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" bar " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 1 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġlexer . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( next Ġis ĠIdentifier Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( next Ġas ĠIdentifier Token ). textContent Ġshould Equal Ġ" foo " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . line Ġshould Equal Ġ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . start . column Ġshould Equal Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . line Ġshould Equal Ġ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . location . end . column Ġshould Equal Ġ 3 3 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" eof " Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlexer . hasNext () Ġshould Equal Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }}