1 2001-08-04 Miguel de Icaza <miguel@ximian.com>
3 * rootcontext.cs: Beginning of the class resolution.
5 2001-08-03 Miguel de Icaza <miguel@ximian.com>
7 * rootcontext.cs: Provide better error reporting.
9 * cs-parser.jay (interface_base): set our $$ to be interfaces.
11 * rootcontext.cs (CreateInterface): Handle the case where there
12 are no parent interfaces.
14 (CloseTypes): Routine to flush types at the end.
15 (CreateInterface): Track types.
16 (GetInterfaces): Returns an array of Types from the list of
19 * typemanager.c (AddUserType): Mechanism to track user types (puts
20 the type on the global type hash, and allows us to close it at the
23 2001-08-02 Miguel de Icaza <miguel@ximian.com>
25 * tree.cs: Removed RecordType, added RecordClass, RecordStruct and
26 RecordInterface instead.
28 * cs-parser.jay: Updated to reflect changes above.
30 * decl.cs (Definition): Keep track of the TypeBuilder type that
31 represents this type here. Not sure we will use it in the long
32 run, but wont hurt for now.
34 * driver.cs: Smaller changes to accomodate the new code.
36 Call ResolveInterfaceBases, Call ResolveClassBases, Save assembly
39 * rootcontext.cs (CreateInterface): New method, used to create
40 the System.TypeBuilder type for interfaces.
41 (ResolveInterfaces): new entry point to resolve the interface
43 (CodeGen): Property, used to keep track of the code generator.
45 2001-07-26 Miguel de Icaza <miguel@ximian.com>
47 * cs-parser.jay: Add a second production for delegate_declaration
50 (enum_body): Put an opt_comma here instead of putting it on
51 enum_body or enum_member_declarations so we can handle trailing
52 commas on enumeration members. Gets rid of a shift/reduce.
54 (type_list): Need a COMMA in the middle.
56 (indexer_declaration): Tell tokenizer to recognize get/set
60 * Re-add the parser target.
62 2001-07-13 Simon Cozens <simon@simon-cozens.org>
64 * cs-parser.jay: Add precendence rules for a number of operators
65 ot reduce the number of shift/reduce conflicts in the grammar.
67 2001-07-17 Miguel de Icaza <miguel@ximian.com>
69 * tree.cs: moved IGenerator interface and renamed it to ITreeDump
72 Get rid of old crufty code.
74 * rootcontext.cs: Use this to keep track of the parsed
75 representation and the defined types available to the program.
77 * gen-treedump.cs: adjust for new convention.
79 * type.cs: Split out the type manager, and the assembly builder
82 * typemanager.cs: the type manager will live here now.
84 * cil-codegen.cs: And the code generator here.
86 2001-07-14 Sean MacIsaac <macisaac@ximian.com>
88 * makefile: Fixed up for easy making.
90 2001-07-13 Simon Cozens <simon@simon-cozens.org>
92 * cs-parser.jay (rank_specifier): Remove a conflict by reordering
95 (unary_expression): Expand pre_increment_expression and
96 post_decrement_expression to reduce a shift/reduce.
98 2001-07-11 Simon Cozens
100 * cs-tokenizer.cs: Hex numbers should begin with a 0.
102 Improve allow_keyword_as_indent name.
104 2001-06-19 Miguel de Icaza <miguel@ximian.com>
106 * Adjustments for Beta2.
108 2001-06-13 Miguel de Icaza <miguel@ximian.com>
110 * decl.cs: Added `Define' abstract method.
111 (InTransit): new property, used to catch recursive definitions.
113 * interface.cs: Implement `Define'.
115 * modifiers.cs: Map Modifiers.constants to
116 System.Reflection.TypeAttribute flags.
118 * class.cs: Keep track of types and user-defined types.
119 (BuilderInit): New method for creating an assembly
120 (ResolveType): New function to launch the resolution process, only
121 used by interfaces for now.
123 * cs-parser.jay: Keep track of Classes, Structs and Interfaces
124 that are inserted into the name space.
126 2001-06-08 Miguel de Icaza <miguel@ximian.com>
128 * ARGH. I have screwed up my tree so many times due to the use of
129 rsync rather than using CVS. Going to fix this at once.
131 * driver.cs: Objetify driver. Load assemblies, use assemblies to
134 2001-06-07 Miguel de Icaza <miguel@ximian.com>
136 * Experiment successful: Use System.Type rather that our own
139 2001-05-25 Miguel de Icaza <miguel@ximian.com>
141 * cs-parser.jay: Removed nsAliases from here.
143 Use new namespaces, handle `using XXX;'
145 * namespace.cs: Reimplemented namespace handling, use a recursive
146 definition of the class. Now we can keep track of using clauses
147 and catch invalid using clauses.
149 2001-05-24 Miguel de Icaza <miguel@ximian.com>
151 * gen-treedump.cs: Adapted for all the renaming.
153 * expression.cs (Expression): this class now has a Type property
154 which returns an expression Type.
156 (Probe::, New::, TypeOf::, SizeOf::, Constant::): renamed from
157 `Type', as this has a different meaning now in the base
159 2001-05-22 Miguel de Icaza <miguel@ximian.com>
161 * interface.cs, class.cs: Removed from all the sources the
162 references to signature computation, as we can not do method
163 signature computation during the parsing time, as we are not
164 trying to solve at that point distinguishing:
168 void a (NS.Blah x) {}
171 Which depending on the context might be valid or not, as we do not
172 know if Blah is the same thing as NS.Blah at that point.
174 * Redid everything so the code uses TypeRefs now instead of
175 Types. TypeRefs are just temporary type placeholders, that need
176 to be resolved. They initially have a pointer to a string and the
177 current scope in which they are used. This is used later by the
178 compiler to resolve the reference to an actual Type.
180 * DeclSpace is no longer a CIR.Type, and neither are
181 TypeContainers (Class and Struct) nor Interfaces nor Enums. They
182 are all DeclSpaces, but no Types.
184 * type.cs (TypeRefManager): This implements the TypeRef manager,
185 which keeps track of all the types that need to be resolved after
186 the parsing has finished.
188 2001-05-13 Miguel de Icaza <miguel@ximian.com>
190 * ARGH. We are going to have to store `foreach' as a class rather
191 than resolving it, as we need to verify error 1579 after name
192 resolution. *OR* we could keep a flag that says `This request to
193 IEnumerator comes from a foreach statement' which we can then use
194 to generate the error.
196 2001-05-10 Miguel de Icaza <miguel@ximian.com>
198 * class.cs (TypeContainer.AddMethod): we now add methods to the
199 MethodGroup instead of the method hashtable.
201 * expression.cs: Add MethodGroup abstraction, which gets us one
202 step closer to the specification in the way we handle method
205 * cs-parser.jay (primary_expression): qualified_identifier now
206 tried to match up an identifier to a local variable reference or
207 to a parameter reference.
209 current_local_parameters is now a parser global variable that
210 points to the current parameters for the block, used during name
213 (property_declaration): Now creates an implicit `value' argument to
216 2001-05-09 Miguel de Icaza <miguel@ximian.com>
218 * parameter.cs: Do not use `param' arguments as part of the
219 signature, per the spec.
221 2001-05-08 Miguel de Icaza <miguel@ximian.com>
223 * decl.cs: Base class for classes, structs and interfaces. This
224 is the "Declaration Space"
226 * cs-parser.jay: Use CheckDef for checking declaration errors
227 instead of having one on each function.
229 * class.cs: Factor out some code for handling error handling in
230 accordance to the "Declarations" section in the "Basic Concepts"
231 chapter in the ECMA C# spec.
233 * interface.cs: Make all interface member classes derive from
236 2001-05-07 Miguel de Icaza <miguel@ximian.com>
238 * Many things: all interfaces are parsed and generated in
239 gen-treedump. Support for member variables, constructors,
240 destructors, properties, constants is there.
242 Beginning of the IL backend, but very little done, just there for
245 2001-04-29 Miguel de Icaza <miguel@ximian.com>
247 * cs-parser.jay: Fix labeled statement.
249 * cs-tokenizer.cs (escape): Escape " and ' always.
250 ref_line, ref_name: keep track of the line/filename as instructed
251 by #line by the compiler.
254 2001-04-27 Miguel de Icaza <miguel@ximian.com>
256 * System.CodeDOM/CodeBinaryOperatorExpression.cs: Rearrange enum
257 to match the values in System.CodeDOM.
259 Divid renamed to Divide.
261 * System.CodeDOM/CodeForLoopStatement.cs: Always have valid
263 (Statements.set): remove.
265 * System.CodeDOM/CodeCatchClause.cs: always have a valid
268 * System.CodeDOM/CodeIfStatement.cs: trueStatements and
269 falseStatements always have valid values.
271 * cs-parser.jay: Use System.CodeDOM now.