/[svn]/linuxsampler/trunk/src/scriptvm/parser_shared.h
ViewVC logotype

Contents of /linuxsampler/trunk/src/scriptvm/parser_shared.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3728 - (show annotations) (download) (as text)
Wed Jan 29 13:58:33 2020 UTC (4 years, 2 months ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 1716 byte(s)
NKSP: Reduced code for parsing NKSP variable declarations:

* Use 2 generalized grammar rules with optional components (i.e. optional
  value assignment and optional variable qualifiers) instead of previous
  linear combinations of grammar rules, which also fixes some edge case.

* Bumped version (2.1.1.svn44).

1 /*
2 * Copyright (c) 2014-2020 Christian Schoenebeck
3 *
4 * http://www.linuxsampler.org
5 *
6 * This file is part of LinuxSampler and released under the same terms.
7 * See README file for details.
8 */
9
10 // types shared between auto generated lexer and parser ...
11
12 #ifndef LS_INSTRSCRIPTSPARSER_SHARED_H
13 #define LS_INSTRSCRIPTSPARSER_SHARED_H
14
15 #include <stdio.h>
16 #include "tree.h"
17
18 #if AC_APPLE_UNIVERSAL_BUILD
19 # include "parser.tab.h"
20 #else
21 # include "parser.h"
22 #endif
23
24 #include "../common/global_private.h"
25
26 struct _YYSTYPE {
27 union {
28 LinuxSampler::vmint iValue;
29 LinuxSampler::vmfloat fValue;
30 char* sValue;
31 struct {
32 LinuxSampler::vmint iValue;
33 LinuxSampler::MetricPrefix_t prefix[2];
34 LinuxSampler::StdUnit_t unit;
35 } iUnitValue;
36 struct {
37 LinuxSampler::vmfloat fValue;
38 LinuxSampler::MetricPrefix_t prefix[2];
39 LinuxSampler::StdUnit_t unit;
40 } fUnitValue;
41 };
42 LinuxSampler::EventHandlersRef nEventHandlers;
43 LinuxSampler::EventHandlerRef nEventHandler;
44 LinuxSampler::StatementsRef nStatements;
45 LinuxSampler::StatementRef nStatement;
46 LinuxSampler::FunctionCallRef nFunctionCall;
47 LinuxSampler::ArgsRef nArgs;
48 LinuxSampler::ExpressionRef nExpression;
49 LinuxSampler::CaseBranch nCaseBranch;
50 LinuxSampler::CaseBranches nCaseBranches;
51 LinuxSampler::Qualifier_t varQualifier;
52 };
53 #define YYSTYPE _YYSTYPE
54 #define yystype YYSTYPE ///< For backward compatibility.
55 #ifndef YYSTYPE_IS_DECLARED
56 # define YYSTYPE_IS_DECLARED ///< We tell the lexer / parser that we use our own data structure as defined above.
57 #endif
58
59 #endif // LS_INSTRSCRIPTSPARSER_SHARED_H

  ViewVC Help
Powered by ViewVC