2010-01-11 6 views
1

Y a-t-il d'autres buts que le Web? par exemple. à utiliser dans les générateurs de script, les générateurs de code C++ ou d'autres opérations génériques connexes.Moteurs de gabarit

Répondre

2

Dans Visual Studio, il existe un moteur de création de modèle principalement pour la génération de code, appelé T4. Il s'agit d'un entry point pour la documentation sur MSDN. Donc, pour répondre à votre question, oui ils existent à d'autres fins que le web.

-2

Ils peuvent générer des fichiers de configuration. S'appuyer sur erb beaucoup de modèles, par exemple.

0

Oui il y a beaucoup là-bas. Celui que je connais de cela vous permet de générer plus de modèles si vous en avez besoin est MyGeneration. Un autre, est que vous pouvez toujours construire votre propre moteur de template xslt, alors vous pouvez construire ce dont vous avez besoin. Cependant, il existe plusieurs générateurs de code source et commerciaux.

0

E.g. StringTemplates est un moteur de modèle basé sur Java pour générer toutes sortes d'artefacts de texte, et les frameworks de générateur de modèles comme openArchitectureWare (ou GeneSEZ) utilisent le moteur de modèle Expand.

0

Imatix GSL est le plus impressionnant (et le plus simple) des outils que j'ai rencontrés. De plus, il a été utilisé pour générer de grandes quantités de code complexe.

En outre, lua est un langage de programmation dont le but initial était la définition de données, et je l'ai trouvé très compétent dans ce domaine. Ainsi, vous définissez vos données dans lua et vous exécutez les fichiers de définition de données (programmes lua valides) et vous pouvez générer n'importe quel code. Considérons le modèle suivant pour une fonction C dans Lua.

> func {  
>  name { "xyz" } 
>  parameters { 
>   { name= "x" , type="uint32_t" } , 
>   { name = "y" , type = "uint32_t"} 
>  } 
> 
>  ret { type="uint32_t" } 
> 
>  psuedocode {  
>  "getLock(lockName)" , 
>  "getSessionMemory" , 
>  "addSession"  ,   
>  "releaseLock"    
>  } 
> }