// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
{
	BBEditDocumentType = "CodelessLanguageModule";
	BBLMColorsSyntax = YES;
	BBLMIsCaseSensitive = YES;
	BBLMKeywordList = (
		append,
		bool,
		break,
		byte,
		cap,
		case,         
		chan,
		close,
		closed,
		complex,
		complex128,
		complex64,
		const,
		continue,
		copy,
		default,      
		defer,
		else,
		fallthrough,
		false,
		float32,
		float64,
		for,
		func,         
		go,
		goto,
		if,
		iota,
		imag,
		import,
		int,
		int16,
		int32,
		int64,
		int8,
		interface,
		len,
		make,
		map,
		new,
		nil,
		package,
		panic,
		print,
		println,
		range,
		real,
		recover,
		return,
		select,
		string,
		struct,
		switch,
		true,
		type,
		uint,
		uint16,
		uint32,
		uint64,
		uint8,
		uintptr,
		var,
	);
	BBLMLanguageCode = go;
	"BBLMLanguageDisplayName" = "Go";
	BBLMScansFunctions = YES;
	BBLMSuffixMap = (
		{
			BBLMLanguageSuffix = ".go";
		},
	);
	"Language Features" = {
		"Close Block Comments" = "*/";
		"Close Parameter Lists" = ")";
		"Close Statement Blocks" = "}";
		"Close Strings 1" = "`";
		"Close Strings 2" = "\"";
		"End-of-line Ends Strings 1" = YES;
		"End-of-line Ends Strings 2" = YES;
		"Escape Char in Strings 1" = "\\";
		"Escape Char in Strings 2" = "\\";
		"Identifier and Keyword Characters" = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
		"Open Block Comments" = "/*";
		"Open Line Comments" = "//";
		"Open Parameter Lists" = "(";
		"Open Statement Blocks" = "{";
		"Open Strings 1" = "`";
		"Open Strings 2" = "\"";
		"Prefix for Functions" = "func";
		"Prefix for Procedures" = func;
		"Terminator for Prototypes 1" = ";";
		"Terminator for Prototypes 2" = "";
	};
}
