Class: LangScan::Java::Tokenizer

Inherits:
Data
  • Object
show all
Defined in:
ext/langscan/java/java/java.c

Instance Method Summary collapse

Constructor Details

#initialize(user_data) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'ext/langscan/java/java/java.c', line 70

static VALUE tokenizer_initialize(VALUE self, VALUE user_data)
{
  VALUE tmp;
  user_read_t user_read;
  langscan_java_tokenizer_t *tokenizer;
  Data_Get_Struct(self, langscan_java_tokenizer_t, tokenizer);
  StringValue(user_data);
  user_read = user_read_str;
  user_data = rb_ary_new3(2, rb_str_new4(user_data), INT2FIX(0));
  RBASIC(user_data)->klass = 0;
  DATA_PTR(self) = langscan_java_make_tokenizer(user_read, (void *)user_data);
  return self;
}

Instance Method Details

#closeObject



107
108
109
110
111
112
113
114
115
# File 'ext/langscan/java/java/java.c', line 107

static VALUE tokenizer_close(VALUE self)
{
  langscan_java_tokenizer_t *tokenizer;
  Data_Get_Struct(self, langscan_java_tokenizer_t, tokenizer);
  if (tokenizer == NULL) { return Qnil; }
  DATA_PTR(self) = NULL;
  langscan_java_free_tokenizer(tokenizer);
  return Qnil;
}

#get_tokenObject



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'ext/langscan/java/java/java.c', line 84

static VALUE tokenizer_get_token(VALUE self)
{
  langscan_java_tokenizer_t *tokenizer;
  langscan_java_token_t token;
  Data_Get_Struct(self, langscan_java_tokenizer_t, tokenizer);
  if (tokenizer == NULL) { return Qnil; }
  token = langscan_java_get_token(tokenizer);
  if (token == langscan_java_eof) {
    DATA_PTR(self) = NULL;
    langscan_java_free_tokenizer(tokenizer);
    return Qnil;
  }
  return rb_ary_new3(8,
    token_symbol_list[token],
    rb_str_new(langscan_java_curtoken_text(tokenizer), langscan_java_curtoken_leng(tokenizer)),
    INT2NUM(langscan_java_curtoken_beg_lineno(tokenizer)),
    INT2NUM(langscan_java_curtoken_beg_columnno(tokenizer)),
    INT2NUM(langscan_java_curtoken_beg_byteno(tokenizer)),
    INT2NUM(langscan_java_curtoken_end_lineno(tokenizer)),
    INT2NUM(langscan_java_curtoken_end_columnno(tokenizer)),
    INT2NUM(langscan_java_curtoken_end_byteno(tokenizer)));
}