private void UpdateInterface() { if (PagesTab.SelectedIndex == -1) { RepeatButton.Enabled = false; BackButton.Enabled = false; RowsNumbers.Text = ""; return; } RepeatButton.Enabled = Pages[PagesTab.SelectedIndex].CanRepeat; BackButton.Enabled = Pages[PagesTab.SelectedIndex].CanCancel; string numbers = ""; int start = CodeField.GetLineFromCharIndex(CodeField.GetCharIndexFromPosition(new Point(0, 0))); int end = CodeField.GetLineFromCharIndex(CodeField.GetCharIndexFromPosition(new Point(CodeField.Size.Width, CodeField.Size.Height))); for (int i = start; i <= end; i++) { numbers += (i + 1) + ":\n"; } RowsNumbers.Text = numbers; codeHandler.HandleText(); }
protected override void BuildTypedef(CodeNamespace ns, CppTypedef typedef) { TypeDesc fieldType = GetTypeDesc(typedef.ElementType); string baseTypeName = ResolveCefType(fieldType.ToString()); string aliasTypeName = GetClassName(typedef.Name); if (aliasTypeName == baseTypeName) { throw new InvalidOperationException(); } var decl = new CodeStruct(aliasTypeName); decl.Attributes = CodeAttributes.Public | CodeAttributes.Unsafe | CodeAttributes.Partial; decl.Comments.AddVSDocComment(typedef.Comment, "summary"); var attr = new CustomCodeAttribute(typeof(StructLayoutAttribute)); attr.AddParameter(LayoutKind.Sequential); decl.CustomAttributes.Add(attr); var field = new CodeField(baseTypeName, "Base"); field.Attributes = CodeAttributes.Public; //field.CustomAttributes.Add(new CustomCodeAttribute(typeof(FieldOffsetAttribute)) { Parameters = { "0" } }); decl.Members.Add(field); ns.Types.Add(decl); }
private string GetNativeCallMehtodBody(CodeMethod caller, CodeField field, CodeType typeDecl) { var sb = new StringBuilder(); sb.Append("fixed (").Append(typeDecl.Name).Append("* self = &this)\n{\n\t"); if (caller.RetVal.Type != "void") { sb.Append("return "); } var argTypes = new List <string>(); if (caller.HasThisArg) { argTypes.Add(typeDecl.Name + "*"); } argTypes.AddRange(caller.Parameters.Select(arg => CSharpCodeGen.GetClrTypeName(arg.Type))); argTypes.Add(CSharpCodeGen.GetClrTypeName(caller.RetVal.Type)); sb.Append("((delegate* unmanaged[Stdcall]<").Append(string.Join(", ", argTypes)).Append(">)"); sb.Append(field.Name).Append(")("); var args = new List <string>(); if (caller.HasThisArg) { args.Add("self"); } args.AddRange(caller.Parameters.Select(arg => arg.Name)); sb.Append(string.Join(", ", args)); sb.Append(");"); sb.Append("\n}"); return(sb.ToString()); }
/// <summary> /// Adds a dropdown field to the criteria panel /// </summary> private ListBase InitialiseListField(Search.SearchParameter parameter) { if (!String.IsNullOrEmpty(parameter.CodeType)) { CodeField codeField = new CodeField(); codeField.CodeType = parameter.CodeType.Contains(":") ? parameter.CodeType.Substring(0, parameter.CodeType.IndexOf(":")) : parameter.CodeType; return(codeField); } if (!String.IsNullOrEmpty(parameter.ListData)) { JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary <String, Object> jsonData = serializer.Deserialize <Dictionary <String, Object> >(parameter.ListData); ListField listField = null; if (jsonData.Keys.Count >= 1 && String.Equals(jsonData.Keys.ElementAt(0), "SQL", StringComparison.OrdinalIgnoreCase)) { listField = this.InitialiseSqlField(jsonData.Values.ElementAt(0) as String); } if (jsonData.Keys.Count >= 1 && String.Equals(jsonData.Keys.ElementAt(0), "CODE", StringComparison.OrdinalIgnoreCase)) { listField = this.InitialiseJsonField(jsonData.Values.ElementAt(0) as ArrayList); } if (listField != null && !listField.Items.OfType <ListItem>().Any(item => String.IsNullOrEmpty(item.Value))) { listField.Items.Insert(0, new ListItem("", "")); } return(listField); } return(null); }
protected override void Visit(CodeField field) { Visit(field.Type); Visit(field.Name); if (field.Initializer != null) { Visit(field.Initializer); } }
private void UpdateRowsNumbers() { string numbers = ""; int start = CodeField.GetLineFromCharIndex(CodeField.GetCharIndexFromPosition(new Point(0, 0))); int end = CodeField.GetLineFromCharIndex(CodeField.GetCharIndexFromPosition(new Point(CodeField.Size.Width, CodeField.Size.Height))); for (int i = start; i <= end; i++) { numbers += i + ":\n"; } RowsNumbers.Text = numbers; }
protected override void LoadWindowsForm() { //CountryData.ID = this.ID; base.LoadWindowsForm(); this.FormId = obj.GetType().GetProperty("ID").GetValue(obj, null); this.FID = (int)FormId; this.CodeField = obj.GetType().GetProperty("CodeField").GetValue(obj, null); this.FCode = CodeField.ToString(); this.IDField = obj.GetType().GetProperty("IDField").GetValue(obj, null); this.IDFieldName = IDField.ToString(); this.Table = obj.GetType().GetProperty("TableName").GetValue(obj, null); this.Tbl = Table.ToString(); //FndNumber.Text = CountryData.ID.ToString(); }
private void toolStripButton1_Click(object sender, EventArgs e) { parsedText = CodeField.Text; CharChain chain = new CharChain(CodeField.Text); Parser parser = new Parser(); ResultField.Text = ""; int count = 0; while (chain.Next().Char != '\0') { parser.Parse(chain); var errors = parser.GetErrors(); foreach (var error in errors) { count++; ResultField.Text += error.Message; if (error.IncorrStr != null) { ResultField.Text += " (Отброшенный фрагмент: '" + error.IncorrStr + "' на позиции: " + error.Idx + ")"; } ResultField.Text += "\r\n"; CodeField.Select(error.Idx, 1); CodeField.SelectionBackColor = Color.Red; CodeField.DeselectAll(); } } if (count == 0) { ResultField.Text += "Ошибок нет.\r\n"; } else { ResultField.Text += "Обнаружено " + count + " ошибок.\r\n"; } }
private void GenerateFieldCode(CodeField fieldDecl) { foreach (CodeComment commentDecl in fieldDecl.Comments) { GenerateCommentCode(commentDecl); } WriteCustomAttributes(fieldDecl.CustomAttributes); WriteAttributes(fieldDecl.Attributes); Output.Write(GetClrTypeName(fieldDecl.TypeName)); Output.Write(" "); Output.Write(fieldDecl.Name); if (fieldDecl.Value != null) { Output.Write(" = "); Output.Write(fieldDecl.Value); } Output.WriteLine(";"); }
protected override string GetExpr() { string[] MultCodeFiled = CodeField.Split(';').ToArray(); if (MultCodeFiled.Count() > 1) { string[] multcode = Code.Split(';').ToArray(); string str = MultCodeFiled[0] + "='" + multcode[0] + "'"; for (int i = 1; i < MultCodeFiled.Count(); i++) { str += " and " + MultCodeFiled[i] + "='" + multcode[i] + "'"; } return(str); } else { return(CodeField + "='" + Code + "'"); } //return base.GetExpr(); }
private void DefineField(CodeType typeDecl, CppField field) { CodeMethod caller = null; TypeDesc fieldType = GetTypeDesc(field.Type); var fld = new CodeField(ResolveCefType(fieldType.ToString()), field.Name.EscapeName()); if (fieldType.IsCallable) { fld.Attributes = CodeAttributes.Public; // | CodeAttributes.ReadOnly; fld.Comments.AddVSDocComment(fieldType.Name, "summary"); CppFunctionType fnType = fieldType.FunctionTypeRef; TypeDesc retType = GetTypeDesc(fnType.ReturnType); caller = new CodeMethod(field.Name.ToUpperCamel(fnType.Parameters.Count).EscapeName()); var rvtype = new CodeMethodParameter(null); rvtype.Type = ResolveCefType(retType.ToString()); if (retType.Name == "char16" || retType.Name == "wchar") { rvtype.CustomAttributes.Add(new CustomCodeAttribute("return: MarshalAs(UnmanagedType.U2)")); throw new NotImplementedException(); // TODO: check it } caller.RetVal = rvtype; caller.Attributes = CodeAttributes.Public | CodeAttributes.Unsafe; //caller.CustomAttributes.AddMethodImplForwardRefAttribute(); caller.CustomAttributes.Add(new CustomCodeAttribute("NativeName") { Parameters = { "\"" + field.Name + "\"" } }); caller.Comments.AddVSDocComment(field.Comment, "summary"); caller.Callee = fld; CppContainerList <CppParameter> @params = fnType.Parameters; for (int i = 0; i < @params.Count; i++) { CppParameter arg = @params[i]; if (i == 0 && arg.Name == "self") { string argTypeName = ResolveCefType(arg.Type.GetDisplayName()); if (argTypeName == typeDecl.Name + "*") { caller.HasThisArg = true; continue; } } var param = new CodeMethodParameter(arg.Name.EscapeName()); TypeDesc paramType = GetTypeDesc(arg.Type); string argType = paramType.ToString(); while (argType.StartsWith("const ")) { argType = argType.Substring(6); param.Direction = CodeMethodParameterDirection.In; } if (param.Direction == CodeMethodParameterDirection.In) { param.CustomAttributes.Add(new CustomCodeAttribute("Immutable")); } if (argType == "char16" || argType == "wchar") { param.CustomAttributes.Add(new CustomCodeAttribute("MarshalAs(UnmanagedType.U2)")); throw new NotImplementedException(); // TODO: check it } param.Type = ResolveCefType(argType); caller.Parameters.Add(param); } //fld.TypeName = GetNativeDelegate(caller, typeDecl); caller.Body = GetNativeCallMehtodBody(caller, fld, typeDecl); } else { fld.Comments.AddVSDocComment(field.Comment, "summary"); fld.Attributes = CodeAttributes.Public; if (fieldType.Name == "char16" || fieldType.Name == "wchar") { fld.CustomAttributes.Add(new CustomCodeAttribute("MarshalAs(UnmanagedType.U2)")); } } typeDecl.Members.Add(fld); if (caller != null) { typeDecl.Members.Add(caller); } }
protected override CodeElement CreateCodeElement(string name, string fullName, CodeLocation location, CodeElement parent) { CodeField field = new CodeField(name, fullName, location, parent); return field; }
internal FieldBuilder(CodeField field) { Field = field; }
protected override CodeElement CreateCodeElement(string name, string fullName, CodeLocation location, CodeElement parent) { CodeField field = new CodeField(name, fullName, location, parent); return(field); }
public SelectColorCommand(CodeField codeField) { CodeField = codeField; }