Initial commit
This commit is contained in:
194
Torque/SDK/tools/langc/langc.cc
Normal file
194
Torque/SDK/tools/langc/langc.cc
Normal file
@@ -0,0 +1,194 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "platform/platform.h"
|
||||
#include "platform/event.h"
|
||||
#include "platform/platformAssert.h"
|
||||
#include "console/console.h"
|
||||
#include "console/consoleTypes.h"
|
||||
#include "math/mathTypes.h"
|
||||
#include "langc/langc.h"
|
||||
|
||||
#include "core/fileStream.h"
|
||||
|
||||
#include "i18n/lang.h"
|
||||
#include "langcomp.h"
|
||||
#include "Getopt.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
LangCGame GameObject;
|
||||
|
||||
// FOR SILLY LINK DEPENDANCY. REMOVE THIS AT YOUR PERIL.
|
||||
bool gEditingMission = false;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static bool initLibraries()
|
||||
{
|
||||
// asserts should be created FIRST
|
||||
PlatformAssert::create();
|
||||
|
||||
_StringTable::create();
|
||||
// ResManager::create();
|
||||
|
||||
Con::init();
|
||||
|
||||
Math::init();
|
||||
Platform::init(); // platform specific initialization
|
||||
return(true);
|
||||
}
|
||||
|
||||
static void shutdownLibraries()
|
||||
{
|
||||
// Purge any resources on the timeout list...
|
||||
// if (ResourceManager)
|
||||
// ResourceManager->purge();
|
||||
|
||||
// shut down
|
||||
Platform::shutdown();
|
||||
Con::shutdown();
|
||||
|
||||
// ResManager::destroy();
|
||||
_StringTable::destroy();
|
||||
|
||||
// asserts should be destroyed LAST
|
||||
PlatformAssert::destroy();
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void usage(void)
|
||||
{
|
||||
dPrintf("Usage: langc [options] <filename> <outbasename>\n\n");
|
||||
dPrintf("Where options is one or more of:\n\n");
|
||||
dPrintf(" -l Write Language File -h Write C++ Header\n");
|
||||
dPrintf(" -s Write Script -d Write C++ Defaults\n");
|
||||
dPrintf(" -t Compile a translation -r Write translation file\n");
|
||||
dPrintf(" -e <filename> Specify english file when compiling translations\n");
|
||||
dPrintf("\n");
|
||||
dPrintf(" -S Don't strip leading spaces -T Strip trailing spaces\n");
|
||||
dPrintf(" -I Don't warn for invalid chars -W Don't warn for empty identifiers\n");
|
||||
dPrintf(" -q Quiet mode, no warnings at all\n");
|
||||
dPrintf("\nMore information can be found in the documentation at:\n %s\n", I18N_DOC_URL);
|
||||
}
|
||||
|
||||
S32 LangCGame::main(S32 argc, const char **argv)
|
||||
{
|
||||
S32 i, ch;
|
||||
U32 flags = LCO_WARNNOSTRING;
|
||||
Getopt opts("STIWqhsdlrte:");
|
||||
char *englishFile = NULL;
|
||||
|
||||
if(! initLibraries())
|
||||
return 0;
|
||||
|
||||
while((ch = opts.getopt(argc, (char **)argv)) != -1)
|
||||
{
|
||||
switch(ch)
|
||||
{
|
||||
case 't':
|
||||
// Compile a translation
|
||||
flags |= LCO_COMPILETRANSLATION;
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
// Specify english file
|
||||
englishFile = opts.m_sOptArg;
|
||||
break;
|
||||
|
||||
case 'S':
|
||||
// Don't strip spaces
|
||||
flags |= LCO_DONTSTRIPSPACES;
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
// Strip trailing space
|
||||
flags |= LCO_STRIPTRAILINGSPACE;
|
||||
break;
|
||||
|
||||
case 'I':
|
||||
// Don't warn for invalid chars
|
||||
flags |= LCO_DONTWARNINVALIDCHAR;
|
||||
break;
|
||||
|
||||
case 'W':
|
||||
// Don't warn for empty identifiers
|
||||
flags &= ~LCO_WARNNOSTRING;
|
||||
break;
|
||||
|
||||
case 'q':
|
||||
// Quiet mode, no warnings at all
|
||||
flags |= LCO_NOWARNINGS;
|
||||
break;
|
||||
|
||||
case 'h':
|
||||
// Write Header
|
||||
flags |= LCO_WRITEHEADER;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
// Write Script
|
||||
flags |= LCO_WRITESCRIPT;
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
// Write C++ Defaults
|
||||
flags |= LCO_WRITECDEFAULTS;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
// Write Lang Table
|
||||
flags |= LCO_WRITELANGTABLE;
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
// Write translation
|
||||
flags |= LCO_WRITETRANSLATION;
|
||||
break;
|
||||
|
||||
case GO_BAD_ARG:
|
||||
dPrintf("option %c requires an argument\n", opts.m_nOptOpt);
|
||||
break;
|
||||
|
||||
case GO_INVALID_CHAR:
|
||||
dPrintf("%c is an invalid option\n", opts.m_nOptOpt);
|
||||
break;
|
||||
|
||||
case GO_BAD_CHAR:
|
||||
usage();
|
||||
shutdownLibraries();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
argc -= opts.m_nOptInd;
|
||||
argv += opts.m_nOptInd;
|
||||
|
||||
if(argc < 2)
|
||||
{
|
||||
usage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
LangComp c(flags);
|
||||
|
||||
dPrintf("Compiling ... \n");
|
||||
c.Compile(argv[0], argv[1], englishFile);
|
||||
|
||||
shutdownLibraries();
|
||||
return 0;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void GameReactivate()
|
||||
{
|
||||
}
|
||||
|
||||
void GameDeactivate( bool )
|
||||
{
|
||||
}
|
||||
Reference in New Issue
Block a user