function testPush() { $ts = TokenStream::fromSource("<?php 1 2 3 "); $ts->push(new Token(T_LNUMBER, '4')); $ts->push(new Token(T_WHITESPACE, ' ')); $ts->push(new Token(T_LNUMBER, '5')); $ts->push(new Token(T_WHITESPACE, ' ')); $this->assertEquals('<?php 1 2 3 4 5 ', (string) $ts); $ts = TokenStream::fromEmpty(); $ts->push(new Token(T_STRING, 'A')); $ts->push(new Token(T_WHITESPACE, ' ')); $ts->push(new Token(T_STRING, 'B')); $ts->push(new Token(T_WHITESPACE, ' ')); $this->assertEquals('A B ', (string) $ts); $ts->extract($ts->index(), $ts->index()->next->next->next); $this->assertEquals(' ', (string) $ts); $ts->push(new Token(T_STRING, 'C')); $this->assertEquals(' C', (string) $ts); }