public static Symbol NextTempName(IMacroContext ctx, LNode value) { string prefix = value.Name.Name; prefix = EcsValidators.IsPlainCsIdentifier(prefix) ? prefix + "_" : "tmp_"; return(NextTempName(ctx, prefix)); }
public void IsPlainCsIdentifierTests() { IsTrue(EcsValidators.IsPlainCsIdentifier("x")); IsTrue(EcsValidators.IsPlainCsIdentifier("aAzZ_")); IsTrue(EcsValidators.IsPlainCsIdentifier("_19aAzZ")); IsFalse(EcsValidators.IsPlainCsIdentifier("19aAzZ")); IsFalse(EcsValidators.IsPlainCsIdentifier("_<>_")); IsFalse(EcsValidators.IsPlainCsIdentifier("I'd")); IsFalse(EcsValidators.IsPlainCsIdentifier("C#")); IsFalse(EcsValidators.IsPlainCsIdentifier("#5")); IsFalse(EcsValidators.IsPlainCsIdentifier("")); }
static LNode TempVarDecl(LNode value, out LNode tmpId) { string prefix = value.Name.Name; if (!EcsValidators.IsPlainCsIdentifier(prefix)) { prefix = "tmp_"; } else { prefix += "_"; } return(TempVarDecl(value, out tmpId, prefix)); }