Markdown wiki backup
Revision | 9fd601b8235dd5490519d9a15034ee3b27fd3bc7 (tree) |
---|---|
Zeit | 2016-10-23 23:36:11 |
Autor | OCTAGRAM <bo_ <gen@octa...> |
Commiter | OCTAGRAM <bo_ |
Summary
@@ -12,7 +12,7 @@ | ||
12 | 12 | |
13 | 13 | ## Amount of information ## |
14 | 14 | |
15 | -* Emitter Framework: Limited by what is reachable from processed IDL and included ones. Unresolved forward class declarations are possible. For instance, ::SOMClassMgr::somInterfaceRepository method returns ::Repository object reference, but somcm.idl does not include repostry.idl. Emitters like "imod" collecting information from several IDLs at once have to incrementally edit output file. They put signatures into text file to locate where to append new strings. Incremental updates of text files is hard to implement in more complex cases. | |
15 | +* Emitter Framework: Limited by what is reachable from processed IDL and included ones. Unresolved forward class declarations are possible. For instance, ::SOMClassMgr::somInterfaceRepository method returns ::Repository object reference, but somcm.idl does not include repostry.idl. Emitters like "imod" collecting information from several IDLs at once have to incrementally edit output file. They put signatures into text file to locate where to append new strings. | |
16 | 16 | * Interface Repository Framework: Contains information gathered from multiple IDLs in one place. No unresolved forward declarations allowed. |
17 | 17 | |
18 | 18 | ## Information precision ## |
@@ -29,3 +29,6 @@ | ||
29 | 29 | |
30 | 30 | * Emitter Framework: 22 classes: SOMTAttributeEntryC, SOMTBaseClassEntryC, SOMTClassEntryC, SOMTCommonEntryC, SOMTConstEntryC, SOMTDataEntryC, SOMTEmitC, SOMTEntryC, SOMTEnumEntryC, SOMTEnumNameEntryC, SOMTTemplateOutputC, SOMTMetaClassEntryC, SOMTMethodEntryC, SOMTModuleEntryC, SOMTParameterEntryC, SOMTPassthruEntryC, SOMTSequenceEntryC, SOMTStringEntryC, SOMTStructEntryC, SOMTTypedefEntryC, SOMTUnionEntryC, SOMTUserDefinedTypeEntryC. |
31 | 31 | * Interface Repository Framework: 11 classes + 1 pseudoclass: AttributeDef, ConstantDef, Contained, Container, ExceptionDef, InterfaceDef, ModuleDef, OperationDef, ParameterDef, Repository, TypeDef; and TypeCode pseudoclass. |
32 | + | |
33 | +## Summary ## | |
34 | +Incremental updates of text files is hard to implement in complex cases. IR to Delphi importer is complex enough. It defines pointers types, sequences and arrays on demand using several passes. In order to do this it must keep track of the already defined types. This would be hard (yet possible) to reimplement in incremental text editing fashion and even more hard to update. That is troublesome to develop from scratch. C and C++ emitters put tons of macros and this way offload their job to C(C++) preprocessor. Also, unresolved forward references in SOM map to #define in C and unresolved class references in C++, so it is not a problem in these languages, but a problem in other ones. So Emitter Framework is good when stateless processing is required. IRF is good when whole picture is required, but it for no good reason lacks some information. | |
\ No newline at end of file |