diff options
Diffstat (limited to 'lib/bb/parse/parse_c/bitbakeparser.y')
-rw-r--r-- | lib/bb/parse/parse_c/bitbakeparser.y | 111 |
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(); } + |