Mercurial > hg > octave-nkf
view examples/code/structdemo.cc @ 20800:7c0e10f035bd
Extend parser to accept binary constants that begin with '0b' or '0B'.
* NEWS: Announce change:
* lex.ll: Define NUMBIN to be 0[bB] followed by 0,1, or '_'.
Define NUMBER to be NUMREAL|NUMHEX|NUMBIN.
*lex.ll (looks_like_bin): New function to detect 0[bB] prefix.
*lex.ll (handle_numbe): Call looks_like_bin() and if found then convert
binary string to double.
* parser.tst: Add tests for new behavior.
author | Rik <rik@octave.org> |
---|---|
date | Fri, 09 Oct 2015 18:52:58 -0700 |
parents | 2f8500ca91d3 |
children |
line wrap: on
line source
#include <octave/oct.h> #include <octave/ov-struct.h> DEFUN_DLD (structdemo, args, , "Struct Demo") { if (args.length () != 2) print_usage (); if (! args(0).is_map ()) error ("structdemo: ARG1 must be a struct"); octave_scalar_map arg0 = args(0).scalar_map_value (); //octave_map arg0 = args(0).map_value (); if (! args(1).is_string ()) error ("structdemo: ARG2 must be a character string"); std::string arg1 = args(1).string_value (); octave_value tmp = arg0.contents (arg1); //octave_value tmp = arg0.contents (arg1)(0); if (! tmp.is_defined ()) error ("structdemo: struct does not have a field named '%s'\n", arg1.c_str ()); octave_scalar_map st; st.assign ("selected", tmp); return octave_value (st); }