코드 조각 : Textmacro - escaco95/Charcoal GitHub Wiki

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestProject.V5
{
    public enum TextmacroArgumentType
    {
        None = 0,
        RawStringSingleLine = 1,
        RawStringMultiLine = 2,
        Template = 4,
        RawStrings = RawStringSingleLine | RawStringMultiLine,
        Any = RawStrings | Template,
    }
    public class TextmacroTemplate
    {
        public List<TextmacroArgumentType> Arguments { get; private set; } = new List<TextmacroArgumentType>();
        public List<TextmacroElement> Elements { get; private set; } = new List<TextmacroElement>();
    }
    public class TextmacroInstance
    {
        public TextmacroTemplate Template { get; private set; }
        public TextmacroArgument[] Arguments { get; private set; }
        public TextmacroInstance(TextmacroTemplate template)
        {
            Template = template;
            Arguments = new TextmacroArgument[Template.Arguments.Count];
        }
    }
    public class TextmacroElement
    {

    }
    public class TextmacroArgument
    {
        string RawString;
        TextmacroElement Element;
    }
}