Package org.erlide.engine.new_model.internal

Source Code of org.erlide.engine.new_model.internal.ASTNode

package org.erlide.engine.new_model.internal;

import com.ericsson.otp.erlang.OtpErlangAtom;
import com.ericsson.otp.erlang.OtpErlangLong;
import com.ericsson.otp.erlang.OtpErlangObject;
import com.ericsson.otp.erlang.OtpErlangTuple;
import java.util.List;
import org.eclipse.handly.util.TextRange;
import org.eclipse.xtend.lib.annotations.Accessors;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.Exceptions;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.eclipse.xtext.xbase.lib.Pure;
import org.erlide.util.erlang.Bindings;
import org.erlide.util.erlang.OtpErlang;

@Accessors
@SuppressWarnings("all")
public class ASTNode {
  private List<OtpErlangObject> items;
 
  public ASTNode(final OtpErlangTuple source) {
    OtpErlangObject[] _elements = source.elements();
    this.items = ((List<OtpErlangObject>)Conversions.doWrapArray(_elements));
  }
 
  public String getKind() {
    OtpErlangObject _head = IterableExtensions.<OtpErlangObject>head(this.items);
    return ((OtpErlangAtom) _head).atomValue();
  }
 
  public TextRange getPos() {
    try {
      TextRange _xblockexpression = null;
      {
        Iterable<OtpErlangObject> _tail = IterableExtensions.<OtpErlangObject>tail(this.items);
        OtpErlangObject _head = IterableExtensions.<OtpErlangObject>head(_tail);
        final Bindings pos = OtpErlang.match("{{Line,Offset,FileOffset},Len}", _head);
        int _int = pos.getInt("FileOffset");
        int _int_1 = pos.getInt("Len");
        _xblockexpression = new TextRange(_int, _int_1);
      }
      return _xblockexpression;
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }
 
  public String getName() {
    Iterable<OtpErlangObject> _tail = IterableExtensions.<OtpErlangObject>tail(this.items);
    Iterable<OtpErlangObject> _tail_1 = IterableExtensions.<OtpErlangObject>tail(_tail);
    OtpErlangObject _head = IterableExtensions.<OtpErlangObject>head(_tail_1);
    return ((OtpErlangAtom) _head).atomValue();
  }
 
  public int getArg() {
    try {
      Iterable<OtpErlangObject> _tail = IterableExtensions.<OtpErlangObject>tail(this.items);
      Iterable<OtpErlangObject> _tail_1 = IterableExtensions.<OtpErlangObject>tail(_tail);
      Iterable<OtpErlangObject> _tail_2 = IterableExtensions.<OtpErlangObject>tail(_tail_1);
      OtpErlangObject _head = IterableExtensions.<OtpErlangObject>head(_tail_2);
      return ((OtpErlangLong) _head).intValue();
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }
 
  @Pure
  public List<OtpErlangObject> getItems() {
    return this.items;
  }
 
  public void setItems(final List<OtpErlangObject> items) {
    this.items = items;
  }
}
TOP

Related Classes of org.erlide.engine.new_model.internal.ASTNode

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.