| java.lang.Object de.uka.ilkd.key.ocl.gf.GfCapsule
GfCapsule | class GfCapsule (Code) | | |
Constructor Summary | |
public | GfCapsule(String[] gfcmd) Starts GF with the given command gfcmd in another process. |
fromProc | BufferedReader fromProc(Code) | | The output from GF is in here.
Only the read methods, initializeGF and the prober objects access this.
|
toProc | BufferedWriter toProc(Code) | | Used to leave messages for GF here.
But only in send and special probers that clean up with undo
after them (or don't change the state like PrintnameLoader).
|
GfCapsule | public GfCapsule(String[] gfcmd)(Code) | | Starts GF with the given command gfcmd in another process.
Sets up the reader and writer to that process.
Does in it self not read anything from GF.
Parameters: gfcmd - The complete command to start GF, including 'gf' itself. |
readGfGreetings | protected StringTuple readGfGreetings()(Code) | | reads the greeting text from GF
S tuple with first = the last read GF line, which should be the first loading lineand second = The greetings string |
readGfLoading | protected StringTuple readGfLoading(String readresult, ProgressMonitor pm)(Code) | | reads the loading and compiling messages from GF
Parameters: readresult - the first loading line Parameters: pm - to monitor the loading progress. May be null A tuple with first = the first line from >gfinit< or >gfedit<and second = the loading message as pure text |
readGfedit | protected GfeditResult readGfedit(boolean newObj)(Code) | | Reads the <gfedit> part from GF's XML output.
The different subtags are put into the result
Parameters: newObj - If a new object in the editor has been started.If the to-be-read hmsg contains the newObject flag, that overwrites this parameter the read tags, partially halfy parsed, partially raw.The way the different form methods expect it. |
readGfinit | protected NewCategoryMenuResult readGfinit()(Code) | | reads the part between >gfinit< and >/gfinit<
the data for the new category menu |
readHmsg | protected Hmsg readHmsg(String prevreadresult)(Code) | | Reads the hmsg part of the XML that is put out from GF.
Everything in [] given in front of a GF command will be rewritten here.
This method does nothing when no hmsg part is present.
If a '$' appears in this string, everything that comes after it
will be in result.second.
;; and [] don't work in the [] for the hmsg,
therfore the following replacements are done:
%% for ;;
( for [
) for ]
If one of the characters c,t,n comes before, the following is done:
c The output will be cleared before the linearization (TODO: done anyway?)
t The treeChanged flag will be set to true
n The newObject flag will be set to true
p No other probing run should be done (avoid cycles)
r To prevent the execution of automatically triggered commands to prevent recursion
Parameters: prevreadresult - The last line read from GF first: the last line this method has read;second: the string after $, null if that is not present |
readLin | protected String readLin()(Code) | | reads the linearizations in all language.
seems to expect the first line of the XML structure
(< lin) already to be read
Accumulates the GF-output between tags
|
readMessage | protected String readMessage()(Code) | | Parses the GF-output between tags
and returns it.
The read message. |
readNewMenu | protected NewCategoryMenuResult readNewMenu()(Code) | | reads the cat entries and puts them into result.menuContent,
after that reads
the names of the languages and puts them into the result.languages
The loaded grammar files are put into result.paths,
a guessed grammar name into result.grammarName
Parses the GF-output between tags
|
readRefinementMenu | protected Vector readRefinementMenu()(Code) | | Parses the GF-output between tags
and puts a StringTuple for each show/send pair into the
return vector.
A Vector of StringTuple as described above |
readTree | protected String readTree()(Code) | | reads in the tree and calls formTree without start end end tag of tree
expects the first starting XML tag tree to be already read
the read tags for the tree or null if a read error occurs |
realSend | protected void realSend(String command)(Code) | | Does the actual writing of command to the GF process via STDIN
Parameters: command - exactly the string that is going to be sent |
skipChild | protected void skipChild(String opening)(Code) | | Reads the output from GF until the ending tag corresponding to the
given opening tag is read.
Parameters: opening - tag in the format of >gfinit< |
|
|