示例#1
0
        public static Symbol NextTempName(IMacroContext ctx, LNode value)
        {
            string prefix = value.Name.Name;

            prefix = EcsValidators.IsPlainCsIdentifier(prefix) ? prefix + "_" : "tmp_";
            return(NextTempName(ctx, prefix));
        }
示例#2
0
 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(""));
 }
示例#3
0
        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));
        }