From b97d4493b3c997477b85a35de0a4ffa15cf742eb Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周三, 23 10月 2013 22:46:57 +0800
Subject: [PATCH] Correct optional command pattern matching

---
 libscpi/inc/scpi/parser.h |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/libscpi/inc/scpi/parser.h b/libscpi/inc/scpi/parser.h
index 6a9ebda..1a6966e 100644
--- a/libscpi/inc/scpi/parser.h
+++ b/libscpi/inc/scpi/parser.h
@@ -37,6 +37,7 @@
 #ifndef SCPI_PARSER_H
 #define	SCPI_PARSER_H
 
+#include <string.h>
 #include "scpi/types.h"
 #include "scpi/debug.h"
 #include "scpi/lexer.h"
@@ -51,17 +52,21 @@
 
 
     size_t SCPI_ResultCharacters(scpi_t * context, const char * data, size_t len);
+#define SCPI_ResultMnemonic(context, data) SCPI_ResultCharacters((context), (data), strlen(data))
     size_t SCPI_ResultInt(scpi_t * context, int32_t val);
     size_t SCPI_ResultIntBase(scpi_t * context, int32_t val, int8_t base);
     size_t SCPI_ResultDouble(scpi_t * context, double val);
     size_t SCPI_ResultText(scpi_t * context, const char * data);
     size_t SCPI_ResultArbitraryBlock(scpi_t * context, const char * data, size_t len);
+    size_t SCPI_ResultBool(scpi_t * context, bool_t val);
 
     int32_t SCPI_ParamGetIntVal(scpi_t * context, scpi_parameter_t * parameter);
     double SCPI_ParamGetDoubleVal(scpi_t * context, scpi_parameter_t * parameter);
     void SCPI_ParamGetTextVal(scpi_t * context, scpi_parameter_t * parameter, const char ** data, int32_t * len);
 #define SCPI_ParamGetCharactersVal SCPI_ParamGetTextVal
 #define SCPI_ParamGetArbitraryBlockVal SCPI_ParamGetTextVal
+    bool_t SCPI_ParamGetBoolVal(scpi_t * context, scpi_parameter_t * parameter);
+    int32_t SCPI_ParamGetChoiceVal(scpi_t * context, scpi_parameter_t * parameter, const char * options[]);
 
     bool_t SCPI_Parameter(scpi_t * context, scpi_parameter_t * parameter, bool_t mandatory);
 

--
Gitblit v1.9.1