Ejemplo n.º 1
0
        private void Button_Click_4(object sender, RoutedEventArgs e)
        {
            if (NewArgName.Text.Length < 1)
            {
                MessageBox.Show("Choose a name for the parameter!");
                return;
            }

            ComboBoxItem typeItem = NewArgType.SelectedItem as ComboBoxItem;
            String       type     = typeItem.Content as String;

            if (type == "void" && NewArgPointer.SelectedIndex != 1)
            {
                MessageBox.Show("A void argument must be a pointer!");
                return;
            }

            CType.TypeKind kind = CType.TypeKind.ValueType;
            if (type == "_unknown_")
            {
                if (NewArgPointer.SelectedIndex == 1)
                {
                    kind = CType.TypeKind.UnknownPointer;
                }
                else
                {
                    kind = CType.TypeKind.Unknown;
                }
            }
            else if (NewArgPointer.SelectedIndex == 1)
            {
                kind = CType.TypeKind.Pointer;
            }

            String name = NewArgName.Text.Trim();

            if (!Regex.IsMatch(name, @"^[a-zA-Z_][a-zA-Z0-9_]*$"))
            {
                MessageBox.Show("A parameter must be made of only letters, digits and underscores!");
                return;
            }

            foreach (ListViewArgument a in _ArgCollection)
            {
                if (a.Name == name)
                {
                    MessageBox.Show("Parameter name collision!");
                    return;
                }
            }

            ListViewArgument arg = new ListViewArgument(NewArgName.Text, new CType(kind, type));

            _ArgCollection.Add(arg);
        }
        private void Button_Click_4(object sender, RoutedEventArgs e)
        {
            if (NewArgName.Text.Length < 1)
            {
                MessageBox.Show("Choose a name for the parameter!");
                return;
            }

            ComboBoxItem typeItem = NewArgType.SelectedItem as ComboBoxItem;
            String type = typeItem.Content as String;

            if (type == "void" && NewArgPointer.SelectedIndex != 1)
            {
                MessageBox.Show("A void argument must be a pointer!");
                return;
            }

            CType.TypeKind kind = CType.TypeKind.ValueType;
            if (type == "_unknown_")
            {
                if (NewArgPointer.SelectedIndex == 1)
                    kind = CType.TypeKind.UnknownPointer;
                else
                    kind = CType.TypeKind.Unknown;
            }
            else if (NewArgPointer.SelectedIndex == 1)
                kind = CType.TypeKind.Pointer;

            String name = NewArgName.Text.Trim();
            if (!Regex.IsMatch(name, @"^[a-zA-Z_][a-zA-Z0-9_]*$"))
            {
                MessageBox.Show("A parameter must be made of only letters, digits and underscores!");
                return;
            }

            foreach (ListViewArgument a in _ArgCollection)
            {
                if (a.Name == name)
                {
                    MessageBox.Show("Parameter name collision!");
                    return;
                }
            }

            ListViewArgument arg = new ListViewArgument(NewArgName.Text, new CType(kind, type));
            _ArgCollection.Add(arg);
        }