         assertUnmatched(identifierToken, "2name".characters)
         assertUnmatched(identifierToken, "2".characters)
     }
-
-    func testTokenizer() {
+    
+    func testSimpleExpressions() {
         assertStringToTokens("a+b", [.Identifier("a"), .Character("+"), .Identifier("b")])
-
+        
         assertStringToTokens(
             "def add(a b) a + b",
             [

                .Identifier("a"), .Character("+"), .Identifier("b")
            ]
        )

        assertStringToTokens(
            "extern atan2(a b)",
            [
                .Extern, .Identifier("atan2"),
                .Character("("), .Identifier("a"), .Identifier("b"), .Character(")")
            ]
        )


        assertStringToTokens(
            "\textern atan2(y x);",
            [

            ]
        )
    }
}

class TokenToExpressionParserTests: XCTestCase {
    func testParser() {
        assertTokensToExpression(
            [.Extern, .Identifier("sin"), .Character("("), .Identifier("angle"), .Character(")"), .EndOfStatement],
            .Prototype(name: "sin", args: ["angle"])
        )
    }
}

class StringToExpressionParserTests: XCTestCase {
    func testExtern() {
        assertStringToExpression(
            "extern sin(angle);",
            .Prototype(name: "sin", args: ["angle"])
        )
    }
    
    func testBinaryOperator() {
        assertStringToExpression(
            "a + b;",
            .BinaryOperator(
