File: vsdparameters2.cc

package info (click to toggle)
simrisc 16.05.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,568 kB
  • sloc: cpp: 6,877; fortran: 665; makefile: 112; ansic: 112; sh: 107
file content (30 lines) | stat: -rw-r--r-- 967 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#define XERR
#include "parser.ih"

// static
VSDvect Parser::VSDparameters(VaryType varyType, StringVect const &keywords,
                              size_t nRequired)
{
    VSDvect vsdVect(nRequired, VSD{ varyType });

    string values[nRequired];

                                    // one config line for 'keywords'
    if (not Parser::extract(one(keywords), values, nRequired))
        Err::msg(Err::VSD_MISSING) << nRequired << " value specifications\n";
    else
    {
        for (size_t idx = 0; idx != nRequired; ++idx)
        {
            istringstream in{ values[idx] };        // extract single values
            if (not (in >> vsdVect[idx]))           // store with SD 0 in the
            {                                       // vsdVect
                Err::msg(Err::VSD_MISSING) << nRequired <<
                                            " value specifications\n";
                break;
            }
        }
    }

    return vsdVect;
}