You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							226 lines
						
					
					
						
							5.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							226 lines
						
					
					
						
							5.0 KiB
						
					
					
				
								/*
							 | 
						|
									Copyright (c) 2011 Google Inc. All rights reserved.
							 | 
						|
									Use of this source code is governed by a BSD-style license that can be
							 | 
						|
									found in the LICENSE file.
							 | 
						|
									
							 | 
						|
									gyp.xclangspec
							 | 
						|
									GYP language specification for Xcode 3
							 | 
						|
								
							 | 
						|
									There is not much documentation available regarding the format
							 | 
						|
									of .xclangspec files. As a starting point, see for instance the
							 | 
						|
									outdated documentation at:
							 | 
						|
									http://maxao.free.fr/xcode-plugin-interface/specifications.html
							 | 
						|
									and the files in:
							 | 
						|
									/Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/
							 | 
						|
								
							 | 
						|
									Place this file in directory:
							 | 
						|
									~/Library/Application Support/Developer/Shared/Xcode/Specifications/
							 | 
						|
								*/
							 | 
						|
								
							 | 
						|
								(
							 | 
						|
								
							 | 
						|
								    {
							 | 
						|
								        Identifier = "xcode.lang.gyp.keyword";
							 | 
						|
								        Syntax = {
							 | 
						|
								            Words = (
							 | 
						|
								                "and",
							 | 
						|
								                "or",
							 | 
						|
								                "<!",
							 | 
						|
								                "<",
							 | 
						|
								             );
							 | 
						|
								            Type = "xcode.syntax.keyword";
							 | 
						|
								        };
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    {
							 | 
						|
								        Identifier = "xcode.lang.gyp.target.declarator";
							 | 
						|
								        Syntax = {
							 | 
						|
								        	Words = (
							 | 
						|
								        		"'target_name'",
							 | 
						|
								        	);
							 | 
						|
								            Type = "xcode.syntax.identifier.type";
							 | 
						|
								        };
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp.string.singlequote";
							 | 
						|
										Syntax = {
							 | 
						|
											IncludeRules = (
							 | 
						|
												"xcode.lang.string",
							 | 
						|
												"xcode.lang.gyp.keyword",
							 | 
						|
												"xcode.lang.number",
							 | 
						|
											);
							 | 
						|
											Start = "'";
							 | 
						|
											End = "'";
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
									
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp.comma";
							 | 
						|
										Syntax = {
							 | 
						|
											Words = ( ",", );
							 | 
						|
											
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
								
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp";
							 | 
						|
										Description = "GYP Coloring";
							 | 
						|
										BasedOn = "xcode.lang.simpleColoring";
							 | 
						|
										IncludeInMenu = YES;
							 | 
						|
										Name = "GYP";
							 | 
						|
										Syntax = {
							 | 
						|
											Tokenizer = "xcode.lang.gyp.lexer.toplevel";
							 | 
						|
											IncludeRules = (
							 | 
						|
												"xcode.lang.gyp.dictionary",
							 | 
						|
											);
							 | 
						|
											Type = "xcode.syntax.plain";
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
								
							 | 
						|
									// The following rule returns tokens to the other rules
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp.lexer";
							 | 
						|
										Syntax = {
							 | 
						|
											IncludeRules = (
							 | 
						|
												"xcode.lang.gyp.comment",
							 | 
						|
												"xcode.lang.string",
							 | 
						|
												'xcode.lang.gyp.targetname.declarator',
							 | 
						|
												"xcode.lang.gyp.string.singlequote",
							 | 
						|
												"xcode.lang.number",
							 | 
						|
												"xcode.lang.gyp.comma",
							 | 
						|
											);
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
								
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp.lexer.toplevel";
							 | 
						|
										Syntax = {
							 | 
						|
											IncludeRules = (
							 | 
						|
												"xcode.lang.gyp.comment",
							 | 
						|
											);
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
								
							 | 
						|
									{
							 | 
						|
								        Identifier = "xcode.lang.gyp.assignment";
							 | 
						|
								        Syntax = {
							 | 
						|
								            Tokenizer = "xcode.lang.gyp.lexer";
							 | 
						|
								            Rules = (
							 | 
						|
								            	"xcode.lang.gyp.assignment.lhs",
							 | 
						|
								            	":",
							 | 
						|
								                "xcode.lang.gyp.assignment.rhs",
							 | 
						|
								            );
							 | 
						|
								        };
							 | 
						|
								       
							 | 
						|
								    },
							 | 
						|
								    
							 | 
						|
								    {
							 | 
						|
								        Identifier = "xcode.lang.gyp.target.declaration";
							 | 
						|
								        Syntax = {
							 | 
						|
								            Tokenizer = "xcode.lang.gyp.lexer";
							 | 
						|
								            Rules = (
							 | 
						|
								                "xcode.lang.gyp.target.declarator",
							 | 
						|
								                ":",
							 | 
						|
								                "xcode.lang.gyp.target.name",
							 | 
						|
								            );
							 | 
						|
								        };
							 | 
						|
								   },
							 | 
						|
								   
							 | 
						|
								   {
							 | 
						|
								        Identifier = "xcode.lang.gyp.target.name";
							 | 
						|
								        Syntax = {
							 | 
						|
								            Tokenizer = "xcode.lang.gyp.lexer";
							 | 
						|
								            Rules = (
							 | 
						|
								                "xcode.lang.gyp.string.singlequote",
							 | 
						|
								            );
							 | 
						|
								        	Type = "xcode.syntax.definition.function";
							 | 
						|
								        };
							 | 
						|
								    },
							 | 
						|
								    
							 | 
						|
									{
							 | 
						|
								        Identifier = "xcode.lang.gyp.assignment.lhs";
							 | 
						|
								        Syntax = {
							 | 
						|
								            Tokenizer = "xcode.lang.gyp.lexer";
							 | 
						|
								            Rules = (
							 | 
						|
								            	"xcode.lang.gyp.string.singlequote",
							 | 
						|
								            );
							 | 
						|
								         	Type = "xcode.syntax.identifier.type";
							 | 
						|
								        };
							 | 
						|
								    },
							 | 
						|
								    
							 | 
						|
								    {
							 | 
						|
								        Identifier = "xcode.lang.gyp.assignment.rhs";
							 | 
						|
								        Syntax = {
							 | 
						|
								        	Tokenizer = "xcode.lang.gyp.lexer";
							 | 
						|
								            Rules = (
							 | 
						|
								            	"xcode.lang.gyp.string.singlequote?",
							 | 
						|
								                "xcode.lang.gyp.array?",
							 | 
						|
												"xcode.lang.gyp.dictionary?",
							 | 
						|
												"xcode.lang.number?",
							 | 
						|
								            );
							 | 
						|
								        };
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp.dictionary";
							 | 
						|
										Syntax = {
							 | 
						|
											Tokenizer = "xcode.lang.gyp.lexer";
							 | 
						|
											Start = "{";
							 | 
						|
											End = "}";
							 | 
						|
											Foldable = YES;
							 | 
						|
											Recursive = YES;
							 | 
						|
											IncludeRules = (
							 | 
						|
												"xcode.lang.gyp.target.declaration",
							 | 
						|
												"xcode.lang.gyp.assignment",
							 | 
						|
											);
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
								
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp.array";
							 | 
						|
										Syntax = {
							 | 
						|
											Tokenizer = "xcode.lang.gyp.lexer";
							 | 
						|
											Start = "[";
							 | 
						|
											End = "]";
							 | 
						|
											Foldable = YES;
							 | 
						|
											Recursive = YES;
							 | 
						|
											IncludeRules = (
							 | 
						|
												"xcode.lang.gyp.array",
							 | 
						|
												"xcode.lang.gyp.dictionary",
							 | 
						|
												"xcode.lang.gyp.string.singlequote",
							 | 
						|
											);
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
								
							 | 
						|
								    {
							 | 
						|
								        Identifier = "xcode.lang.gyp.todo.mark";
							 | 
						|
								        Syntax = {
							 | 
						|
								            StartChars = "T";
							 | 
						|
								            Match = (
							 | 
						|
								                "^\(TODO\(.*\):[ \t]+.*\)$",       // include "TODO: " in the markers list
							 | 
						|
								            );
							 | 
						|
								            // This is the order of captures. All of the match strings above need the same order.
							 | 
						|
								            CaptureTypes = (
							 | 
						|
								                "xcode.syntax.mark"
							 | 
						|
								            );
							 | 
						|
								            Type = "xcode.syntax.comment";
							 | 
						|
								        };
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
									{
							 | 
						|
										Identifier = "xcode.lang.gyp.comment";
							 | 
						|
										BasedOn = "xcode.lang.comment"; // for text macros
							 | 
						|
										Syntax = {
							 | 
						|
											Start = "#";
							 | 
						|
											End = "\n";
							 | 
						|
											IncludeRules = (
							 | 
						|
												"xcode.lang.url",
							 | 
						|
												"xcode.lang.url.mail",
							 | 
						|
												"xcode.lang.comment.mark",
							 | 
						|
												"xcode.lang.gyp.todo.mark",
							 | 
						|
											);
							 | 
						|
											Type = "xcode.syntax.comment";
							 | 
						|
										};
							 | 
						|
									},
							 | 
						|
								)
							 |