File: graphql_c_parser_ext.c

package info (click to toggle)
ruby-graphql 2.2.17-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,584 kB
  • sloc: ruby: 67,505; ansic: 1,753; yacc: 831; javascript: 331; makefile: 6
file content (22 lines) | stat: -rw-r--r-- 797 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "graphql_c_parser_ext.h"

VALUE GraphQL_CParser_Lexer_tokenize_with_c(VALUE self, VALUE query_string) {
  return tokenize(query_string);
}

VALUE GraphQL_CParser_Parser_c_parse(VALUE self) {
  yyparse(self, rb_ivar_get(self, rb_intern("@filename")));
  return Qnil;
}

void Init_graphql_c_parser_ext() {
  VALUE GraphQL = rb_define_module("GraphQL");
  VALUE CParser = rb_define_module_under(GraphQL, "CParser");
  VALUE Lexer = rb_define_module_under(CParser, "Lexer");
  rb_define_singleton_method(Lexer, "tokenize_with_c", GraphQL_CParser_Lexer_tokenize_with_c, 1);
  setup_static_token_variables();

  VALUE Parser = rb_define_class_under(CParser, "Parser", rb_cObject);
  rb_define_method(Parser, "c_parse", GraphQL_CParser_Parser_c_parse, 0);
  initialize_node_class_variables();
}