From 39fdcb0c57bfeba598f00d77f190e731f26b25a1 Mon Sep 17 00:00:00 2001
From: sola.lu <sola.lu@greentest.com.cn>
Date: 周四, 24 4月 2025 18:25:01 +0800
Subject: [PATCH] 1.修改一下,把当前库改为刚从origin仓库拉去下来,然后添加了cmake构建文件的状态。

---
 libscpi/src/scpi.g |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/libscpi/src/scpi.g b/libscpi/src/scpi.g
index 3d44bcf..a3993ff 100644
--- a/libscpi/src/scpi.g
+++ b/libscpi/src/scpi.g
@@ -10,7 +10,7 @@
 	
 	
 programMessageUnit 
-	:	WS* programHeader QUESTION? (WS programData (COMMA programData)*)?
+	:	WS* programHeader (WS programData (COMMA programData)*)?
 	;
 
 programHeader
@@ -19,11 +19,11 @@
 	;
 
 compoundProgramHeader
-	:	COLON? PROGRAM_MNEMONIC (COLON PROGRAM_MNEMONIC)*
+	:	COLON? PROGRAM_MNEMONIC (COLON PROGRAM_MNEMONIC)* QUESTION?
 	;
 	
 commonProgramHeader 
-	:	STAR PROGRAM_MNEMONIC
+	:	STAR PROGRAM_MNEMONIC QUESTION?
 	;
 	
 programDataSeparator 
@@ -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