private IToken Tokenize(MethodDefinition method) { if (method.IsExcluded) { return(NullToken.Instance); } LineToken header = TokenizeHeader(method); IToken methodToken; if (method.IsExtern) { methodToken = new LinesToken(new LineToken[] { new LineToken("[DllImport(Native.Dll, CallingConvention = Native.Conv)]"), header }); } else { IList <IToken> bodyTokens = TokenizeBody(method); methodToken = new BlockToken(header, bodyTokens); } return(methodToken); }
public IToken Tokenize(ModelNodeDefinition node) { var @enum = (EnumDefinition)node; var definition = new LineToken($"public enum {@enum.Name}"); IToken headerToken; if (@enum.IsFlags()) { headerToken = new LinesToken(new LineToken[] { new LineToken("[Flags]"), definition } ); } else { headerToken = definition; } var enumerators = new List <IToken>(); var lastEnumerator = @enum.Enumerators.Last(); foreach (EnumeratorDefinition enumerator in @enum.Enumerators) { string comma = enumerator == lastEnumerator ? "" : ","; string enumeratorLine = enumerator.Value != null ? $"{enumerator.Name} = {enumerator.Value}{comma}" : enumerator.Name + comma; enumerators.Add(new LineToken(enumeratorLine)); } BlockToken enumToken = new BlockToken(headerToken, enumerators); return(enumToken); }