public static TryInterpretReturnValue TryGetFirstStructLocation(ushort *ccp, int lineLength, Caret start, int column) { switch (*ccp) { case 'p': // power return(start.PowerDetect(column, lineLength, ccp)); case 'u': // unit return(start.UnitDetect(column, lineLength, ccp)); case 'r': // race return(start.RaceDetect(column, lineLength, ccp)); case 'a': // attribute return(start.AttributeDetect(column, lineLength, ccp)); case 'f': // field return(start.FieldDetect(column, lineLength, ccp)); case 'o': // object return(start.ObjectDetect(column, lineLength, ccp)); case 'm': // movetype return(start.MoveTypeDetect(column, lineLength, ccp)); case 'e': // event return(start.EventDetect(column, lineLength, ccp)); case 'd': // dungeon, detail return(start.DungeonOrDetailDetect(column, lineLength, ccp)); case 'c': // class, context return(start.ClassOrContextDetect(column, lineLength, ccp)); case 's': // scenario, skill, skillset, sound, story return(start.SDetect(column, lineLength, ccp)); case 'w': // workspace return(start.WorkspaceDetect(column, lineLength, ccp)); case 'v': // voice return(start.VoiceDetect(column, lineLength, ccp)); default: return(new TryInterpretReturnValue(start, ErrorSentence.Kind.StructKindNotFoundError)); } }