| Per-keystroke incremental lexing using a conventional batch lexer | Apr. 7, 1998 | 5,737,608 |
| System and method for textual editing of structurally-represented computer programs with on-the-fly typographical display | May 5, 1998 | 5,748,975 |
| System and method for inter-token whitespace representation and textual editing behavior in a program editor | May 12, 1998 | 5,752,058 |
| System and method for integrating editing and versioning in data repositories | Sept. 8, 1998 | 5,805,889 |
| Token-based computer program editor with program comment management | Sept. 22, 1998 | 5,813,019 |
| Method and apparatus for diagnosing lexical errors | Sept. 1, 1998 | 5,802,262 |
| System and method for horizontal alignment of tokens in a structural representation program editor | Jan. 5, 1999 | 5,857,212 |
| Language-sensitive whitespace adjustment in a software engineering tool | Oct. 3, 2006 | 7,117,479 |
| Interactive software engineering tool with support for embedded lexical contexts (with Marat Boshernitsan) | Oct. 24, 2006 | 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 | 7,159,207 |
| Undo/redo technique for token-oriented representation of program code (with Kenneth B. Urquhart) | June 10, 2008 | 7,386,834 |


