26
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
using System.Diagnostics;
31
using System.ComponentModel;
29
using System.Collections.Generic;
32
31
using MonoDevelop.Projects;
33
32
using MonoDevelop.Core.Serialization;
86
88
[ItemProperty("WarningsNotAsErrors", DefaultValue="")]
87
89
string warningsNotAsErrors = "";
91
[ItemProperty("DebugType", DefaultValue="")]
92
string debugType = "";
90
94
#region Members required for backwards compatibility. Not used for anything else.
138
142
public LangVersion LangVersion {
140
string val = langVersion.ToString ().Replace ('-','_');
141
return (LangVersion) Enum.Parse (typeof(LangVersion), val);
144
var val = TryLangVersionFromString (langVersion);
146
throw new Exception ("Unknown LangVersion string '" + val + "'");
144
langVersion = value.ToString ().Replace ('_','-');
151
var v = TryLangVersionToString (value);
153
throw new ArgumentOutOfRangeException ("Unknown LangVersion enum value '" + value + "'");
148
159
public override void AddDefineSymbol (string symbol)
150
definesymbols += symbol + ";";
161
var symbols = new List<string> (definesymbols.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
163
symbols.Add (symbol);
165
definesymbols = string.Join (";", symbols) + ";";
168
public override bool HasDefineSymbol (string symbol)
170
var symbols = definesymbols.Split (new char[] { ';' });
172
foreach (var sym in symbols) {
153
180
public override void RemoveDefineSymbol (string symbol)
155
definesymbols = definesymbols.Replace (symbol + ";", "");
182
var symbols = new List<string> (definesymbols.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
184
symbols.Remove (symbol);
186
if (symbols.Count > 0)
187
definesymbols = string.Join (";", symbols) + ";";
189
definesymbols = string.Empty;
158
192
#region Code Generation
306
static LangVersion? TryLangVersionFromString (string value)
309
case "Default": return LangVersion.Default;
310
case "ISO-1": return LangVersion.ISO_1;
311
case "ISO-2": return LangVersion.ISO_2;
312
case "3": return LangVersion.Version3;
313
case "4": return LangVersion.Version4;
314
case "5": return LangVersion.Version5;
315
default: return null;
319
internal static string TryLangVersionToString (LangVersion value)
322
case LangVersion.Default: return "Default";
323
case LangVersion.ISO_1: return "ISO-1";
324
case LangVersion.ISO_2: return "ISO-2";
325
case LangVersion.Version3: return "3";
326
case LangVersion.Version4: return "4";
327
case LangVersion.Version5: return "5";
328
default: return null;