public RustInstrCreateGen(GeneratorOptions generatorOptions) { idConverter = RustIdentifierConverter.Create(); this.generatorOptions = generatorOptions; docWriter = new RustDocCommentWriter(idConverter); gen = new InstrCreateGenImpl(idConverter, docWriter); genNames = GenCreateNameArgs.RustNames; }
public RustInstrCreateGen(GeneratorContext generatorContext) : base(generatorContext.Types) { this.generatorContext = generatorContext; idConverter = RustIdentifierConverter.Create(); docWriter = new RustDocCommentWriter(idConverter); gen = new InstrCreateGenImpl(genTypes, idConverter, docWriter); genNames = GenCreateNameArgs.RustNames; }
public static string GetCreateName(StringBuilder sb, CreateMethod method, GenCreateNameArgs genNames) { if (method.Args.Count == 0 || method.Args[0].Type != MethodArgType.Code) { throw new InvalidOperationException(); } sb.Clear(); sb.Append(genNames.CreatePrefix); var args = method.Args; for (int i = 1; i < args.Count; i++) { var arg = args[i]; switch (arg.Type) { case MethodArgType.Register: sb.Append(genNames.Register); break; case MethodArgType.Memory: sb.Append(genNames.Memory); break; case MethodArgType.Int32: sb.Append(genNames.Int32); break; case MethodArgType.UInt32: sb.Append(genNames.UInt32); break; case MethodArgType.Int64: sb.Append(genNames.Int64); break; case MethodArgType.UInt64: sb.Append(genNames.UInt64); break; case MethodArgType.Code: case MethodArgType.RepPrefixKind: case MethodArgType.UInt8: case MethodArgType.UInt16: case MethodArgType.PreferedInt32: case MethodArgType.ArrayIndex: case MethodArgType.ArrayLength: case MethodArgType.ByteArray: case MethodArgType.WordArray: case MethodArgType.DwordArray: case MethodArgType.QwordArray: case MethodArgType.ByteSlice: case MethodArgType.WordSlice: case MethodArgType.DwordSlice: case MethodArgType.QwordSlice: case MethodArgType.BytePtr: case MethodArgType.WordPtr: case MethodArgType.DwordPtr: case MethodArgType.QwordPtr: default: throw new InvalidOperationException(); } } return(sb.ToString()); }
public string GetCreateName(CreateMethod method, GenCreateNameArgs genNames) => GetCreateName(sb, method, genNames);