+static expression_t *parse_funcsig_keyword(void)
+{
+ next_token();
+
+ if (current_function == NULL) {
+ errorf(HERE, "'__FUNCSIG__' used outside of a function");
+ }
+
+ expression_t *expression = allocate_expression_zero(EXPR_FUNCSIG);
+ expression->base.type = type_char_ptr;
+
+ return expression;
+}
+
+static expression_t *parse_funcdname_keyword(void)
+{
+ next_token();
+
+ if (current_function == NULL) {
+ errorf(HERE, "'__FUNCDNAME__' used outside of a function");
+ }
+
+ expression_t *expression = allocate_expression_zero(EXPR_FUNCDNAME);
+ expression->base.type = type_char_ptr;
+
+ return expression;
+}
+