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"; | 
						|
		}; | 
						|
	}, | 
						|
)
 | 
						|
 |