4 for (
int CC=1; CC<Str.
Len(); CC++){
9 for (
int CC=0; CC<Str.
Len(); CC++){
14 ChTyV(
TCh::Vals), UcChV(
TCh::Vals){
64 if (Str.
Len()==0){
return false;}
66 for (
int ChN=1; ChN<Str.
Len(); ChN++){
73 for (
int ChN=0; ChN<Str.
Len(); ChN++){
89 default:
Fail;
return NULL;
188 if (StrToLxSymH.
Len()==0){
218 int KeyId=StrToLxSymH.
GetKeyId(Str);
222 return TLxSym(
int(StrToLxSymH[KeyId]));
239 return !SepPrevSymSet.
In(PrevSym) && !SepSymSet.
In(Sym);
246 Str(), UcStr(), CmtStr(),
247 Bool(false), Int(0), Flt(0),
248 SymLnN(-1), SymLnChN(-1), SymChN(-1){}
252 Str(SymSt.Str), UcStr(SymSt.UcStr), CmtStr(SymSt.CmtStr),
253 Bool(SymSt.Bool), Int(SymSt.Int), Flt(SymSt.Flt),
254 SymLnN(SymSt.SymLnN), SymLnChN(SymSt.SymLnChN), SymChN(SymSt.SymChN){
Fail;}
258 Str(Lx.Str), UcStr(Lx.UcStr), CmtStr(Lx.CmtStr),
259 Bool(Lx.Bool), Int(Lx.Int), Flt(Lx.Flt),
260 SymLnN(Lx.SymLnN), SymLnChN(Lx.SymLnChN), SymChN(Lx.SymChN){}
272 SIn(_SIn), RSIn(*SIn),
273 PrevCh(
' '), Ch(
' '), LnN(0), LnChN(0-1), ChN(0-1),
274 PrevSymStStack(), RwStrH(50),
275 IsCmtAlw(false), IsRetEoln(false), IsSigNum(false),
276 IsUniStr(false), IsCsSens(false), IsExcept(false),
277 IsTabSep(false), IsList(false),
279 Str(), UcStr(), CmtStr(),
280 Bool(false), Int(0), Flt(0),
281 SymLnN(-1), SymLnChN(-1), SymChN(-1){
282 for (
int Opt=0; Opt<
iloMx; Opt++){
283 if (OptSet.
In(Opt)){
SetOpt(Opt,
true);}}
370 if ((
Ch==
'"')||(
Ch==
'\'')){
410 throw PExcept(
new TExcept(
"Invalid Escape Sequence in Quoted String"));}
415 Str.
Clr();
bool IntP=
true;
422 if ((
Ch==
'e')||(
Ch==
'E')){
459 while (
GetCh()!=
'*'){_CmtStr+=
Ch;}
583 for (
int SymN=0; SymN<Syms; SymN++){
586 while (!SymStStack.
Empty()){
619 int StrLen=Str.
Len();
634 GetVar(VarNm,
true, NewLn);
642 GetVar(VarNm,
true, NewLn);
650 GetVar(VarNm,
true, NewLn);
658 GetVar(VarNm,
true, NewLn);
666 GetVar(VarNm,
true, NewLn);
677 GetVar(VarNm,
true, NewLn);
719 ChDef(
TLxChDef::GetChDef(ChDefTy)), SOut(_SOut), RSOut(*SOut),
720 IsCmtAlw(false), IsFrcEoln(false), IsSigNum(false),
721 IsUniStr(false), IsCsSens(false), IsTabSep(false), IsVarIndent(false),
723 RwStrH(50), RwSymH(50), PrevSym(
syUndef){
724 for (
int Opt=0; Opt<
oloMx; Opt++){
725 if (OptSet.
In(Opt)){
SetOpt(Opt,
true);}}
762 const bool& NewLn,
const bool& CheckIdStr){
763 PutVar(VarNm,
true, NewLn, CheckIdStr);
764 for (
int BoolN=0; BoolN<BoolV.
Len(); BoolN++){
773 const bool& NewLn,
const bool& CheckIdStr){
774 PutVar(VarNm,
true, NewLn, CheckIdStr);
775 for (
int IntN=0; IntN<IntV.
Len(); IntN++){
784 const bool& NewLn,
const bool& CheckIdStr){
785 PutVar(VarNm,
true, NewLn, CheckIdStr);
786 for (
int FltN=0; FltN<FltV.
Len(); FltN++){
795 const bool& NewLn,
const bool& CheckIdStr){
796 PutVar(VarNm,
true, NewLn, CheckIdStr);
797 for (
int StrN=0; StrN<StrV.
Len(); StrN++){
806 const bool& NewLn,
const bool& CheckIdStr){
807 PutVar(VarNm,
true, NewLn, CheckIdStr);
808 for (
int StrPrN=0; StrPrN<StrPrV.
Len(); StrPrN++){
819 const bool& NewLn,
const bool& CheckIdStr){
820 PutVar(VarNm,
true, NewLn, CheckIdStr);
821 for (
int StrVN=0; StrVN<StrVV.
Len(); StrVN++){
824 for (
int StrN=0; StrN<StrVV[StrVN].
Len(); StrN++){
845 for (
int KeyN=0; KeyN<KeyIdValPrV.
Len(); KeyN++){
847 SubstValStr=KeyIdValPrV[KeyN].Val2;
858 const TStr& SubstFNm,
const TStrV& _SubstKeyIdV):
859 SIn(), SubstKeyIdV(_SubstKeyIdV),
860 PrevCh(
'\0'), Ch(
'\0'){
862 if (!SubstFNm.
Empty()){
865 TXmlTokV SubstTokV; XmlDoc->GetTok()->GetTagTokV(
"Subst", SubstTokV);
866 for (
int SubstTokN=0; SubstTokN<SubstTokV.
Len(); SubstTokN++){
867 PXmlTok SubstTok=SubstTokV[SubstTokN];
870 if (!SubstId.
Empty()){
875 for (
int StrTokN=0; StrTokN<StrTokV.
Len(); StrTokN++){
876 PXmlTok StrTok=StrTokV[StrTokN];
893 bool CopyModeP=
false;
bool IgnoreModeP=
false;
903 if (IdChA==
"#ifdef"){
912 CondKeyIdChA.
Trunc();
916 CopyModeP=
true; IgnoreModeP=
false;
918 CopyModeP=
false; IgnoreModeP=
true;
921 if (IdChA==
"#endif"){
929 IAssert(CopyModeP||IgnoreModeP);
930 CopyModeP=
false; IgnoreModeP=
false;
934 if ((!CopyModeP)&&(
IsSubstId(IdChA, SubstValStr))){
935 if (!IgnoreModeP){SOut->
PutStr(SubstValStr);}
937 if (!IgnoreModeP){SOut->
PutStr(IdChA);}
942 if (!IgnoreModeP){SOut->
PutCh(
Ch);}
static bool IsHex(const char &Ch)
void PutLn(const int &IndentLev=0)
TLxChDef(const TLxChDefTy &ChDefTy)
static const TStr QuestionStr
TILx(const PSIn &_SIn, const TFSet &OptSet=TFSet(), const TLxChDefTy &ChDefTy=lcdtUsAscii)
static PSOut New(const TStr &FNm, const bool &Append=false)
bool IsAlNum(const char &Ch) const
static PLxChDef New(const TLxChDefTy &ChDefTy=lcdtUsAscii)
bool IsSubstId(const TStr &SubstId, TStr &SubstValStr) const
void GetVarIntV(const TStr &VarNm, TIntV &IntV, const bool &NewLn=true)
void PutVarStrPrV(const TStr &VarNm, const TStrPrV &StrPrV, const bool &NewLn=true, const bool &CheckIdStr=true)
TStr GetStrToEoln(const bool &DoTrunc=false)
TPair< TStr, TStr > TStrPr
virtual int PutCh(const char &Ch)=0
static const TStr CommaStr
void PutVar(const TStr &VarNm, const bool &LBracket=false, const bool &NewLn=false, const bool &CheckIdStr=true)
bool IsIn(const TVal &Val) const
Checks whether element Val is a member of the vector.
void PutBool(const TBool &Bool)
static const TStr DPeriodStr
bool IsSpace(const char &Ch) const
static const TStr ColonStr
void AddCh(const char &Ch, const int &MxLen=-1)
bool IsAlpha(const char &Ch) const
TSizeTy Len() const
Returns the number of elements in the vector.
TStr GetStrToEolnOrCh(const char &ToCh)
void PutInt(const TInt &Int)
void GetVarStrV(const TStr &VarNm, TStrV &StrV, const bool &NewLn=true)
static int GetHex(const char &Ch)
void PutVarBoolV(const TStr &VarNm, const TBoolV &BoolV, const bool &NewLn=true, const bool &CheckIdStr=true)
void GetVar(const TStr &VarNm, const bool &LBracket=false, const bool &NewLn=false)
void PutSep(const TLxSym &Sym)
void GetVarFltV(const TStr &VarNm, TFltV &FltV, const bool &NewLn=true)
void PutSym(const TLxSym &Sym)
TLxSym AddRw(const TStr &Str)
void PutQStr(const TStr &Str)
void SetOpt(const int &Opt, const bool &Val)
TLxSym AddRw(const TStr &Str)
static const TStr PercentStr
static const TStr PlusStr
char GetUc(const char &Ch) const
void PutIndent(const int &IndentLev)
TOLx(const PSOut &_SOut, const TFSet &OptSet, const TLxChDefTy &ChDefTy=lcdtUsAscii)
static bool GetValFromStr(const TStr &Str)
static bool IsSep(const TLxSym &PrevSym, const TLxSym &Sym)
TStr GetTokStr(const bool &XmlP=true) const
void SetOpt(const int &Opt, const bool &Val)
void PutVarStrVV(const TStr &VarNm, const TVec< TStrV > &StrVV, const bool &NewLn=true, const bool &CheckIdStr=true)
static PSIn New(const TStr &FNm)
static void GetLnV(const TStr &FNm, TStrV &LnV)
PSIn GetSIn(const char &SepCh)
static const TStr HashStr
TStr GetArgVal(const TStr &ArgNm) const
static const TStr QStrStr
static const TStr VBarStr
void Clr(const bool &DoDel=true, const TSizeTy &NoDelLim=-1)
Clears the contents of the vector.
TStr GetStrToCh(const char &ToCh)
void PutAll(const TVal &Val)
Sets all elements of the vector to value Val.
TPreproc(const TStr &InFNm, const TStr &OutFNm, const TStr &SubstFNm, const TStrV &_SubstKeyIdV)
static const TStr SlashStr
static const TStr ExclamationStr
void GetVarStrPrV(const TStr &VarNm, TStrPrV &StrPrV, const bool &NewLn=true)
static const TStr RBraceStr
const TVal & Last() const
Returns a reference to the last element of the vector.
TStr GetQStr(const TStr &QStr=TStr())
static const TStr LBracketStr
static const TStr AsteriskStr
bool IsNum(const char &Ch) const
char GetCh(const int &ChN) const
void PutFlt(const TFlt &Flt, const int &Width=-1, const int &Prec=-1)
static const TStr LBraceStr
int GetKeyId(const TKey &Key) const
TSStack< TILxSymSt > PrevSymStStack
void GetVarStrVV(const TStr &VarNm, TVec< TStrV > &StrVV, const bool &NewLn=true)
void SetChTy(const TLxChTy &ChTy, const TStr &Str)
static const TStr EolnStr
static bool IsValStr(const TStr &Str)
static TLxSym GetSSym(const TStr &Str)
static const TStr SemicolonStr
static const TStr UndefStr
static const TStr DColonStr
int PutStr(const char *CStr)
void GetTagTokV(const TStr &TagPath, TXmlTokV &XmlTokV) const
bool IsTerm(const char &Ch) const
void SetUcCh(const TStr &Str)
#define EAssertR(Cond, MsgStr)
static TStr GetSymStr(const TLxSym &Sym)
static PXmlDoc LoadTxt(TXmlLx &Lx)
void GetVarBoolV(const TStr &VarNm, TBoolV &BoolV, const bool &NewLn=true)
virtual TStr GetSNm() const
static const TStr IdStrStr
void PutVarEnd(const bool &RBracket=false, const bool &NewLn=false)
TStr GetStrToEolnAndCh(const char &ToCh)
TStr GetUcStr(const TStr &Str) const
static PLxChDef GetChDef(const TLxChDefTy &ChDefTy=lcdtUsAscii)
static const TStr PeriodStr
THash< TStr, TStrPrV > SubstIdToKeyIdValPrVH
int EncodeUtf8(const TIntV &src, TIntV &dest) const
static const TStr MinusStr
static const TStr RBracketStr
bool IsKey(const TKey &Key) const
TSizeTy Add()
Adds a new element at the end of the vector, after its current last element.
bool IsNmStr(const TStr &Str) const
TDat & AddDat(const TKey &Key)
void PutVarIntV(const TStr &VarNm, const TIntV &IntV, const bool &NewLn=true, const bool &CheckIdStr=true)
void PutVarStrV(const TStr &VarNm, const TStrV &StrV, const bool &NewLn=true, const bool &CheckIdStr=true)
static const TStr LParenStr
static const TStr RParenStr
void PutVarFltV(const TStr &VarNm, const TFltV &FltV, const bool &NewLn=true, const bool &CheckIdStr=true)
static const TStr AmpersandStr
bool In(const int &FlagN) const