         let failing = [""]
         
         XCTAssertNoThrow(try checkSimplePassFail(for: .moduleImport, passing: passing.map({"import \($0)\n"}), failing: failing, expectNode: true, matches:passing))
-        #warning("Check strucure and errors")
+        
+        do {
+            let token = STLRTokens.moduleImport
+            let ast = try makeAST(for: token, from: "import abc\n")
+            
+            var childMatches = [STLRTokens.moduleName]
+            XCTAssertEqual(childMatches.count, ast.children.count)
+            XCTAssertEqual(token, ast.token as! STLRTokens)
+            
+            for child in ast.children {
+                XCTAssertEqual(childMatches.removeFirst(), child.token as! STLRTokens)
+            }
+        } catch {
+            XCTFail("\(error)")
+        }
     }
     
     func testModules(){

        let failing = [""]
        
        XCTAssertNoThrow(try checkSimplePassFail(for: .modules, passing: passing, failing: failing, expectNode: true))
        #warning("Check strucure and errors")
    }
    
    func testRules(){

        ]
        let failing = [String]()
        XCTAssertNoThrow(try checkSimplePassFail(for: .endRegex, passing: passing, failing: failing, expectNode: false))
        do {
            let token = STLRTokens.endRegex
            _ = try makeAST(for: token, from: "/")
            XCTFail("Should have thrown no nodes")
        } catch {
        }
    }

    func testRegexBody(){
