Method and apparatus for presenting and selecting options to modify a programming language statement
First Claim
1. A real-time method for assisting a user to modify a programming language statement in a computer program, the real-time method comprising:
- enabling a programming language editor having a character position cursor;
automatically determining an identity of input to the programming language editor by the user;
automatically resolving symbolic portions of available ones of a plurality of programming language statements by means of a reverse parse evaluation into a partial program compilation that generates identifiable tokens for each of the at least one segment therein in response to the input being an on-demand request by the user;
identifying a present programming language statement and at least one segment of the present programming language statement based on a location of the character position cursor;
determining a finite set of information related to the present programming language statement and at least one segment of the present programming language statement based on the automatically generated partial compilation;
automatically generating an assist window of the finite set of information;
receiving a representation of a selection by the computer programmer from the finite set of information; and
modifying the present programming language statement based at least in part on the selected information;
enabling execution of a editing task in response to the input being a programming language editor command;
enabling a first type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the step of enabling a first type of commit includes;
identifying the commit key as a non-delimiter type commit key; and
discarding the commit key;
enabling a second type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the second type of commit includes;
identifying the commit key as a delimiter type commit key; and
inserting the commit key after the identified menu item in the present programming language statement; and
adding to the present programming language statement at a location of the character position cursor in response to the input being a non-commit key type input character.
2 Assignments
0 Petitions
Accused Products
Abstract
An intelligent real time tool to assist a computer programmer during the writing and/or maintenance of a computer program. The tool generates assist windows that contain program related information that the programmer can use to construct a programming language statement and/or to obtain real time information about a programming language statement. An assist window can be automatically displayed as determined by the tool itself, and/or manually displayed on demand in response to a user input command. An assist window displays two general categories of information including but not limited to selection menu information based on a partial compilation of all programming language statements, and informational displays based on a partial compilation and a reverse parse of an immediate programming language statement. The statement generating tool assist windows are non-intrusive to programmer input and can be ignored by the programmer by merely continuing to type an immediate programming language statement without interacting with the assist windows that are proximate the programming language statement being constructed by the programmer.
151 Citations
8 Claims
-
1. A real-time method for assisting a user to modify a programming language statement in a computer program, the real-time method comprising:
-
enabling a programming language editor having a character position cursor; automatically determining an identity of input to the programming language editor by the user; automatically resolving symbolic portions of available ones of a plurality of programming language statements by means of a reverse parse evaluation into a partial program compilation that generates identifiable tokens for each of the at least one segment therein in response to the input being an on-demand request by the user; identifying a present programming language statement and at least one segment of the present programming language statement based on a location of the character position cursor; determining a finite set of information related to the present programming language statement and at least one segment of the present programming language statement based on the automatically generated partial compilation; automatically generating an assist window of the finite set of information; receiving a representation of a selection by the computer programmer from the finite set of information; and modifying the present programming language statement based at least in part on the selected information; enabling execution of a editing task in response to the input being a programming language editor command; enabling a first type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the step of enabling a first type of commit includes; identifying the commit key as a non-delimiter type commit key; and discarding the commit key; enabling a second type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the second type of commit includes; identifying the commit key as a delimiter type commit key; and inserting the commit key after the identified menu item in the present programming language statement; and adding to the present programming language statement at a location of the character position cursor in response to the input being a non-commit key type input character. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-readable medium containing computer executable instructions for assisting a user to modify a programming language statement in a computer program, the instructions performing the steps comprising:
-
enabling a programming language editor having a character position cursor; determining an identity of input to the programming language editor by the user; automatically resolving symbolic portions of available ones of a plurality of programming language statements by means of a reverse parse evaluation into a partial program compilation that generates identifiable tokens for each of the at least one segment therein in response to the input being on-demand request by the user; identifying a present programming language statement and at least one segment of the present programming language statement based on a location of the character position cursor; determining a finite set of information related to the present programming language statement and at least one segment of the present programming language statement based on the automatically generated partial compilation; automatically generating an assist window of the finite set of information; receiving a representation of a selection by the computer programmer from the finite set of information; and modifying the present programming language statement based at least in part on the selected information; enabling execution of a editing task in response to the input being a programming language editor command; enabling a first type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the step of enabling a first type of commit includes; identifying the commit key as a non-delimiter type commit key; and discarding the commit key; enabling a second type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the second type of commit includes; identifying the commit key as a delimiter type commit key; and inserting the commit key after the identified menu item in the present programming language statement; and adding to the present programming language statement at a location of the character position cursor in response to the input being a non-commit key type input character. - View Dependent Claims (7, 8)
-
Specification