[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/ilasm ilasm_build.c,1.19,1.20 ilasm_bui
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/ilasm ilasm_build.c,1.19,1.20 ilasm_build.h,1.7,1.8 ilasm_grammar.y,1.29,1.30 ilasm_scanner.l,1.10,1.11 |
Date: |
Tue, 18 Feb 2003 00:25:12 -0500 |
Update of /cvsroot/dotgnu-pnet/pnet/ilasm
In directory subversions:/tmp/cvs-serv8588/ilasm
Modified Files:
ilasm_build.c ilasm_build.h ilasm_grammar.y ilasm_scanner.l
Log Message:
Add support for Generic IL to "image", "ilasm", and "ildasm"; some
syntax extensions for Generic C#, but no semantic analysis (yet).
Index: ilasm_build.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ilasm/ilasm_build.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** ilasm_build.c 15 Feb 2003 01:57:52 -0000 1.19
--- ilasm_build.c 18 Feb 2003 05:25:08 -0000 1.20
***************
*** 254,261 ****
}
! void ILAsmBuildNewClass(const char *name, ILClass *parent, ILUInt32 attrs)
{
ILClass *info;
char uniqueName[64];
/* Set the default parent to "System.Object" if necessary */
--- 254,267 ----
}
! void ILAsmBuildNewClass(const char *name, ILAsmParamInfo *genericParams,
! ILClass *parent, ILUInt32 attrs)
{
ILClass *info;
char uniqueName[64];
+ ILAsmParamInfo *nextGeneric;
+ ILUInt32 genericNum;
+ ILGenericPar *genPar;
+ ILProgramItem *constraint;
+ ILTypeSpec *spec;
/* Set the default parent to "System.Object" if necessary */
***************
*** 333,336 ****
--- 339,381 ----
/* Set the class attributes */
ILClassSetAttrs(info, ~((ILUInt32)0), attrs);
+
+ /* Add the formal generic parameters, if necessary */
+ genericNum = 0;
+ while(genericParams != 0)
+ {
+ nextGeneric = genericParams->next;
+ genPar = ILGenericParCreate
+ (ILAsmImage, 0, ILToProgramItem(info),
genericNum);
+ if(!genPar)
+ {
+ ILAsmOutOfMemory();
+ }
+ if(!ILGenericParSetName(genPar, genericParams->name))
+ {
+ ILAsmOutOfMemory();
+ }
+ if(genericParams->type)
+ {
+ if(ILType_IsClass(genericParams->type) ||
+ ILType_IsValueType(genericParams->type))
+ {
+ constraint =
+
ILToProgramItem(ILType_ToClass(genericParams->type));
+ }
+ else
+ {
+ spec = ILTypeSpecCreate(ILAsmImage, 0,
genericParams->type);
+ if(!spec)
+ {
+ ILAsmOutOfMemory();
+ }
+ constraint = ILToProgramItem(spec);
+ }
+ ILGenericParSetConstraint(genPar, constraint);
+ }
+ ILFree(genericParams);
+ genericParams = nextGeneric;
+ ++genericNum;
+ }
/* Add the previous class to the class stack */
Index: ilasm_build.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ilasm/ilasm_build.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** ilasm_build.h 13 Dec 2002 00:33:30 -0000 1.7
--- ilasm_build.h 18 Feb 2003 05:25:08 -0000 1.8
***************
*** 142,146 ****
* Create a new class and push it onto the class stack.
*/
! void ILAsmBuildNewClass(const char *name, ILClass *parent, ILUInt32 attrs);
/*
--- 142,147 ----
* Create a new class and push it onto the class stack.
*/
! void ILAsmBuildNewClass(const char *name, ILAsmParamInfo *genericParams,
! ILClass *parent, ILUInt32
attrs);
/*
Index: ilasm_grammar.y
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ilasm/ilasm_grammar.y,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -r1.29 -r1.30
*** ilasm_grammar.y 30 Jan 2003 10:16:45 -0000 1.29
--- ilasm_grammar.y 18 Feb 2003 05:25:08 -0000 1.30
***************
*** 253,260 ****
--- 253,275 ----
ILType *returnType,
ILAsmParamInfo
*params,
+ ILAsmParamInfo
*genericParams,
int freeParams)
{
ILType *type;
ILAsmParamInfo *nextParam;
+ ILUInt32 numGenericParams;
+
+ /* Set the "generic" flag if there are generic parameters */
+ numGenericParams = 0;
+ if(genericParams)
+ {
+ callingConventions |= IL_META_CALLCONV_GENERIC;
+ nextParam = genericParams;
+ while(nextParam != 0)
+ {
+ ++numGenericParams;
+ nextParam = nextParam->next;
+ }
+ }
/* Create the main method type block */
***************
*** 265,268 ****
--- 280,284 ----
}
ILTypeSetCallConv(type, (ILUInt32)callingConventions);
+ ILType_SetNumGen(type, numGenericParams);
/* Add the parameters to the method signature */
***************
*** 296,299 ****
--- 312,344 ----
/*
+ * Create a method specification token.
+ */
+ static ILToken CreateMethodSpec(ILToken method, ILAsmParamInfo *params)
+ {
+ ILMember *member;
+ ILType *signature;
+ ILMethodSpec *spec;
+
+ /* Convert the method token back into a MethodDef or MemberRef */
+ member = ILMember_FromToken(ILAsmImage, method);
+ if(!member)
+ {
+ return method;
+ }
+
+ /* Create the method instantiation signature */
+ signature = CreateMethodSig(IL_META_CALLCONV_INSTANTIATION,
+ ILType_Invalid,
params, 0, 1);
+
+ /* Create the MethodSpec token */
+ spec = ILMethodSpecCreate(ILAsmImage, 0, member, signature);
+ if(!spec)
+ {
+ ILAsmOutOfMemory();
+ }
+ return ILMethodSpec_Token(spec);
+ }
+
+ /*
* Add parameter definition information to a method signature.
*/
***************
*** 897,901 ****
%type <floatValue> Float64 InstructionFloat
%type <byteList> ByteList
! %type <classInfo> ExtendsClause ClassName CatchClause
%type <type> Type ArrayBounds Bounds
%type <marshType> MarshalledType
--- 942,946 ----
%type <floatValue> Float64 InstructionFloat
%type <byteList> ByteList
! %type <classInfo> ExtendsClause ClassName CatchClause ClassNameTypeSpec
%type <type> Type ArrayBounds Bounds
%type <marshType> MarshalledType
***************
*** 909,913 ****
--- 954,963 ----
%type <exception> JavaExceptionClause JavaExceptionClauses
%type <token> MethodReference InstanceMethodReference
+ %type <token> GenericMethodReference
%type <integer> DataItemCount
+ %type <params> FormalGenericParamsOpt FormalGenericParams
+ %type <params> FormalGenericParam MethodRefGenericParamsOpt
+ %type <params> MethodRefGenericParams
+ %type <type> ActualGenericParams
%expect 8
***************
*** 1178,1184 ****
ClassHeading
! : D_CLASS ClassAttributes Identifier ExtendsClause {
/* Create the new class */
! ILAsmBuildNewClass($3.string, $4,
(ILUInt32)($2));
ILAsmBuildPushScope(ILAsmClass);
}
--- 1228,1235 ----
ClassHeading
! : D_CLASS ClassAttributes Identifier FormalGenericParamsOpt
ExtendsClause {
/* Create the new class */
! ILAsmBuildNewClass($3.string, $4.paramFirst,
! $5,
(ILUInt32)($2));
ILAsmBuildPushScope(ILAsmClass);
}
***************
*** 1186,1189 ****
--- 1237,1291 ----
;
+ FormalGenericParamsOpt
+ : /* empty */ { $$.paramFirst = 0;
$$.paramLast = 0; }
+ | '<' FormalGenericParams '>' { $$ = $2; }
+ ;
+
+ FormalGenericParams
+ : FormalGenericParam { $$ = $1; }
+ | FormalGenericParams ',' FormalGenericParam {
+ $1.paramLast->next = $3.paramFirst;
+ $$.paramFirst = $1.paramFirst;
+ $$.paramLast = $3.paramLast;
+ }
+ ;
+
+ FormalGenericParam
+ : '(' TypeSpecification ')' Identifier {
+ /* Generic parameter with a type constraint */
+ ILAsmParamInfo *param;
+ param = (ILAsmParamInfo
*)ILMalloc(sizeof(ILAsmParamInfo));
+ if(!param)
+ {
+ ILAsmOutOfMemory();
+ }
+ param->type = $2.type;
+ param->nativeType.string = "";
+ param->nativeType.len = 0;
+ param->parameterAttrs = 0;
+ param->name = $4.string;
+ param->next = 0;
+ $$.paramFirst = param;
+ $$.paramLast = param;
+ }
+ | Identifier {
+ /* Generic parameter with no constraints */
+ ILAsmParamInfo *param;
+ param = (ILAsmParamInfo
*)ILMalloc(sizeof(ILAsmParamInfo));
+ if(!param)
+ {
+ ILAsmOutOfMemory();
+ }
+ param->type = 0;
+ param->nativeType.string = "";
+ param->nativeType.len = 0;
+ param->parameterAttrs = 0;
+ param->name = $1.string;
+ param->next = 0;
+ $$.paramFirst = param;
+ $$.paramLast = param;
+ }
+ ;
+
ClassAttributes
: /* empty */ { $$ = 0; }
***************
*** 1230,1234 ****
$$ = 0;
}
! | K_EXTENDS ClassName {
/* Extend a named class */
$$ = $2;
--- 1332,1336 ----
$$ = 0;
}
! | K_EXTENDS ClassNameTypeSpec {
/* Extend a named class */
$$ = $2;
***************
*** 1242,1246 ****
ClassNameList
! : ClassName {
if(!ILClassAddImplements(ILAsmClass, $1, 0))
{
--- 1344,1348 ----
ClassNameList
! : ClassNameTypeSpec {
if(!ILClassAddImplements(ILAsmClass, $1, 0))
{
***************
*** 1248,1252 ****
}
}
! | ClassNameList ',' ClassName {
if(!ILClassAddImplements(ILAsmClass, $3, 0))
{
--- 1350,1354 ----
}
}
! | ClassNameList ',' ClassNameTypeSpec {
if(!ILClassAddImplements(ILAsmClass, $3, 0))
{
***************
*** 1334,1338 ****
/* Create a signature block for the methods */
! sig = CreateMethodSig($6, $7, $12.paramFirst,
1);
/* Create a MemberRef for the first part of the
override */
--- 1436,1440 ----
/* Create a signature block for the methods */
! sig = CreateMethodSig($6, $7, $12.paramFirst,
0, 1);
/* Create a MemberRef for the first part of the
override */
***************
*** 1725,1734 ****
MethodHeading
: D_METHOD MethodAttributes CallingConventions ParameterAttributes
! MarshalledType MethodName '(' OptSignatureArguments ')'
! ImplementationAttributes
{
ILType *sig;
ILMethod *method;
ILUInt32 callConv;
/* Create the method definition */
--- 1827,1842 ----
MethodHeading
: D_METHOD MethodAttributes CallingConventions ParameterAttributes
! MarshalledType MethodName FormalGenericParamsOpt
! '(' OptSignatureArguments ')' ImplementationAttributes
{
ILType *sig;
ILMethod *method;
ILUInt32 callConv;
+ ILAsmParamInfo *genericParams;
+ ILAsmParamInfo *nextGeneric;
+ ILUInt32 genericNum;
+ ILGenericPar *genPar;
+ ILProgramItem *constraint;
+ ILTypeSpec *spec;
/* Create the method definition */
***************
*** 1741,1750 ****
callConv |= IL_META_CALLCONV_HASTHIS;
}
! sig = CreateMethodSig(callConv, $5.type,
$8.paramFirst, 0);
method = ILAsmMethodCreate
(ILAsmClass, $6.string,
$2.flags, sig);
! ILMethodSetImplAttrs(method, ~0,
(ILUInt16)($10));
! ILAsmOutAddParams($8.paramFirst, callConv);
! AddMethodParams(method, $4, $5.nativeType,
$8.paramFirst);
if(($2.flags & IL_META_METHODDEF_PINVOKE_IMPL)
!= 0)
{
--- 1849,1859 ----
callConv |= IL_META_CALLCONV_HASTHIS;
}
! sig = CreateMethodSig(callConv, $5.type,
$9.paramFirst,
!
$7.paramFirst, 0);
method = ILAsmMethodCreate
(ILAsmClass, $6.string,
$2.flags, sig);
! ILMethodSetImplAttrs(method, ~0,
(ILUInt16)($11));
! ILAsmOutAddParams($9.paramFirst, callConv);
! AddMethodParams(method, $4, $5.nativeType,
$9.paramFirst);
if(($2.flags & IL_META_METHODDEF_PINVOKE_IMPL)
!= 0)
{
***************
*** 1758,1761 ****
--- 1867,1911 ----
}
+ /* Add the formal generic parameters to the
method */
+ genericNum = 0;
+ genericParams = $7.paramFirst;
+ while(genericParams != 0)
+ {
+ nextGeneric = genericParams->next;
+ genPar = ILGenericParCreate
+ (ILAsmImage, 0,
ILToProgramItem(method), genericNum);
+ if(!genPar)
+ {
+ ILAsmOutOfMemory();
+ }
+ if(!ILGenericParSetName(genPar,
genericParams->name))
+ {
+ ILAsmOutOfMemory();
+ }
+ if(genericParams->type)
+ {
+
if(ILType_IsClass(genericParams->type) ||
+
ILType_IsValueType(genericParams->type))
+ {
+ constraint =
ILToProgramItem
+
(ILType_ToClass(genericParams->type));
+ }
+ else
+ {
+ spec = ILTypeSpecCreate
+ (ILAsmImage, 0,
genericParams->type);
+ if(!spec)
+ {
+
ILAsmOutOfMemory();
+ }
+ constraint =
ILToProgramItem(spec);
+ }
+
ILGenericParSetConstraint(genPar, constraint);
+ }
+ ILFree(genericParams);
+ genericParams = nextGeneric;
+ ++genericNum;
+ }
+
/* The current scope is now the method */
ILAsmBuildPushScope(method);
***************
*** 2278,2282 ****
MethodName '(' OptSignatureArguments ')' {
ILType *sig;
! sig = CreateMethodSig($1, $2, $7.paramFirst, 1);
$$ = ILAsmResolveMember($3.item, $5.string, sig,
IL_META_MEMBERKIND_METHOD);
--- 2428,2432 ----
MethodName '(' OptSignatureArguments ')' {
ILType *sig;
! sig = CreateMethodSig($1, $2, $7.paramFirst, 0,
1);
$$ = ILAsmResolveMember($3.item, $5.string, sig,
IL_META_MEMBERKIND_METHOD);
***************
*** 2284,2288 ****
| CallingConventions Type MethodName '(' OptSignatureArguments ')' {
/* Reference a method in the global module
class */
! ILType *sig = CreateMethodSig($1, $2,
$5.paramFirst, 1);
$$ =
ILAsmResolveMember(ILToProgramItem(ILAsmModuleClass),
$3.string, sig,
--- 2434,2438 ----
| CallingConventions Type MethodName '(' OptSignatureArguments ')' {
/* Reference a method in the global module
class */
! ILType *sig = CreateMethodSig($1, $2,
$5.paramFirst, 0, 1);
$$ =
ILAsmResolveMember(ILToProgramItem(ILAsmModuleClass),
$3.string, sig,
***************
*** 2291,2310 ****
;
InstanceMethodReference
: CallingConventions Type TypeSpecification COLON_COLON
! MethodName '(' OptSignatureArguments ')' {
ILType *sig;
sig = CreateMethodSig($1 |
IL_META_CALLCONV_HASTHIS,
! $2,
$7.paramFirst, 1);
$$ = ILAsmResolveMember($3.item, $5.string, sig,
IL_META_MEMBERKIND_METHOD);
}
! | CallingConventions Type MethodName '(' OptSignatureArguments ')' {
/* Reference a method in the global module
class */
! ILType *sig = CreateMethodSig($1 |
IL_META_CALLCONV_HASTHIS,
!
$2, $5.paramFirst, 1);
$$ =
ILAsmResolveMember(ILToProgramItem(ILAsmModuleClass),
$3.string, sig,
IL_META_MEMBERKIND_METHOD);
}
;
--- 2441,2540 ----
;
+ GenericMethodReference
+ : CallingConventions Type TypeSpecification COLON_COLON
+ MethodName MethodRefGenericParamsOpt
+ '(' OptSignatureArguments ')' {
+ ILType *sig;
+ sig = CreateMethodSig($1, $2, $8.paramFirst,
$6.paramFirst, 1);
+ $$ = ILAsmResolveMember($3.item, $5.string, sig,
+
IL_META_MEMBERKIND_METHOD);
+ if($6.paramFirst)
+ {
+ $$ = CreateMethodSpec($$,
$6.paramFirst);
+ }
+ }
+ | CallingConventions Type MethodName MethodRefGenericParamsOpt
+ '(' OptSignatureArguments ')' {
+ /* Reference a method in the global module
class */
+ ILType *sig = CreateMethodSig
+ ($1, $2, $6.paramFirst,
$4.paramFirst, 1);
+ $$ =
ILAsmResolveMember(ILToProgramItem(ILAsmModuleClass),
+
$3.string, sig,
+
IL_META_MEMBERKIND_METHOD);
+ if($4.paramFirst)
+ {
+ $$ = CreateMethodSpec($$,
$4.paramFirst);
+ }
+ }
+ ;
+
InstanceMethodReference
: CallingConventions Type TypeSpecification COLON_COLON
! MethodName MethodRefGenericParamsOpt
! '(' OptSignatureArguments ')' {
ILType *sig;
sig = CreateMethodSig($1 |
IL_META_CALLCONV_HASTHIS,
! $2,
$8.paramFirst, $6.paramFirst, 1);
$$ = ILAsmResolveMember($3.item, $5.string, sig,
IL_META_MEMBERKIND_METHOD);
+ if($6.paramFirst)
+ {
+ $$ = CreateMethodSpec($$,
$6.paramFirst);
+ }
}
! | CallingConventions Type MethodName MethodRefGenericParamsOpt
! '(' OptSignatureArguments ')' {
/* Reference a method in the global module
class */
! ILType *sig = CreateMethodSig
! ($1 | IL_META_CALLCONV_HASTHIS,
! $2, $6.paramFirst, $4.paramFirst,
1);
$$ =
ILAsmResolveMember(ILToProgramItem(ILAsmModuleClass),
$3.string, sig,
IL_META_MEMBERKIND_METHOD);
+ if($4.paramFirst)
+ {
+ $$ = CreateMethodSpec($$,
$4.paramFirst);
+ }
+ }
+ ;
+
+ MethodRefGenericParamsOpt
+ : /* empty */ { $$.paramFirst = 0;
$$.paramLast = 0; }
+ | '<' MethodRefGenericParams '>' { $$ = $2; }
+ ;
+
+ MethodRefGenericParams
+ : Type {
+ ILAsmParamInfo *param;
+ param = (ILAsmParamInfo
*)ILMalloc(sizeof(ILAsmParamInfo));
+ if(!param)
+ {
+ ILAsmOutOfMemory();
+ }
+ param->type = $1;
+ param->nativeType.string = "";
+ param->nativeType.len = 0;
+ param->parameterAttrs = 0;
+ param->name = 0;
+ param->next = 0;
+ $$.paramFirst = param;
+ $$.paramLast = param;
+ }
+ | MethodRefGenericParams ',' Type {
+ ILAsmParamInfo *param;
+ param = (ILAsmParamInfo
*)ILMalloc(sizeof(ILAsmParamInfo));
+ if(!param)
+ {
+ ILAsmOutOfMemory();
+ }
+ param->type = $3;
+ param->nativeType.string = "";
+ param->nativeType.len = 0;
+ param->parameterAttrs = 0;
+ param->name = 0;
+ param->next = 0;
+ $1.paramLast->next = param;
+ $$.paramFirst = $1.paramFirst;
+ $$.paramLast = param;
}
;
***************
*** 2605,2608 ****
--- 2835,2844 ----
;
+ ClassNameTypeSpec
+ : TypeSpecification {
+ $$ = ILProgramItemToClass($1.item);
+ }
+ ;
+
SlashedName
: QualifiedName { $$ = $1; }
***************
*** 2653,2659 ****
$$ = ILTypeAddModifiers(ILAsmContext,
modifiers, $1);
}
- | '!' Integer32 { $$ =
ILType_FromElement($2); }
| K_METHOD CallingConventions Type '*' '(' OptSignatureArguments ')'
{
! $$ = CreateMethodSig($2, $3, $6.paramFirst, 1);
}
| K_TYPEDREF { $$ = ILType_TypedRef;
}
--- 2889,2894 ----
$$ = ILTypeAddModifiers(ILAsmContext,
modifiers, $1);
}
| K_METHOD CallingConventions Type '*' '(' OptSignatureArguments ')'
{
! $$ = CreateMethodSig($2, $3, $6.paramFirst, 0,
1);
}
| K_TYPEDREF { $$ = ILType_TypedRef;
}
***************
*** 2677,2680 ****
--- 2912,2951 ----
| K_STRING { $$ =
ILType_FromClass(ILAsmSystemClass("String")); }
| K_OBJECT { $$ =
ILType_FromClass(ILAsmSystemClass("Object")); }
+ | '!' Integer32 {
+ /* Reference to a class generic parameter */
+ $$ = ILTypeCreateVarNum
+ (ILAsmContext,
IL_TYPE_COMPLEX_VAR, (int)($2));
+ }
+ | '!' '!' Integer32 {
+ /* Reference to a method generic parameter */
+ $$ = ILTypeCreateVarNum
+ (ILAsmContext,
IL_TYPE_COMPLEX_MVAR, (int)($3));
+ }
+ | Type '<' ActualGenericParams '>' {
+ /* Reference to a generic type instantiation */
+ ($3)->un.method__.retType__ = $1;
+ $$ = $3;
+ }
+ ;
+
+ ActualGenericParams
+ : Type {
+ $$ = ILTypeCreateWith(ILAsmContext,
ILType_Invalid);
+ if(!($$))
+ {
+ ILAsmOutOfMemory();
+ }
+ if(!ILTypeAddWithParam(ILAsmContext, $$, $1))
+ {
+ ILAsmOutOfMemory();
+ }
+ }
+ | ActualGenericParams ',' Type {
+ if(!ILTypeAddWithParam(ILAsmContext, $1, $3))
+ {
+ ILAsmOutOfMemory();
+ }
+ $$ = $1;
+ }
;
***************
*** 3590,3594 ****
| I_BRANCH Integer32 { ILAsmOutBranchInt($1, $2); }
| I_BRANCH Identifier { ILAsmOutBranch($1, $2.string); }
! | I_METHOD MethodReference { ILAsmOutToken($1, $2); }
| I_IMETHOD InstanceMethodReference { ILAsmOutToken($1, $2); }
| I_FIELD Type TypeSpecification COLON_COLON Identifier {
--- 3861,3865 ----
| I_BRANCH Integer32 { ILAsmOutBranchInt($1, $2); }
| I_BRANCH Identifier { ILAsmOutBranch($1, $2.string); }
! | I_METHOD GenericMethodReference { ILAsmOutToken($1, $2); }
| I_IMETHOD InstanceMethodReference { ILAsmOutToken($1, $2); }
| I_FIELD Type TypeSpecification COLON_COLON Identifier {
***************
*** 3621,3625 ****
| I_STRING K_BYTEARRAY Bytes { ILAsmOutString($3); }
| I_SIGNATURE CallingConventions Type '(' OptSignatureArguments ')'
{
! ILType *sig = CreateMethodSig($2, $3,
$5.paramFirst, 1);
ILStandAloneSig *stand =
ILStandAloneSigCreate(ILAsmImage, 0,
sig);
--- 3892,3896 ----
| I_STRING K_BYTEARRAY Bytes { ILAsmOutString($3); }
| I_SIGNATURE CallingConventions Type '(' OptSignatureArguments ')'
{
! ILType *sig = CreateMethodSig($2, $3,
$5.paramFirst, 0, 1);
ILStandAloneSig *stand =
ILStandAloneSigCreate(ILAsmImage, 0,
sig);
Index: ilasm_scanner.l
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ilasm/ilasm_scanner.l,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** ilasm_scanner.l 13 Jan 2003 09:14:25 -0000 1.10
--- ilasm_scanner.l 18 Feb 2003 05:25:08 -0000 1.11
***************
*** 787,790 ****
--- 787,794 ----
return I_SWITCH; }
+ "ldelem" { OPCODE_TYPE(LDELEM); }
+ "stelem" { OPCODE_TYPE(STELEM); }
+ "unbox.any" { OPCODE_TYPE(UNBOX_ANY); }
+
<JAVAMODE>"nop" { JOPCODE_NONE(NOP); } /* Java opcodes
with no args */
<JAVAMODE>"aconst_null" { JOPCODE_NONE(ACONST_NULL); }
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/ilasm ilasm_build.c,1.19,1.20 ilasm_build.h,1.7,1.8 ilasm_grammar.y,1.29,1.30 ilasm_scanner.l,1.10,1.11,
Rhys Weatherley <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnet/include il_dumpasm.h,1.4,1.5 il_meta.h,1.8,1.9 il_opcodes.h,1.5,1.6 il_program.h,1.35,1.36 il_types.h,1.15,1.16
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnet/image generic.c,NONE,1.1 Makefile.am,1.14,1.15 image.h,1.19,1.20 meta_build.c,1.19,1.20 meta_index.c,1.5,1.6 meta_types.c,1.6,1.7 meta_writer.c,1.6,1.7 opdef.c,1.4,1.5 program.h,1.12,1.13 sig_parse.c,1.6,1.7 sig_writer.c,1.5,1.6 test_macros.c,1.8,1.9
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnet/include il_dumpasm.h,1.4,1.5 il_meta.h,1.8,1.9 il_opcodes.h,1.5,1.6 il_program.h,1.35,1.36 il_types.h,1.15,1.16
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnet/image generic.c,NONE,1.1 Makefile.am,1.14,1.15 image.h,1.19,1.20 meta_build.c,1.19,1.20 meta_index.c,1.5,1.6 meta_types.c,1.6,1.7 meta_writer.c,1.6,1.7 opdef.c,1.4,1.5 program.h,1.12,1.13 sig_parse.c,1.6,1.7 sig_writer.c,1.5,1.6 test_macros.c,1.8,1.9
- Index(es):