From ad40bb6762360183586b9e434b45606154b52aa1 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 摹曛, 21 3月 2013 19:49:34 +0800
Subject: [PATCH] Modify lexer according to IEEE 488.2

---
 libscpi/src/scpi.g |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/libscpi/src/scpi.g b/libscpi/src/scpi.g
index 3d44bcf..3a86647 100644
--- a/libscpi/src/scpi.g
+++ b/libscpi/src/scpi.g
@@ -39,7 +39,7 @@
 	|	characterProgramData
 	|	decimalNumericProgramData
 	|	stringProgramData
-//	|	arbitraryBlockProgramData
+	|	arbitraryBlockProgramData
 	|	expressionProgramData
 //	|	suffixProgramData
 	;
@@ -69,7 +69,12 @@
 
 expressionProgramData
 	: 	PROGRAM_EXPRESSION
-	;	
+	;
+
+// support only nonzero prefix
+arbitraryBlockProgramData
+	:	SHARP NONZERO_DIGIT NUMBER .*
+	;
 		
 PROGRAM_MNEMONIC	: 	ALPHA (ALPHA | DIGIT | UNDERSCORE)*;
 HEXNUM			:	SHARP H HEXDIGIT*;
@@ -108,6 +113,8 @@
 
 fragment ALPHA		:	('a'..'z'|'A'..'Z');
 fragment DIGIT		:	('0'..'9');
+fragment NONZERO_DIGIT	:	('1'..'9');
+
 fragment HEXDIGIT	:	(DIGIT | 'a'..'f' | 'A'..'F');
 fragment OCTDIGIT	:	('0'..'7');
 fragment BINDIGIT	:	('0' | '1');

--
Gitblit v1.9.1