#pragma lib
[m6w6/ext-psi] / src / parser_proc_grammar.y
index 5c2e24dc2d3f9992a33eef5bd995d0e27816b685..f9925cbdd254c5192ab0ad96a5b1e7fe23488432 100644 (file)
@@ -87,6 +87,10 @@ static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_imp
        }
        P->impls = psi_plist_add(P->impls, &impl);
 }
        }
        P->impls = psi_plist_add(P->impls, &impl);
 }
+static inline void psi_parser_proc_add_lib(struct psi_parser *P, zend_string *lib) {
+       char *libname = strdup(lib->val);
+       P->file.libnames = psi_plist_add(P->file.libnames, &libname);
+}
 
 /* end code */
 }
 
 /* end code */
 }
@@ -435,8 +439,7 @@ block:
        }
 }
 |      lib {
        }
 }
 |      lib {
-       char *libname = strdup($lib->text->val);
-       P->file.libnames = psi_plist_add(P->file.libnames, &libname);
+       psi_parser_proc_add_lib(P, $lib->text);
 }
 |      constant {
        psi_parser_proc_add_const(P, $constant);
 }
 |      constant {
        psi_parser_proc_add_const(P, $constant);
@@ -474,6 +477,9 @@ lib:
        LIB QUOTED_STRING EOS {
        $lib = $QUOTED_STRING;
 }
        LIB QUOTED_STRING EOS {
        $lib = $QUOTED_STRING;
 }
+|      HASH PRAGMA LIB QUOTED_STRING EOS {
+       $lib = $QUOTED_STRING;
+}
 ;
 
 cpp:
 ;
 
 cpp: