Per-keystroke incremental lexing using a conventional batch lexer, Apr. 7, 1998, Patent no. 5,737,608

System and method for textual editing of structurally-represented computer programs with on-the-fly typographical display, May 5, 1998, Patent no. 5,748,975

System and method for inter-token whitespace representation and textual editing behavior in a program editor, May 12, 1998, Patent no. 5,752,058

System and method for integrating editing and versioning in data repositories, Sept. 8, 1998, Patent no. 5,805,889

Token-based computer program editor with program comment management, Sept. 22, 1998, Patent no. 5,813,019

Method and apparatus for diagnosing lexical errors, Sept. 1, 1998, Patent no. 5,802,262

System and method for horizontal alignment of tokens in a structural representation program editor, Jan. 5, 1999, Patent no. 5,857,212

Language-sensitive whitespace adjustment in a software engineering tool, Oct. 3, 2006, Patent no. 7,117,479

Interactive software engineering tool with support for embedded lexical contexts (with Marat Boshernitsan), Oct. 24, 2006, Patent no. 7,127,704

Method and apparatus for accessing related computer objects (with John C. Tang, Donald R. Gentner, Nicole Y. Mordecai, and James M. A. Begole), January 2, 2007, Patent no. 7,159,207

Undo/redo technique for token-oriented representation of program code (with Kenneth B. Urquhart), June 10, 2008, Patent no. 7,386,834

Tracking object fields using relocatable object watchpoints (with Hannes Payer, Douglas Simon, Benjamin Titzer, and Mario Wolczko), July 16, 2013, Patent no. 8489652