// class [ assoc class ] private bool ParseClassOrAssociation(ClassDiagram cd) { // class var c = ParseClass(); if (c == null) { // error must have been flagged by class parsing return(false); } cd.AddClass(c); // either there is an association afterwards or not // if there is none, then either this is the end of input // or a comma follows. var sourceClass = c; do { var assoc = ParseAssociation(); if (assoc == null) { break; } // assoc did parse, must be followed by class var c2 = ParseClass(); if (c2 == null) { return(false); } cd.AddClass(c2); cd.Add(new Association(assoc, sourceClass, c2)); sourceClass = c2; } while (true); return(true); }
/// <summary> /// Adds the submitted classes to the diagram. /// </summary> /// <param name="classes">A list of classes to add.</param> private void AddClasses(IEnumerable <NRClass> classes) { foreach (NRClass nrClass in classes) { ClassType classType = diagram.AddClass(); classType.Name = nrClass.Name; classType.AccessModifier = nrClass.AccessModifier.ToNClass(); classType.Modifier = nrClass.ClassModifier.ToNClass(); AddFields(classType, nrClass.Fields); AddProperties(classType, nrClass.Properties); AddEvents(classType, nrClass.Events); AddConstructors(classType, nrClass.Constructors); AddMethods(classType, nrClass.Methods); AddOperators(classType, nrClass.Operators); types.Add(nrClass, classType); } }