BFSchema.AstConvert.ConvertEnumField C# (CSharp) Method

ConvertEnumField() private method

private ConvertEnumField ( PegNode node, BfsEnum block ) : void
node Peg.Base.PegNode
block BfsEnum
return void
        private void ConvertEnumField(PegNode node, BfsEnum block)
        {
            BfsEnumField field = new BfsEnumField();
            StoreSourceRange(node, field);
            for (PegNode enode = node.child_; enode != null; enode = enode.next_)
            {
                switch (GetNodeId(enode))
                {
                    case EBinaryFileSchemaParser.number:
                        BfsEnumValue enumval = new BfsEnumValue();
                        StoreSourceRange(enode, enumval);
                        enumval.Value = long.Parse(GetNodeText(enode), CultureInfo.InvariantCulture);
                        field.EnumMatch = enumval;
                        break;

                    case EBinaryFileSchemaParser.enumrange:
                        BfsEnumRange enumrange = new BfsEnumRange();
                        StoreSourceRange(enode, enumrange);
                        enumrange.StartValue = long.Parse(GetNodeText(enode.child_.next_), CultureInfo.InvariantCulture);
                        enumrange.EndValue = long.Parse(GetNodeText(enode.child_.next_.next_), CultureInfo.InvariantCulture);
                        enumrange.StartInclusion =
                            (GetNodeText(enode.child_) == "[") ? BfsInclusionEnum.Included : BfsInclusionEnum.Excluded;
                        enumrange.EndInclusion =
                            (GetNodeText(enode.child_.next_.next_.next_) == "]") ? BfsInclusionEnum.Included : BfsInclusionEnum.Excluded;
                        field.EnumMatch = enumrange;
                        break;

                    case EBinaryFileSchemaParser.p_else:
                        field.EnumMatch = new BfsEnumElse();
                        StoreSourceRange(enode, field.EnumMatch);
                        break;

                    case EBinaryFileSchemaParser.action_list:
                        ConvertActionList(enode, field.Actions);
                        break;

                    case EBinaryFileSchemaParser.enumname:
                        field.Alias = GetNodeText(enode);
                        field.AliasSourceRange = GetSourceRange(enode);
                        break;
                }
            }
            block.EnumFields.Add(field);
        }