青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當自強而不息

【ZT】D語言詞法分析(2)

字符串文字量

	字符串文字量:	所見即所得字符串	替代所見即所得字符串	雙引號字符串		轉義序列		十六進制字符串	
	StringLiteral:	WysiwygString	AlternateWysiwygString	DoubleQuotedString	EscapeSequence	HexString	
 
	所見即所得字符串:	r" 多個所見即所得字符 "	替代所見即所得字符串:	` 多個所見即所得字符 `	所見即所得字符:	字符		
	WysiwygString:	r" WysiwygCharacters "	AlternateWysiwygString:	` WysiwygCharacters `	WysiwygCharacter:	Character	
	
	行尾		雙引號字符串:		" 多個雙引號字符 "		雙引號字符:		字符		轉義序列		
	EndOfLine	DoubleQuotedString:	" DoubleQuotedCharacters "	DoubleQuotedCharacter:	Character		EscapeSequence	
 
	行尾		轉義序列:	\'	\"	\?	\\	\a	\b	\f	\n	\r	\t	\v		
	EndOfLine	EscapeSequence:	\'	\"	\?	\\	\a	\b	\f	\n	\r	\t	\v	
	
	\ 文件尾		\x 十六進制數字 十六進制數字	\ 八進制數字	\ 八進制數字 八進制數字	\ 八進制數字 八進制數字 八進制數字		
	\ EndOfFile	\x HexDigit HexDigit		\ OctalDigit	\ OctalDigit OctalDigit	\ OctalDigit OctalDigit OctalDigit
 
	\u 十六進制數字 十六進制數字 十六進制數字 十六進制數字	
	\u HexDigit HexDigit HexDigit HexDigit			
 
	\U 十六進制數字 十六進制數字 十六進制數字 十六進制數字 十六進制數字 十六進制數字 十六進制數字 十六進制數字	十六進制字符串:		
	\U HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit					HexString:
		
	x" 多個十六進制字符串字符 "	多個十六進制字符串字符:	十六進制數字	空白		行尾
	x" HexStringChars "		HexStringChar		HexDigit	WhiteSpace	EndOfLine	
 

字符串文字量可以是一個雙引號字符串、一個所見即所得引號字符串、一個轉義序列、或者一個十六進制字符串。

所見即所得引號字符串由‘r"’和‘"’包圍起來。所有位于‘r"’和‘"’之間的字符都是字符串的一部分,只有 行尾 除外,他被視作一個‘\n’字符。在 r" " 中沒有轉義序列:

	r"hello"	r"c:\root\foo.exe"	r"ab\n"		// 由四個字符組成的字符串:'a'、'b'、'\'、'n'	
所見即所得字符串的另一種形式是使用反引號‘`’代替雙引號。‘`’字符并不是所有的鍵盤上都有,而且有時在屏幕上難以同另一個常用的字符‘'’區分。盡管‘`’很少使用,當用在包含‘"’的字符串時就會體現出它的價值。
	`hello`	`c:\root\foo.exe`	`ab\n`		// 由四個字符組成的字符串:'a'、'b'、'\'、'n'	
雙引號字符串是用‘""’包圍起來的字符串。可以使用典型的‘\’記號在其中嵌入轉義序列。行尾 被視作一個‘\n’字符。
	"hello"	"c:\\root\\foo.exe"	"ab\n"	// 由三個字符組成的字符串:'a'、'b'和一個新行符	
	"ab	"			// 由三個字符組成的字符串:'a'、'b'和一個新行符	
轉義字符串由‘\’開始,他和其后的字符構成了一個轉義字符序列。相鄰的轉義字符串會被連接在一起:
	\n		// 新行符	
	\t		// 制表符	
	\"		// 雙引號	
	\012		// 八進制	
	\x1A		// 十六進制	
	\u1234		// wchar 字符	
	\U00101234	// dchar 字符	
	\r\n		// 回車換行	
除了上面列出的,其他的轉義序列都是非法的。

十六進制字符串使用十六進制數據構造字符串:

	x"0A"			// 等價于 "\x0A"	
	x"00 FBCD 32FD 0A"	// 等價于 "\x00\xFB\xCD\x32\xFD\x0A"	
空白和新行符會被忽略,因此可以很方便的格式化。十六進制字符的個數必須是2的倍數。

相鄰的字符串應該用 ~ 運算符連接,或者也可以僅僅并置即可:

	"hello " ~ "world" ~ \n	// 構成字符串:'h','e','l','l','o',' ','w','o','r','l','d',字符串	
下面的形式都是等價的:
	"ab" "c"	r"ab" r"c"	r"a" "bc"	"a" ~ "b" ~ "c"	\x61"bc"	

字符文字量

	字符文字量:	' 單引號字符 '		單引號字符		字符		轉義序列	
	CharacterLiteral:	' SingleQuotedCharacter '	SingleQuotedCharacter	Character		EscapeSequence	
字符文字量是單個的字符或者由單引號括起來的轉義序列,' ' 。

整數文字量

	整數文字量:	整數	整數 	整數后綴		整數:		十進制數		二進制數		八進制數		
	IntegerLiteral:	Integer	Integer I	ntegerSuffix	Integer:		Decimal		Binary		Octal		
 
	十六進制數	整數 _	整數后綴:	l	L	u	U	lu	Lu	lU	LU	ul	uL		
	Hexadecimal	Integer _IntegerSuffix:	l	L	u	U	lu	Lu	lU	LU	ul	uL
 
	Ul	UL	十進制數:	0	非零數字		非零數字 	十進制數		非零數字 _ 十進制數	二進制數:	
	Ul	UL	Decimal:		0	NonZeroDigit	NonZeroDigit 	Decimal		NonZeroDigit _ Decimal	Binary:
 
	0b 二進制數字	0B 二進制數字	八進制數:	0 八進制數字	十六進制數:	0x 十六進制數字	0X 十六進制數字
	0b BinaryDigits	0B BinaryDigits	Octal:		0 OctalDigits	Hexadecimal:	0x HexDigits	0X HexDigits	
 
整數可以采用十進制、二進制、八進制或者十六進制。

十進制整數是十進制數字的序列。

二進制整數是二進制數字的序列,以‘0b’為前綴。

八進制整數是八進制數字的序列,以‘0’為前綴。

十六進制整數是十六進制數字的序列,以‘0x’為前綴,或者使用‘h’作為后綴。

整數可以內嵌 '_' 字符,它們會被忽略。嵌入的 '_' 可以用于格式化較長的文字量,例如作為千位分隔符:

	123_456		// 123456	
	1_2_3_4_5_6_	// 123456	
整數后可以緊跟著一個 'l' 或者一個 'u' 或者兩者都有。

整數的類型按照下述規則判斷:

  1. 如果是十進制的,它是 ulong、long、int 中從后向前找到的第一個可以表示它的類型。
  2. 如果不是十進制的,它是 ulong、long、uint、int 中從后向前找到的第一個可以表示它的類型。
  3. 如果它有后綴‘u’,它是 ulong、uint 中從后向前找到的第一個可以表示它的類型。
  4. 如果它有后綴‘l’,它是 ulong、long 中從后向前找到的第一個可以表示它的類型。
  5. 如果它同時擁有后綴‘u’和‘l’,它是 ulong 類型。

浮點數文字量

	浮點數文字量:	浮點數	浮點數 浮點數后綴	浮點數 虛數后綴		浮點數 浮點數后綴 虛數后綴		浮點數:	十進制浮點數	
	FloatLiteral:	Float	Float FloatSuffix	Float ImaginarySuffix	Float FloatSuffix ImaginarySuffix	Float:	DecimalFloat	
	
	十六進制浮點數	浮點數 _	浮點數后綴:	f	F	l	L	虛數后綴:		i	I
	HexFloat	Float _	FloatSuffix:	f	F	l	L	ImaginarySuffix:	i	I		
浮點數可以使用十進制或者十六進制格式,如同標準 C 一樣。

十六進制浮點數以 0x 開頭,階碼以 p 或者 P 開頭,后面跟著以 2 為底的階數。

浮點文字量可以有嵌入的‘_’字符,它們會被忽略。嵌入的‘_’用來格式化冗長的文字量以提高可讀性,例如可以將它們用作千位分隔符:

	123_456.567_8		// 123456.5678	
	1_2_3_4_5_6_._5_6_7_8	// 123456.5678	
	1_2_3_4_5_6_._5e-6_	// 123456.5e-6	
浮點數可以跟隨有一個 fFl 或者 L 后綴。fF 后綴說明這是一個浮點數,lL 說明這是一個擴展格式浮點數。

如果浮點文字量后面跟著 i 或者 I ,那么它就是一個 ireal (虛數)類型。

示例:

	0x1.FFFFFFFFFFFFFp1023		// double.max	
	0x1p-52				// double.epsilon	
	1.175494351e-38F			// float.min	
	6.3i				// idouble 6.3	
	6.3fi				// ifloat 6.3	
	6.3LI				// ireal 6.3	
如果文字量超出了該類型的表示范圍,會被視為錯誤。如果文字量取整后可以用該類型的有效位數字表示,就不是錯誤。

復數文字量不是記號,而是在語義分析時用實數和虛數表達式構造的:

	4.5 + 6.2i		// 復數	

關鍵字

關鍵字是保留的標志符:
	Keyword:	
	abstract		alias		align		asm		assert		auto		bit
	body		break		byte		case		cast		catch		cent		char
	class		cfloat		cdouble		creal		const		continue		dchar		debug	
	default		delegate		delete		deprecated	do		double		else		enum
	export		extern		false		final		finally		float		for		foreach
	function		goto		idouble		if		ifloat		import		in		inout	
	int		interface		invariant		ireal		is		long		mixin		module	
	new		null		out		override		package		pragma		private		protected
	public		real		return		short		static		struct		super		switch	
	synchronized	template		this		throw		true		try		typedef		typeof	
	ubyte		ucent		uint		ulong		union		unittest		ushort		version	
	void		volatile		wchar		while		with	

 

特殊記號序列

特殊記號序列由詞法分析程序處理,它可以出現在其他記號之間,并且不影響語法分析。

目前只有一個特殊記號序列,#line

	特殊記號序列		# line 整數 行尾		# line 整數 Filespec 行尾		指定文件		" 字符 "
	SpecialTokenSequence	# line Integer EndOfLine	# line Integer Filespec EndOfLine	Filespec		" Characters "		
它會將源代碼的行號設置為 整數 的值,將源代碼文件名設置為可選的 Filespec 的值,從源碼文本的下一行生效。與碼文件名和行號用于打印調試信息,還被符號調試器用于將生成的代碼映射回源代碼。

例如:

	int #line 6 "foo\bar"	x;	// 這里是文件 foo\bar 的第6行	
注意,Filespec 字符串中的反斜杠不會被特殊對待。

posted on 2007-09-13 20:21 lovedday 閱讀(455) 評論(0)  編輯 收藏 引用 所屬分類: ▲ D Program

公告

導航

統計

常用鏈接

隨筆分類(178)

3D游戲編程相關鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区在线直播| 你懂的亚洲视频| 欧美日韩理论| 欧美激情视频一区二区三区免费| 一区二区三区日韩精品视频| 欧美国产精品人人做人人爱| 亚洲视频福利| 亚洲少妇中出一区| 一二美女精品欧洲| 亚洲精品1区2区| 欧美国产大片| 免费亚洲电影| 国产精品jizz在线观看美国| 韩国欧美国产1区| 美女精品在线| 久久成人免费电影| 久久综合伊人77777尤物| 99国产精品99久久久久久| 欧美99在线视频观看| 国产精品一二三视频| 亚洲人成在线播放| 欧美在线观看视频一区二区| 亚洲成色www8888| 久久精品国产亚洲aⅴ| 国产精品视频福利| 亚洲无限av看| 欧美国产精品v| 久久一区二区三区四区| 精品999成人| 久久国产精品99久久久久久老狼| 欧美成人xxx| 亚洲欧洲精品一区二区三区| 久久国产精品一区二区三区| 亚洲乱码久久| 在线观看91精品国产麻豆| 欧美一区综合| 午夜欧美电影在线观看| 国产欧美二区| 欧美一级在线亚洲天堂| 国内精品写真在线观看| 欧美在线观看天堂一区二区三区| 亚洲欧美国产视频| 黄色欧美日韩| 久久综合久久综合这里只有精品| 亚洲成色999久久网站| 久久综合九色99| 亚洲色在线视频| 久久精品中文字幕一区二区三区 | 久久香蕉国产线看观看网| 亚洲国产精品悠悠久久琪琪| 欧美在线精品一区| 国产精品网曝门| 麻豆91精品| 国产精品午夜在线| 欧美激情第1页| 国产欧美精品| 欧美一区二区三区播放老司机| 卡一卡二国产精品| 亚洲美女黄色| 欧美激情一区| 国内精品久久久久久| 欧美成人午夜免费视在线看片| 久久欧美中文字幕| 中文成人激情娱乐网| 久久一区二区三区国产精品 | 亚洲亚洲精品在线观看| 国内精品久久国产| 亚洲欧美日韩精品一区二区| 一本久道久久久| 欧美另类在线观看| 亚洲日本va午夜在线电影| 国产精品美女主播| 亚洲精品乱码久久久久久蜜桃麻豆| 国产一区二区三区在线观看免费视频| 亚洲精品视频在线播放| 亚洲国产婷婷| 欧美日韩国产三区| 亚洲区一区二区三区| 亚洲一区欧美激情| 国产精品色婷婷| 一级日韩一区在线观看| 欧美一级欧美一级在线播放| 欧美日韩成人在线播放| 国产精品视频不卡| 欧美在线视频播放| 性色av一区二区三区| 狠狠色综合一区二区| 久久综合色播五月| 日韩午夜在线观看视频| 亚洲综合色在线| 国产在线日韩| 亚洲欧美国产高清| 国产精品亚洲一区| 美国成人毛片| 亚洲欧美日韩精品久久久| 欧美激情bt| 午夜精品亚洲一区二区三区嫩草| 激情久久久久久久| 久久超碰97人人做人人爱| 亚洲在线一区| 欧美在线free| 久久福利视频导航| 开心色5月久久精品| 欧美日本不卡高清| 国产欧美一区二区三区视频| 国产美女精品人人做人人爽| 欧美黑人在线播放| 欧美专区在线播放| 国产精品日韩精品| 午夜日韩福利| 久久亚洲捆绑美女| 国产精品伦一区| 999亚洲国产精| 亚洲电影激情视频网站| 亚洲激情在线| 美女脱光内衣内裤视频久久网站| 国产精品久久久久999| 国产美女在线精品免费观看| 精久久久久久久久久久| 99人久久精品视频最新地址| 宅男噜噜噜66一区二区66| 亚洲男人的天堂在线观看| 另类图片国产| 中文欧美在线视频| 国产精品99久久不卡二区| 国产女主播一区| 狠狠入ady亚洲精品| 亚洲国产日韩在线一区模特| 亚洲午夜在线观看视频在线| 六月丁香综合| 久久久久久久久久久久久9999| 国产精品丝袜91| 国精品一区二区| 性8sex亚洲区入口| 一本色道久久综合亚洲精品高清| 老司机一区二区三区| 在线观看久久av| 久久一区二区三区四区| 欧美在线二区| 狠狠综合久久| 欧美.www| 欧美成人一品| 亚洲高清在线观看| 久久久91精品国产一区二区三区| 91久久国产精品91久久性色| 欧美一级专区免费大片| 国产日产欧美精品| 欧美有码视频| 免费av成人在线| 在线亚洲一区二区| 一区二区三区欧美| 亚洲国产精品传媒在线观看 | 亚洲欧美日韩专区| 国产一区二区三区高清| 亚洲激情在线观看| 国产一区二区三区黄| 亚洲动漫精品| 久久一二三区| 一区二区高清| 宅男在线国产精品| 国产婷婷色一区二区三区在线| 久久精品人人做人人爽| 亚洲电影观看| 一区二区三区高清不卡| 欧美成人免费观看| 久久综合狠狠| 亚洲视频第一页| 久久精品国产免费观看| 在线日韩视频| 亚洲一区二区三区高清不卡| 国产一区二区看久久| 亚洲精品乱码久久久久久日本蜜臀 | 欧美国产亚洲另类动漫| 亚洲影院免费| 免费人成精品欧美精品| 亚洲一二三区视频在线观看| 亚洲视频日本| 亚洲精品在线视频观看| 欧美一级淫片aaaaaaa视频| 亚洲一区二区三区777| 巨乳诱惑日韩免费av| 99精品视频一区| 久久蜜桃资源一区二区老牛| 欧美在线亚洲一区| 国产精品久久久久永久免费观看 | 午夜免费在线观看精品视频| 日韩一级大片在线| 欧美插天视频在线播放| 久久亚洲一区二区三区四区| 国产精品美女一区二区在线观看| 亚洲精品护士| 亚洲一区二区日本| 国产精品久久久久久模特| 中文成人激情娱乐网| 亚洲天堂免费在线观看视频| 欧美午夜激情视频| 亚洲一区高清| 久久久久久成人| 亚洲欧洲日夜超级视频| 欧美国产综合视频|