Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C#
Dear all,
I want to convert the following code to intermidate form. How can I do this?
C# code:
class B
{         A a;
    C f;
   public B( )
    {a = new A( );
     }
   public void Method1(int i){}
 
    return ();
    }
}
 
Interemidate code:
Class B
Type A
Type C
Method B
Object A
EndMethod B
Method Method1
EndMethod Method1
 
EndClass B
Posted 14-Feb-13 5:00am
Comments
richcb at 14-Feb-13 11:23am
   
That code would not even compile in C#.
Sergey Alexandrovich Kryukov at 14-Feb-13 14:32pm
   
Read on the very basics before you write any code...
—SA
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

To create the intermediate code you will need to compile your program.
You can then use ildasm.exe (comes shipped with VS) to examine the resulting dll or exe
(can be found in e.g. C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\ildasm.exe)
See this link for further details http://msdn.microsoft.com/en-us/library/f7dy01k1.aspx[^]
 
[Edit]
From your repost question I gather you want to write a program to parse your code and convert it into IL. Compiler theory is a bit of a large subject to cover here - some research (e.g. via Google) on compilers and parsers will point you in the right direction. You may find the c# language specfication useful as well as the CLI specification. You should also study simple programs using ildasm.exe and use it to generate expected test results for your program.
 
Warning - Given the simplicity of the sample program you provided (which as richcb points out won't even compile) I suspect compiler writing may be a bridge too far for you at the moment.
 
If this was not your intention then use the Improve Question link to add further detail to your question and post a reply to this solution - the latter action will generate a message for me to return here.
  Permalink  
v2
Comments
Sergey Alexandrovich Kryukov at 14-Feb-13 14:35pm
   
Explained and (in principle) can direct the OP. My 5.
I suggested some more reading, please see.
—SA
Espen Harlinn at 14-Feb-13 15:20pm
   
Would work - a 5
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

  Permalink  
Comments
Espen Harlinn at 14-Feb-13 15:20pm
   
Nice links :-D
Sergey Alexandrovich Kryukov at 14-Feb-13 15:32pm
   
Thank you, Espen.
—SA
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 3

Here is an Antlr[^] c# grammar:http://antlrcsharp.codeplex.com/[^]
 
This can be used to generate intermediate code, or whatever really, from c# code.
 
Best regards
Espen Harlinn
  Permalink  
Comments
Sergey Alexandrovich Kryukov at 14-Feb-13 16:35pm
   
Interesting product, a 5, but not sure this is what OP really needs...
—SA
Espen Harlinn at 14-Feb-13 16:40pm
   
Thank you, Sergey :-D
>> not sure this is what OP really needs...
Me. neither - but it will help OP along the traditional route towards some sort of intermediate code.
Sergey Alexandrovich Kryukov at 14-Feb-13 16:42pm
   
This is just one more interesting product to bookmark :-) Thank you for sharing.
—SA
CHill60 at 15-Feb-13 12:10pm
   
Nice one - bookmarked and +5

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 225
1 Richard MacCutchan 100
2 kbrandwijk 90
3 ChauhanAjay 80
4 ProgramFOX 80
0 Sergey Alexandrovich Kryukov 9,050
1 OriginalGriff 8,151
2 CPallini 2,613
3 Richard MacCutchan 2,221
4 Abhinav S 1,928


Advertise | Privacy | Mobile
Web01 | 2.8.140827.1 | Last Updated 14 Feb 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100