<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thertli</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thertli"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Thertli"/>
		<updated>2026-05-20T01:09:46Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2770</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2770"/>
				<updated>2006-05-11T18:06:09Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
The goal of the language to express the commands is to be as short and fast typeable as possible. Therefore it refrains from using charactes for which multiple keys must be pressed. As reference, the US-English and Swiss-German keyboard layout is used. &lt;br /&gt;
The slash '/' is not a one key character on the Swiss-German keyboard, so it can be substituted by '$'&lt;br /&gt;
&lt;br /&gt;
Since the command is only an intermediate format, structure and readability are not considered first priority here.&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write&lt;br /&gt;
/c complex&amp;lt;br&amp;gt;&lt;br /&gt;
d read&amp;lt;br&amp;gt;&lt;br /&gt;
d imag&amp;lt;br&amp;gt;&lt;br /&gt;
1d add complex toadd,n&amp;lt;br&amp;gt;&lt;br /&gt;
1d mult complex tomult,n&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators:&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
* '$' (for Swiss-German keyboards)&lt;br /&gt;
The last three are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
The syntax is made easy to parse, since we have not much experience with parsers. &lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= blockStartChar classCreate {featureCreate}* blockEndChar&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* blockStartChar ::= '/' | '$'&lt;br /&gt;
* blockEndChar ::= '.'&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string', 'd'='double', 'f'='real'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2769</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2769"/>
				<updated>2006-05-11T18:05:41Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
The goal of the language to express the commands is to be as short and fast typeable as possible. Therefore it refrains from using charactes for which multiple keys must be pressed. As reference, the US-English and Swiss-German keyboard layout is used. &lt;br /&gt;
The slash '/' is not a one key character on the Swiss-German keyboard, so it can be substituted by '$'&lt;br /&gt;
&lt;br /&gt;
Since the command is only an intermediate format, structure and readability are not considered first priority here.&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write&lt;br /&gt;
/c complex&amp;lt;br&amp;gt;&lt;br /&gt;
d read&amp;lt;br&amp;gt;&lt;br /&gt;
d imag&amp;lt;br&amp;gt;&lt;br /&gt;
1d add complex toadd,n&amp;lt;br&amp;gt;&lt;br /&gt;
1d mult complex tomult,n&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
* '$' (for Swiss-German keyboards)&lt;br /&gt;
The last three are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
The syntax is made easy to parse, since we have not much experience with parsers. &lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= blockStartChar classCreate {featureCreate}* blockEndChar&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* blockStartChar ::= '/' | '$'&lt;br /&gt;
* blockEndChar ::= '.'&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string', 'd'='double', 'f'='real'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2768</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2768"/>
				<updated>2006-05-11T18:05:21Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
The goal of the language to express the commands is to be as short and fast typeable as possible. Therefore it refrains from using charactes for which multiple keys must be pressed. As reference, the US-English and Swiss-German keyboard layout is used. &lt;br /&gt;
The slash '/' is not a one key character on the Swiss-German keyboard, so it can be substituted by '$'&lt;br /&gt;
&lt;br /&gt;
Since the command is only an intermediate format, structure and readability is not considered first priority here.&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write&lt;br /&gt;
/c complex&amp;lt;br&amp;gt;&lt;br /&gt;
d read&amp;lt;br&amp;gt;&lt;br /&gt;
d imag&amp;lt;br&amp;gt;&lt;br /&gt;
1d add complex toadd,n&amp;lt;br&amp;gt;&lt;br /&gt;
1d mult complex tomult,n&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
* '$' (for Swiss-German keyboards)&lt;br /&gt;
The last three are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
The syntax is made easy to parse, since we have not much experience with parsers. &lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= blockStartChar classCreate {featureCreate}* blockEndChar&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* blockStartChar ::= '/' | '$'&lt;br /&gt;
* blockEndChar ::= '.'&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string', 'd'='double', 'f'='real'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2767</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2767"/>
				<updated>2006-05-11T18:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
The goal of the language to express the commands is to be as short as possible. Therefore it refrains from using charactes for which multiple keys must be pressed. As reference, the US-English and Swiss-German keyboard layout is used. &lt;br /&gt;
The slash '/' is not a one key character on the Swiss-German keyboard, so it can be substituted by '$'&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write&lt;br /&gt;
/c complex&amp;lt;br&amp;gt;&lt;br /&gt;
d read&amp;lt;br&amp;gt;&lt;br /&gt;
d imag&amp;lt;br&amp;gt;&lt;br /&gt;
1d add complex toadd,n&amp;lt;br&amp;gt;&lt;br /&gt;
1d mult complex tomult,n&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
* '$' (for Swiss-German keyboards)&lt;br /&gt;
The last three are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
The syntax is made easy to parse, since we have not much experience with parsers. &lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= blockStartChar classCreate {featureCreate}* blockEndChar&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* blockStartChar ::= '/' | '$'&lt;br /&gt;
* blockEndChar ::= '.'&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string', 'd'='double', 'f'='real'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2766</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2766"/>
				<updated>2006-05-11T18:00:52Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
The goal of the language to express the commands is to be as short as possible. Therefore it refrains from using charactes for which multiple keys must be pressed. As reference, the US-English and Swiss-German keyboard layout is used. &lt;br /&gt;
The slash '/' is not a one key character on the Swiss-German keyboard, so it can be substituted by '$'&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write:&lt;br /&gt;
/c complex&amp;lt;br&amp;gt;&lt;br /&gt;
d read&amp;lt;br&amp;gt;&lt;br /&gt;
d imag&amp;lt;br&amp;gt;&lt;br /&gt;
1d add complex toadd,n&amp;lt;br&amp;gt;&lt;br /&gt;
1d mult complex tomult,n&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
* '$' (for Swiss-German keyboards)&lt;br /&gt;
The last three are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
The syntax is made easy to parse, since we have not much experience with parsers. &lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= blockStartChar classCreate {featureCreate}* blockEndChar&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* blockStartChar ::= '/' | '$'&lt;br /&gt;
* blockEndChar ::= '.'&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string', 'd'='double', 'f'='real'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2765</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2765"/>
				<updated>2006-05-11T17:59:19Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
The goal of the language to express the commands is to be as short as possible. Therefore it refrains from using charactes for which multiple keys must be pressed. As reference, the US-English and Swiss-German keyboard layout is used. &lt;br /&gt;
The slash '/' is not a one key character on the Swiss-German keyboard, so it can be substituted by '$'&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write:&lt;br /&gt;
/c complex&amp;lt;br&amp;gt;&lt;br /&gt;
d read&amp;lt;br&amp;gt;&lt;br /&gt;
d imag&amp;lt;br&amp;gt;&lt;br /&gt;
1d add complex toadd,n&amp;lt;br&amp;gt;&lt;br /&gt;
1d mult complex tomult,n&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
* '$' (for Swiss-German keyboards)&lt;br /&gt;
The last three are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
The syntax is made easy to parse, since we have not much experience with parsers. &lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= blockStartChar classCreate {featureCreate}* blockEndChar&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* blockStartChar ::= '/' | '$'&lt;br /&gt;
* blockEndChar ::= '.'&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2764</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2764"/>
				<updated>2006-05-11T17:58:50Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
The goal of the language to express the commands is to be as short as possible. Therefore it refrains from using charactes for which multiple keys must be pressed. As reference, the US-English keyboard layout is used. &lt;br /&gt;
The slash '/' is not a one key character on the Swiss-German keyboard, so it can be substituted by '$'&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write:&lt;br /&gt;
/c complex&amp;lt;br&amp;gt;&lt;br /&gt;
d read&amp;lt;br&amp;gt;&lt;br /&gt;
d imag&amp;lt;br&amp;gt;&lt;br /&gt;
1d add complex toadd,n&amp;lt;br&amp;gt;&lt;br /&gt;
1d mult complex tomult,n&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
* '$' (for Swiss-German keyboards)&lt;br /&gt;
The last three are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
The syntax is made easy to parse, since we have not much experience with parsers. &lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= blockStartChar classCreate {featureCreate}* blockEndChar&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* blockStartChar ::= '/' | '$'&lt;br /&gt;
* blockEndChar ::= '.'&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2763</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2763"/>
				<updated>2006-05-11T17:40:33Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;/c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
Create a class COMPLEX with features real, imag, add and mult, arguments of add and mult are not void by precondition:&lt;br /&gt;
* Write:&lt;br /&gt;
/c complex&lt;br /&gt;
d real&lt;br /&gt;
d imag&lt;br /&gt;
1d add complex toadd,n&lt;br /&gt;
1d mult complex tomult,n&lt;br /&gt;
.&lt;br /&gt;
* press the Hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
The last two are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= '/' classCreate {featureCreate}* '.'&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* type ::= {'.' attribute}* identifier [',' attribute_list]&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2762</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2762"/>
				<updated>2006-05-11T17:37:12Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;c test,d .&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
===Lexical Analysis===&lt;br /&gt;
&lt;br /&gt;
Token seperators&lt;br /&gt;
* Whitespaces (' ','\n','\r','\t')&lt;br /&gt;
* ','&lt;br /&gt;
* '/'&lt;br /&gt;
The last two are tokens themselves, whitespaces are discarded&lt;br /&gt;
&lt;br /&gt;
Note: '.' does '''not''' seperate tokens.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* wizardExecBlock ::= '/' classCreate {featureCreate}* '.'&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* type ::= {'.' attribute}* identifier&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2696</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2696"/>
				<updated>2006-05-08T17:50:33Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard within the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;c test,d&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','attribute_list]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::= {identifier [',' attribute_list]}+&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
* featureCreate ::= [num_of_arguments] ## return_type name {argument_type argument_name}* [','attribute_list]&lt;br /&gt;
* return_type, argument_type ::= type&lt;br /&gt;
* name, argument_name ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* type ::= {'.' attribute}* identifier&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* attribute_list ::= {attribute}+&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
===Explanation===&lt;br /&gt;
&lt;br /&gt;
*Feature creation:&lt;br /&gt;
** If num_of_arguments if not given, the feature is a attribute, otherwise it's a method.&lt;br /&gt;
** If return type is 'v'='void' then it's a procedure.&lt;br /&gt;
** Some mappings/abbreviations from heavily used types are intended. For example 'i'='integer', 's'='string'&lt;br /&gt;
* Class names are automatically converted to uppercase (it's easier to write all in lowercase)&lt;br /&gt;
&lt;br /&gt;
===Working on===&lt;br /&gt;
&lt;br /&gt;
* Allow class to be constructed with several features together.&lt;br /&gt;
* Allow to express to which class a feature should be added.&lt;br /&gt;
* Specify how exactly the wizard is called.&lt;br /&gt;
* Specify how to do lexical analysis.&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2653</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2653"/>
				<updated>2006-05-05T21:41:30Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Idea===&lt;br /&gt;
&lt;br /&gt;
To execute the wizard with the editor you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write the command (possibly over some lines)&lt;br /&gt;
* Press a hotkey to execute the command&lt;br /&gt;
&lt;br /&gt;
Which hotkey we use is to be determined.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
To create class TEST which is deferred you have to do the following:&lt;br /&gt;
&lt;br /&gt;
* Write &amp;quot;c test,d&amp;quot;&lt;br /&gt;
* Press the hotkey&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','{attribute}+]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::=...&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2652</id>
		<title>Advanced Class and Feature Wizard</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Advanced_Class_and_Feature_Wizard&amp;diff=2652"/>
				<updated>2006-05-05T21:36:06Z</updated>
		
		<summary type="html">&lt;p&gt;Thertli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
As a summary we could say that we improve the usability of the most important wizards, e.g. classwizard and featurewizard, by adding new features, extending the user interface and simplifying the handling.&lt;br /&gt;
&lt;br /&gt;
Following the priority list of our project, beginning with the most important aspect of our work&lt;br /&gt;
&lt;br /&gt;
* editor based wizard execution&lt;br /&gt;
* combobox for post- and precondition&lt;br /&gt;
* pick &amp;amp; drop&lt;br /&gt;
* undo/redo functionality within the wizard&lt;br /&gt;
* docking the wizard in a fixed window - not a pop-up anymore&lt;br /&gt;
* update permanently the editor while using the wizard&lt;br /&gt;
* tooltips which provides help&lt;br /&gt;
* beginner-tour&lt;br /&gt;
&lt;br /&gt;
=Work=&lt;br /&gt;
&lt;br /&gt;
Right now, we are occupied with:&lt;br /&gt;
&lt;br /&gt;
* compiling ES on Linux systems&lt;br /&gt;
* supplying work to every member of the team&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
&lt;br /&gt;
* cannot open projects in ES (waiting for new release/build)&lt;br /&gt;
&lt;br /&gt;
==TO-DO==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 30, 2006 ==&lt;br /&gt;
&lt;br /&gt;
* editing wikipage&lt;br /&gt;
* ES compiled on windows/linux-x86&lt;br /&gt;
&lt;br /&gt;
=Project Details=&lt;br /&gt;
&lt;br /&gt;
==Editor Based Wizard Execution==&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
&lt;br /&gt;
Wizards are usually only accessible through a GUI Window. This is convenient for beginners, but will slow down advanced programmers.&lt;br /&gt;
So there should be a possibility to access the wizard through the editor directly with an interface similar to a command line interface.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
As the project is still in a starting phase, the information here is incomplete and could be changed.&lt;br /&gt;
&lt;br /&gt;
'##' means that the two symbols have no whitespace bewteen&lt;br /&gt;
&lt;br /&gt;
These symbols represent a stream of tokens:&lt;br /&gt;
&lt;br /&gt;
* classCreate ::= [num_of_parents] ## 'c' className  [inheritance-list] [','{attribute}+]&lt;br /&gt;
* inheritance-list ::= {inheritance_clause}*&lt;br /&gt;
* inhertitance_clause ::=...&lt;br /&gt;
* attribute ::= letter&lt;br /&gt;
* className ::= identifier&lt;br /&gt;
&lt;br /&gt;
These symbols represent one token:&lt;br /&gt;
&lt;br /&gt;
* identifier ::= {letter}*&lt;br /&gt;
* letter ::= 'a'..'z'&lt;br /&gt;
* number ::= digit+&lt;br /&gt;
* digit ::= '0'..'9'&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
* [[User:Volkan|Volkan Arslan]] (Advisor) &lt;br /&gt;
* [[User:Chr1s| Christoph Lins]] (project leader)&lt;br /&gt;
* [[User:Haan| Andreas Hasler]] (working on updating permanently the editor while using the wizard)&lt;br /&gt;
* [[User:Thertli| Timon Hertli]] (working on editor based wizard execution)&lt;br /&gt;
* Peter von Rohr (working on beginner-tour / tooltips)&lt;br /&gt;
* [[User:DavidFlatz| David Flatz]] &lt;br /&gt;
* Damien Müllhaupt (docking the wizard)&lt;br /&gt;
* Patricio Ronc&lt;br /&gt;
&lt;br /&gt;
if you have questions or constructive criticism concerning our project and this wiki-page then write an Email to the project leader or just join our mailinglist: &lt;br /&gt;
&lt;br /&gt;
es-wiz 'at' origo '.' ethz '.' ch&lt;/div&gt;</summary>
		<author><name>Thertli</name></author>	</entry>

	</feed>