/// <summary> /// The save. /// </summary> /// <param name="localVariable"> /// The local variable. /// </param> private void Save(VariableDeclarationStatement localVariable) { var storesaveVariablesMode = this.saveVariablesMode; if (localVariable.Constant) { // must be static for C++ as well if (storesaveVariablesMode == SaveVariablesMode.DefaultSourceInitializers) { this.cppWriter.Write("const "); } else { this.cppWriter.Write("const static "); } } this.Save(localVariable.InnerExpression); this.saveVariablesMode = storesaveVariablesMode; }
/// <summary> /// The save. /// </summary> /// <param name="foreachStatement"> /// The foreach statement. /// </param> private void Save(ForeachStatement foreachStatement) { this.cppWriter.Write("for ("); this.saveVariablesMode = SaveVariablesMode.AppendRightReferene; this.Save(foreachStatement.Variable); this.saveVariablesMode = SaveVariablesMode.Default; this.cppWriter.Write(" : "); @switch(foreachStatement.Item); this.cppWriter.Write(")"); this.Save(foreachStatement.EmbeddedStatement); }
/// <summary> /// The save. /// </summary> /// <param name="fieldDeclaration"> /// The field declaration. /// </param> private void Save(Field fieldDeclaration) { var isStatic = fieldDeclaration.Declaration.ContainsModifier(CsTokenType.Static); this.Save(fieldDeclaration.AccessModifier); this.headerWriter.Write(": "); if (isStatic) { this.headerWriter.Write("static "); } this.SwitchStreams(); this.saveVariablesMode = SaveVariablesMode.DoNotSaveInitializers; this.Save(fieldDeclaration.VariableDeclarationStatement); this.saveVariablesMode = SaveVariablesMode.Default; this.SwitchStreams(); this.headerWriter.WriteLine(';'); if (isStatic || fieldDeclaration.VariableDeclarationStatement.Constant) { this.saveVariablesMode = SaveVariablesMode.DefaultSourceInitializers; this.Save(fieldDeclaration.VariableDeclarationStatement); this.saveVariablesMode = SaveVariablesMode.Default; this.cppWriter.WriteLine(';'); this.cppWriter.WriteLine(); } }