diff --git a/spec/test_d_lexer.d b/spec/test_d_lexer.d index a2bb5ee..80269f0 100644 --- a/spec/test_d_lexer.d +++ b/spec/test_d_lexer.d @@ -1,3 +1,6 @@ +import testparser; +import std.stdio; + int main() { return 0; @@ -5,5 +8,43 @@ int main() unittest { - assert(true); + alias DCP = Testparser.Decoder.DecodedCodePoint; + string inputstring = "5+\n 66"; + const(ubyte) * input = cast(const(ubyte) *)inputstring.ptr; + size_t input_length = inputstring.length; + DCP dcp; + dcp = Testparser.Decoder.decode_code_point(input, input_length); + assert(dcp == DCP('5', 1u)); + input += dcp.code_point_length; + input_length -= dcp.code_point_length; + dcp = Testparser.Decoder.decode_code_point(input, input_length); + assert(dcp == DCP('+', 1u)); + input += dcp.code_point_length; + input_length -= dcp.code_point_length; + dcp = Testparser.Decoder.decode_code_point(input, input_length); + assert(dcp == DCP('\n', 1u)); + input += dcp.code_point_length; + input_length -= dcp.code_point_length; + dcp = Testparser.Decoder.decode_code_point(input, input_length); + assert(dcp == DCP(' ', 1u)); + input += dcp.code_point_length; + input_length -= dcp.code_point_length; + dcp = Testparser.Decoder.decode_code_point(input, input_length); + assert(dcp == DCP('6', 1u)); + input += dcp.code_point_length; + input_length -= dcp.code_point_length; + dcp = Testparser.Decoder.decode_code_point(input, input_length); + assert(dcp == DCP('6', 1u)); + input += dcp.code_point_length; + input_length -= dcp.code_point_length; + dcp = Testparser.Decoder.decode_code_point(input, input_length); + assert(dcp == DCP(Testparser.Decoder.CODE_POINT_EOF, 0u)); +} + +unittest +{ + alias LT = Testparser.Lexer.LexedToken; + string input = "5 + 4 * \n677 + 567"; + Testparser.Lexer lexer = new Testparser.Lexer(cast(const(ubyte) *)input.ptr, input.sizeof); + //assert(lexer.lex_token() == LT(0, 0, Testparser.TOKEN_INT)); }