summaryrefslogtreecommitdiffstats
path: root/lib/bb/parse/parse_c/bitbakeparser.y
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bb/parse/parse_c/bitbakeparser.y')
-rw-r--r--lib/bb/parse/parse_c/bitbakeparser.y111
1 files changed, 52 insertions, 59 deletions
diff --git a/lib/bb/parse/parse_c/bitbakeparser.y b/lib/bb/parse/parse_c/bitbakeparser.y
index b4cd73fb6..c6ae71125 100644
--- a/lib/bb/parse/parse_c/bitbakeparser.y
+++ b/lib/bb/parse/parse_c/bitbakeparser.y
@@ -37,11 +37,10 @@
%token_type {token_t}
%name bbparse
-%token_prefix T_
+%token_prefix T_
%extra_argument {lex_t* lex}
%include {
-#include <iostream>
#include "standard.h"
}
@@ -57,112 +56,106 @@ statements ::= statements statement.
statements ::= .
variable(r) ::= SYMBOL(s).
- { r.sz = s.sz; s.sz = NULL;
- s.release_this (); }
+ { r.assignString( s.string() );
+ s.assignString( 0 );
+ s.release_this(); }
variable(r) ::= VARIABLE(v).
- { char* sz = e_interpolate (v.sz);
- if (sz) { r.sz = sz; delete v.sz; }
- else { r.sz = v.sz; }
- v.sz = NULL;
- v.release_this (); }
+ {
+ r.assignString( v.string() );
+ v.assignString( 0 );
+ v.release_this(); }
statement ::= EXPORT variable(s) OP_ASSIGN STRING(v).
- { e_assign (s.sz, v.sz); e_export (s.sz);
- s.release_this (); v.release_this (); }
+ { e_assign( s.string(), v.string() );
+ e_export( s.string() );
+ s.release_this(); v.release_this(); }
statement ::= EXPORT variable(s) OP_IMMEDIATE STRING(v).
- { e_immediate (s.sz, v.sz); e_export (s.sz);
- s.release_this (); v.release_this (); }
-
+ { e_immediate (s.string(), v.string() );
+ e_export( s.string() );
+ s.release_this(); v.release_this(); }
statement ::= EXPORT variable(s) OP_COND STRING(v).
- { e_cond (s.sz, v.sz); e_export (s.sz);
- s.release_this (); v.release_this (); }
+ { e_cond( s.string(), v.string() );
+ s.release_this(); v.release_this(); }
statement ::= variable(s) OP_ASSIGN STRING(v).
- { e_assign (s.sz, v.sz);
- s.release_this (); v.release_this (); }
+ { e_assign( s.string(), v.string() );
+ s.release_this(); v.release_this(); }
statement ::= variable(s) OP_PREPEND STRING(v).
- { e_prepend (s.sz, v.sz);
- s.release_this (); v.release_this (); }
+ { e_prepend( s.string(), v.string() );
+ s.release_this(); v.release_this(); }
statement ::= variable(s) OP_APPEND STRING(v).
- { e_append (s.sz, v.sz);
- s.release_this (); v.release_this (); }
+ { e_append( s.string() , v.string() );
+ s.release_this(); v.release_this(); }
statement ::= variable(s) OP_IMMEDIATE STRING(v).
- { e_immediate (s.sz, v.sz);
- s.release_this (); v.release_this (); }
+ { e_immediate( s.string(), v.string() );
+ s.release_this(); v.release_this(); }
statement ::= variable(s) OP_COND STRING(v).
- { e_cond (s.sz, v.sz);
- s.release_this (); v.release_this (); }
+ { e_cond( s.string(), v.string() );
+ s.release_this(); v.release_this(); }
task ::= TSYMBOL(t) BEFORE TSYMBOL(b) AFTER TSYMBOL(a).
- { e_addtask (t.sz, b.sz, a.sz);
- t.release_this (); b.release_this (); a.release_this (); }
+ { e_addtask( t.string(), b.string(), a.string() );
+ t.release_this(); b.release_this(); a.release_this(); }
task ::= TSYMBOL(t) AFTER TSYMBOL(a) BEFORE TSYMBOL(b).
- { e_addtask (t.sz, b.sz, a.sz);
- t.release_this (); a.release_this (); b.release_this (); }
+ { e_addtask( t.string(), b.string(), a.string());
+ t.release_this(); a.release_this(); b.release_this(); }
task ::= TSYMBOL(t).
- { e_addtask (t.sz, NULL, NULL);
- t.release_this ();}
+ { e_addtask( t.string(), NULL, NULL);
+ t.release_this();}
task ::= TSYMBOL(t) BEFORE TSYMBOL(b).
- { e_addtask (t.sz, b.sz, NULL);
- t.release_this (); b.release_this (); }
+ { e_addtask( t.string(), b.string(), NULL);
+ t.release_this(); b.release_this(); }
task ::= TSYMBOL(t) AFTER TSYMBOL(a).
- { e_addtask (t.sz, NULL, a.sz);
- t.release_this (); a.release_this (); }
+ { e_addtask( t.string(), NULL, a.string());
+ t.release_this(); a.release_this(); }
tasks ::= tasks task.
tasks ::= task.
statement ::= ADDTASK tasks.
statement ::= ADDHANDLER SYMBOL(s).
- { e_addhandler (s.sz); s.release_this (); }
+ { e_addhandler( s.string()); s.release_this (); }
-func ::= FSYMBOL(f). { e_export_func (f.sz); f.release_this (); }
+func ::= FSYMBOL(f). { e_export_func(f.string()); f.release_this(); }
funcs ::= funcs func.
funcs ::= func.
statement ::= EXPORT_FUNC funcs.
-inherit ::= ISYMBOL(i). { e_inherit (i.sz); i.release_this (); }
+inherit ::= ISYMBOL(i). { e_inherit(i.string() ); i.release_this (); }
inherits ::= inherits inherit.
inherits ::= inherit.
statement ::= INHERIT inherits.
statement ::= INCLUDE ISYMBOL(i).
- { e_include (i.sz); i.release_this (); }
+ { e_include(i.string() ); i.release_this(); }
proc_body(r) ::= proc_body(l) PROC_BODY(b).
{ /* concatenate body lines */
- size_t cb = (l.sz ? strlen (l.sz) : 0) + strlen (b.sz) + 1;
- r.sz = new char[cb];
- *r.sz = 0;
- if (l.sz) strcat (r.sz, l.sz);
- strcat (r.sz, b.sz);
+ r.assignString( token_t::concatString(l.string(), b.string()) );
l.release_this ();
b.release_this ();
}
-proc_body(b) ::= . { b.sz = 0; }
+proc_body(b) ::= . { b.assignString(0); }
statement ::= variable(p) PROC_OPEN proc_body(b) PROC_CLOSE.
- { e_proc (p.sz, b.sz);
- p.release_this (); b.release_this (); }
+ { e_proc( p.string(), b.string() );
+ p.release_this(); b.release_this(); }
statement ::= PYTHON SYMBOL(p) PROC_OPEN proc_body(b) PROC_CLOSE.
- { e_proc_python (p.sz, b.sz);
- p.release_this (); b.release_this (); }
+ { e_proc_python (p.string(), b.string() );
+ p.release_this(); b.release_this(); }
statement ::= PYTHON PROC_OPEN proc_body(b) PROC_CLOSE.
- { e_proc_python (NULL, b.sz);
+ { e_proc_python( NULL, b.string());
b.release_this (); }
statement ::= FAKEROOT SYMBOL(p) PROC_OPEN proc_body(b) PROC_CLOSE.
- { e_proc_fakeroot (p.sz, b.sz);
+ { e_proc_fakeroot(p.string(), b.string() );
p.release_this (); b.release_this (); }
def_body(r) ::= def_body(l) DEF_BODY(b).
{ /* concatenate body lines */
- size_t cb = (l.sz ? strlen (l.sz) : 0) + strlen (b.sz);
- r.sz = new char[cb + 1];
- *r.sz = 0;
- if (l.sz) strcat (r.sz, l.sz);
- strcat (r.sz, b.sz);
+ r.assignString( token_t::concatString(l.string(), b.string());
l.release_this (); b.release_this ();
}
def_body(b) ::= . { b.sz = 0; }
statement ::= SYMBOL(p) DEF_ARGS(a) def_body(b).
- { e_def (p.sz, a.sz, b.sz);
- p.release_this(); a.release_this (); b.release_this (); }
+ { e_def( p.string(), a.string(), b.string());
+ p.release_this(); a.release_this(); b.release_this(); }
+