CreateEscapedIdentifier() public method

public CreateEscapedIdentifier ( string value ) : string
value string
return string
Example #1
0
        public override void ModifyTags(SolutionFolderItem policyParent, Project project, string language, string identifier, string fileName, ref Dictionary <string, string> tags)
        {
            //prevent parser breakage from missing tags, which SingleFile only provides for DotNetProject
            //if ((project as DotNetProject) == null)
            //	throw new InvalidOperationException ("CodeTranslationFileDescriptionTemplate can only be used with a DotNetProject");

            base.ModifyTags(policyParent, project, language, identifier, fileName, ref tags);

            //swap out the escaped keyword identifiers for the target language with the source language
            //CodeDOM should take care of handling it for the target language
            System.CodeDom.Compiler.CodeDomProvider provider = GetCodeDomProvider(sourceLang);
            tags ["EscapedIdentifier"] = provider.CreateEscapedIdentifier((string)tags ["Name"]);

            //This is a bit hacky doing it here instead of in CreateContent, but need to
            //substitute all tags in code before language is translated, because language
            //translation gets confused by unsubstituted  substitution tokens.
            tempSubstitutedContent = StringParserService.Parse(content, tags);
        }
 private static void EscapeKeywords(string identifier, CodeDomProvider codeProvider, StringBuilder sb)
 {
     if ((identifier != null) && (identifier.Length != 0))
     {
         int num = 0;
         while (identifier.EndsWith("[]", StringComparison.Ordinal))
         {
             num++;
             identifier = identifier.Substring(0, identifier.Length - 2);
         }
         if (identifier.Length > 0)
         {
             CheckValidIdentifier(identifier);
             identifier = codeProvider.CreateEscapedIdentifier(identifier);
             sb.Append(identifier);
         }
         for (int i = 0; i < num; i++)
         {
             sb.Append("[]");
         }
     }
 }
Example #3
0
		static void GenerateAction (CodeTypeReference exportAtt, CodeTypeDeclaration type, IBAction action, 
			CodeDomProvider provider, CodeGeneratorOptions generatorOptions)
		{
			if (provider is Microsoft.CSharp.CSharpCodeProvider) {
				type.Members.Add (new CodeSnippetTypeMember ("[" + exportAtt.BaseType + "(\"" + action.GetObjcFullName ()  + "\")]"));
				
				var sb = new System.Text.StringBuilder ();
				sb.Append ("partial void ");
				sb.Append (provider.CreateEscapedIdentifier (action.CliName));
				sb.Append (" (");
				if (action.Parameters != null) {
					bool isFirst = true;
					foreach (var p in action.Parameters) {
						if (!isFirst) {
							sb.Append (", ");
						} else {
							isFirst = false;
						}
						sb.Append (p.CliType);
						sb.Append (" ");
						sb.Append (provider.CreateEscapedIdentifier (p.Name));
					}
				}
				sb.Append (");");
				
				type.Members.Add (new CodeSnippetTypeMember (sb.ToString ()));
				return;
			}
			
			var m = CreateEventMethod (exportAtt, action);
			type.Members.Add (m);
			
			if (provider.FileExtension == "pas") {
				m.UserData ["OxygenePartial"] = "YES";
				m.UserData ["OxygeneEmpty"] = "YES";
			}
		}
		string SanitizeResourceName (CodeDomProvider provider, string name)
		{
			if (provider.IsValidIdentifier (name))
				return provider.CreateEscapedIdentifier (name);

			var sb = new StringBuilder ();
			char ch = name [0];
			if (is_identifier_start_character (ch))
				sb.Append (ch);
			else {
				sb.Append ('_');
				if (ch >= '0' && ch <= '9')
					sb.Append (ch);
			}
			
			for (int i = 1; i < name.Length; i++) {
				ch = name [i];
				if (is_identifier_part_character (ch))
					sb.Append (ch);
				else
					sb.Append ('_');
			}
			
			return provider.CreateEscapedIdentifier (sb.ToString ());
		}