bool ParseTag(string name, string arg) { switch (name) { //太字 case "b": return(customInfo.TryParseBold(arg)); case "/b": customInfo.ResetBold(); return(true); //イタリック case "i": return(customInfo.TryParseItalic(arg)); case "/i": customInfo.ResetItalic(); return(true); //カラー case "color": return(customInfo.TryParseColor(arg)); case "/color": customInfo.ResetColor(); return(true); //サイズ case "size": return(customInfo.TryParseSize(arg)); case "/size": customInfo.ResetSize(); return(true); //ルビ case "ruby": return(customInfo.TryParseRuby(arg)); case "/ruby": customInfo.ResetRuby(); return(true); //傍点 case "em": return(customInfo.TryParseEmphasisMark(arg)); case "/em": customInfo.ResetEmphasisMark(); return(true); //上付き文字 case "sup": return(customInfo.TryParseSuperScript(arg)); case "/sup": customInfo.ResetSuperScript(); return(true); //下付き文字 case "sub": return(customInfo.TryParseSubScript(arg)); case "/sub": customInfo.ResetSubScript(); return(true); //下線 case TagUnderLine: return(customInfo.TryParseUnderLine(arg)); case "/" + TagUnderLine: customInfo.ResetUnderLine(); return(true); //取り消し線 case "strike": return(customInfo.TryParseStrike(arg)); case "/strike": customInfo.ResetStrike(); return(true); //グループ文字 case "group": return(customInfo.TryParseGroup(arg)); case "/group": customInfo.ResetGroup(); return(true); //絵文字 case "emoji": return(TryAddEmoji(arg)); //ダッシュ(ハイフン・横線) case "dash": AddDash(arg); return(true); //スペース case "space": return(TryAddSpace(arg)); //変数の文字表示 case "param": { string str = ExpressionToString(arg); AddStrng(str); return(true); } //リンク case "link": return(customInfo.TryParseLink(arg)); case "/link": customInfo.ResetLink(); return(true); //TIPS case "tips": return(customInfo.TryParseTips(arg)); case "/tips": customInfo.ResetTips(); return(true); //サウンド case TagSound: return(customInfo.TryParseSound(arg)); case "/" + TagSound: customInfo.ResetSound(); return(true); //スピード case TagSpeed: return(customInfo.TryParseSpeed(arg)); case "/" + TagSpeed: customInfo.ResetSpeed(); return(true); //インターバル case "interval": return(TryAddInterval(arg)); //フォーマットつき変数表示 case "format": { char[] separator = { ':' }; string[] args = arg.Split(separator, System.StringSplitOptions.RemoveEmptyEntries); int num = args.Length - 1; string[] paramKeys = new string[num]; Array.Copy(args, 1, paramKeys, 0, num); string str = FormatExpressionToString(args[0], paramKeys); AddStrng(str); return(true); } default: return(false); } ; }