Skip to content

Commit

Permalink
Need to update to enebo branch for this
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.codehaus.org/jruby/branches/enebo_node@2359 961051c9-f516-0410-bf72-c9f7e237a7b7
  • Loading branch information
enebo committed Oct 19, 2006
1 parent 0b8a560 commit 835e7ce
Show file tree
Hide file tree
Showing 25 changed files with 7,967 additions and 7,357 deletions.
4 changes: 4 additions & 0 deletions src/org/jruby/ast/ArrayNode.java
Expand Up @@ -44,6 +44,10 @@
*/
public class ArrayNode extends ListNode implements ILiteralNode {
static final long serialVersionUID = 6279246130032958596L;

public ArrayNode(ISourcePosition position, Node firstNode) {
super(position, NodeTypes.ARRAYNODE, firstNode);
}

public ArrayNode(ISourcePosition position) {
super(position, NodeTypes.ARRAYNODE);
Expand Down
19 changes: 15 additions & 4 deletions src/org/jruby/ast/BlockArgNode.java
Expand Up @@ -32,6 +32,7 @@

import java.util.List;

import org.jruby.ast.types.INameNode;
import org.jruby.ast.visitor.NodeVisitor;
import org.jruby.evaluator.Instruction;
import org.jruby.lexer.yacc.ISourcePosition;
Expand All @@ -45,14 +46,16 @@
* in this example c is a BlockArgNode
* @author jpetersen
*/
public class BlockArgNode extends Node {
public class BlockArgNode extends Node implements INameNode {
static final long serialVersionUID = 8374824536805365398L;

private final int count;
private String name;

public BlockArgNode(ISourcePosition position, int count) {
public BlockArgNode(ISourcePosition position, int count, String name) {
super(position, NodeTypes.BLOCKARGNODE);
this.count = count;
this.name = name;
}

/**
Expand All @@ -70,9 +73,17 @@ public Instruction accept(NodeVisitor iVisitor) {
public int getCount() {
return count;
}


/**
* Get the name of this block argument
*
* @return it's name
*/
public String getName() {
return name;
}

public List childNodes() {
return EMPTY_LIST;
}

}
3 changes: 2 additions & 1 deletion src/org/jruby/ast/CallNode.java
Expand Up @@ -34,6 +34,7 @@
import java.io.IOException;
import java.util.List;

import org.jruby.ast.types.INameNode;
import org.jruby.ast.visitor.NodeVisitor;
import org.jruby.evaluator.Instruction;
import org.jruby.lexer.yacc.ISourcePosition;
Expand All @@ -43,7 +44,7 @@
*
* @author jpetersen
*/
public final class CallNode extends Node {
public final class CallNode extends Node implements INameNode {
static final long serialVersionUID = -1993752395320088525L;

private final Node receiverNode;
Expand Down
67 changes: 67 additions & 0 deletions src/org/jruby/ast/CommentNode.java
@@ -0,0 +1,67 @@
/***** BEGIN LICENSE BLOCK *****
* Version: CPL 1.0/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Common Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.eclipse.org/legal/cpl-v10.html
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* Copyright (C) 2006 Thomas E Enebo <enebo@acm.org>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the CPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the CPL, the GPL or the LGPL.
***** END LICENSE BLOCK *****/
package org.jruby.ast;

import java.util.List;

import org.jruby.ast.visitor.NodeVisitor;
import org.jruby.evaluator.Instruction;
import org.jruby.lexer.yacc.ISourcePosition;

/**
* Representation of a comment. Note that comments are not part of evaluation so you do
* not get the ability to visit this node as part of evaluation. In theory we could add
* this if we envisioned some wacky annotation system, but we have no crazy ideas yet.
*
*/
public class CommentNode extends Node {
private static final long serialVersionUID = -8304070370230933044L;

// Textual data (this is missing newline as a single line comment and =begin..=end
// comments do contain the intermediary newlines.
String content;

public CommentNode(ISourcePosition position, String content) {
super(position, NodeTypes.COMMENTNODE);

this.content = content;
}

public Instruction accept(NodeVisitor visitor) {
return null;
}

public String getContent() {
return content;
}

public List childNodes() {
return EMPTY_LIST;
}

}
3 changes: 2 additions & 1 deletion src/org/jruby/ast/FCallNode.java
Expand Up @@ -34,6 +34,7 @@
import java.io.IOException;
import java.util.List;

import org.jruby.ast.types.INameNode;
import org.jruby.ast.visitor.NodeVisitor;
import org.jruby.evaluator.Instruction;
import org.jruby.lexer.yacc.ISourcePosition;
Expand All @@ -42,7 +43,7 @@
*
* @author jpetersen
*/
public class FCallNode extends Node {
public class FCallNode extends Node implements INameNode {
static final long serialVersionUID = 3590332973770104094L;

private String name;
Expand Down
22 changes: 18 additions & 4 deletions src/org/jruby/ast/ListNode.java
Expand Up @@ -48,6 +48,18 @@ public class ListNode extends Node {

private List list = null;

/**
* Create a new ListNode.
*
* @param id type of listnode
* @param firstNode first element of the list
*/
public ListNode(ISourcePosition position, int id, Node firstNode) {
this(position, id);

add(firstNode);
}

public ListNode(ISourcePosition position, int id) {
super(position, id);
}
Expand All @@ -57,10 +69,12 @@ public ListNode(ISourcePosition position) {
}

public ListNode add(Node node) {
if (list == null) {
list = new ArrayList();
}
if (list == null) list = new ArrayList();
// Ruby Grammar productions return plenty of nulls.
if (node == null) return this;

list.add(node);
setPosition(getPosition().union(node.getPosition()));
return this;
}

Expand Down Expand Up @@ -105,7 +119,7 @@ public String toString() {
}

public List childNodes() {
return list;
return list == null ? EMPTY_LIST : list;
}

public Instruction accept(NodeVisitor visitor) {
Expand Down
11 changes: 9 additions & 2 deletions src/org/jruby/ast/LocalVarNode.java
Expand Up @@ -32,6 +32,7 @@

import java.util.List;

import org.jruby.ast.types.INameNode;
import org.jruby.ast.visitor.NodeVisitor;
import org.jruby.evaluator.Instruction;
import org.jruby.lexer.yacc.ISourcePosition;
Expand All @@ -40,14 +41,16 @@
*
* @author jpetersen
*/
public class LocalVarNode extends Node {
public class LocalVarNode extends Node implements INameNode {
static final long serialVersionUID = 8562701804939317217L;

private final int count;
private final String name;

public LocalVarNode(ISourcePosition position, int count) {
public LocalVarNode(ISourcePosition position, int count, String name) {
super(position, NodeTypes.LOCALVARNODE);
this.count = count;
this.name = name;
}

/**
Expand All @@ -66,6 +69,10 @@ public int getCount() {
return count;
}

public String getName() {
return name;
}

public List childNodes() {
return EMPTY_LIST;
}
Expand Down

0 comments on commit 835e7ce

Please sign in to comment.