Changeset View
Changeset View
Standalone View
Standalone View
parser/test/lexertest.cpp
Context not available. | |||||
528 | COMPARE_TOKEN(ts, 10, Parser::Token_RBRACE, 1, 24, 1, 24); | 528 | COMPARE_TOKEN(ts, 10, Parser::Token_RBRACE, 1, 24, 1, 24); | ||
---|---|---|---|---|---|
529 | } | 529 | } | ||
530 | 530 | | |||
531 | void LexerTest::testSpaceship() | ||||
532 | { | ||||
533 | QScopedPointer<TokenStream> ts(tokenize(QStringLiteral("<?php\n$a = 'ab' <=> 'b';"), true)); | ||||
534 | QCOMPARE((int)ts->size(), 11); | ||||
535 | | ||||
536 | COMPARE_TOKEN(ts, 0, Parser::Token_OPEN_TAG, 0, 0, 0, 5); | ||||
537 | COMPARE_TOKEN(ts, 1, Parser::Token_VARIABLE, 1, 0, 1, 1); | ||||
538 | COMPARE_TOKEN(ts, 2, Parser::Token_WHITESPACE, 1, 2, 1, 2); | ||||
539 | COMPARE_TOKEN(ts, 3, Parser::Token_ASSIGN, 1, 3, 1, 3); | ||||
540 | COMPARE_TOKEN(ts, 4, Parser::Token_WHITESPACE, 1, 4, 1, 4); | ||||
541 | COMPARE_TOKEN(ts, 5, Parser::Token_CONSTANT_ENCAPSED_STRING, 1, 5, 1, 8); | ||||
542 | COMPARE_TOKEN(ts, 6, Parser::Token_WHITESPACE, 1, 9, 1, 9); | ||||
543 | COMPARE_TOKEN(ts, 7, Parser::Token_SPACESHIP, 1, 10, 1, 12); | ||||
544 | COMPARE_TOKEN(ts, 8, Parser::Token_WHITESPACE, 1, 13, 1, 13); | ||||
545 | COMPARE_TOKEN(ts, 9, Parser::Token_CONSTANT_ENCAPSED_STRING, 1, 14, 1, 16); | ||||
546 | COMPARE_TOKEN(ts, 10, Parser::Token_SEMICOLON, 1, 17, 1, 17); | ||||
547 | } | ||||
548 | | ||||
549 | void LexerTest::testNullCoalesce() | ||||
550 | { | ||||
551 | QScopedPointer<TokenStream> ts(tokenize(QStringLiteral("<?php\n$a = null ?? true;"), true)); | ||||
552 | QCOMPARE((int)ts->size(), 11); | ||||
553 | | ||||
554 | COMPARE_TOKEN(ts, 0, Parser::Token_OPEN_TAG, 0, 0, 0, 5); | ||||
555 | COMPARE_TOKEN(ts, 1, Parser::Token_VARIABLE, 1, 0, 1, 1); | ||||
556 | COMPARE_TOKEN(ts, 2, Parser::Token_WHITESPACE, 1, 2, 1, 2); | ||||
557 | COMPARE_TOKEN(ts, 3, Parser::Token_ASSIGN, 1, 3, 1, 3); | ||||
558 | COMPARE_TOKEN(ts, 4, Parser::Token_WHITESPACE, 1, 4, 1, 4); | ||||
559 | COMPARE_TOKEN(ts, 5, Parser::Token_STRING, 1, 5, 1, 8); | ||||
560 | COMPARE_TOKEN(ts, 6, Parser::Token_WHITESPACE, 1, 9, 1, 9); | ||||
561 | COMPARE_TOKEN(ts, 7, Parser::Token_NULL_COALESCE, 1, 10, 1, 11); | ||||
562 | COMPARE_TOKEN(ts, 8, Parser::Token_WHITESPACE, 1, 12, 1, 12); | ||||
563 | COMPARE_TOKEN(ts, 9, Parser::Token_STRING, 1, 13, 1, 16); | ||||
564 | COMPARE_TOKEN(ts, 10, Parser::Token_SEMICOLON, 1, 17, 1, 17); | ||||
565 | } | ||||
566 | | ||||
531 | TokenStream* LexerTest::tokenize(const QString& unit, bool debug, int initialState) | 567 | TokenStream* LexerTest::tokenize(const QString& unit, bool debug, int initialState) | ||
532 | { | 568 | { | ||
533 | TokenStream* tokenStream = new TokenStream; | 569 | TokenStream* tokenStream = new TokenStream; | ||
Context not available. |