Jump to content

Emitter Framework: Difference between revisions

From EDM2
Prokushev (talk | contribs)
No edit summary
Prokushev (talk | contribs)
No edit summary
Line 7: Line 7:
# sc.exe, somc.dll and somc.msg - Main part of compiler.
# sc.exe, somc.dll and somc.msg - Main part of compiler.
# somcpp.exe - SOM Preprocessor
# somcpp.exe - SOM Preprocessor
# somipc.exe - Goals not known...
# somipc.exe - Goals not known. Seems just execute different emitters
# emit*.dll - Emitters
# emit*.dll - Emitters
# *.efw - Emitter templates
# *.efw - Emitter templates
''sc.exe'' is general part of compiler. Let's try investigate some internals of sc.exe. First of all we can switch on verbose output and look on it:
Running shell command:
        somcpp -D__OS2__  -IC:\Development\OS2TK45\h -IC:\Development\OS2TK45\idl -I. -IC:\Development\OS2TK45\som\iinclude -IC:\os2tk45\h -IC:\os2tk45\idl -IC:\os2tk45\som\include -D__SOMIDL_VERSION_1__  -D__SOMIDL__  -C  somobj.idl > C:\var\temp\0a500000.CTN
somipc -mppfile=C:\var\temp\0a500000.CTN    -v  -e emith -e emitih -e emitctm -e emitc  -o somobj somobj.idl
Loading  emith.
"SOMObject"
Unloading  emith.
Loading  emitih.
"SOMObject"
Unloading  emitih.
Loading  emitctm.
"SOMObject"
Unloading  emitctm.
Loading  emitc.
"SOMObject"
Unloading  emitc.
Removed "C:\var\temp\0a500000.CTN".

Revision as of 13:04, 7 July 2008

Emitter Framework is a set of classes and SOM Compiler tool. Emitter Framework is used to produce various file formats from Interface Definition Language files. Emitter Framework classes consist of Emitter classes and Entry classes. Classes can be shadowed. This means a programmer can replace original classes with his own classes. So the SOM Compiler can be highly customized. The only things hard-coded (and closed source) are the IDL file reader and abstract graph builder.

Before starting description of Emitter Framework lets talk about SOM Compiler. We already talked briefly about SOM Compiler. But for emitters we need to know internals of SOM Compiler much better.

Lets start from visible parts of SOM Compiler. SOM Compiler requires for its work folowing files:

  1. sc.exe, somc.dll and somc.msg - Main part of compiler.
  2. somcpp.exe - SOM Preprocessor
  3. somipc.exe - Goals not known. Seems just execute different emitters
  4. emit*.dll - Emitters
  5. *.efw - Emitter templates

sc.exe is general part of compiler. Let's try investigate some internals of sc.exe. First of all we can switch on verbose output and look on it:

Running shell command:
        somcpp -D__OS2__  -IC:\Development\OS2TK45\h -IC:\Development\OS2TK45\idl -I. -IC:\Development\OS2TK45\som\iinclude -IC:\os2tk45\h -IC:\os2tk45\idl -IC:\os2tk45\som\include -D__SOMIDL_VERSION_1__  -D__SOMIDL__  -C  somobj.idl > C:\var\temp\0a500000.CTN
somipc -mppfile=C:\var\temp\0a500000.CTN    -v  -e emith -e emitih -e emitctm -e emitc  -o somobj somobj.idl
Loading  emith.
"SOMObject"
Unloading  emith.
Loading  emitih.
"SOMObject"
Unloading  emitih.
Loading  emitctm.
"SOMObject"
Unloading  emitctm.
Loading  emitc.
"SOMObject"
Unloading  emitc.
Removed "C:\var\temp\0a500000.CTN".