Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #34024

Why does Java argue about making a class instance

From Popping mad <rainbow@colition.gov>
Newsgroups comp.lang.java.programmer
Subject Why does Java argue about making a class instance
Date 2016-03-26 19:44 +0000
Organization PANIX Public Access Internet and UNIX, NYC
Message-ID <nd6orl$k7m$1@reader1.panix.com> (permalink)

Show all headers | View raw


When I try to compile this (example from antlr4 FIWIW)

import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.TerminalNode;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
		 ANTLRInputStream input = new ANTLRInputStream("y = 6*4 + 
9 /8 / 2.5 + -3.21 * RUBEN; C = 5/9 * F + 32;");
		 CalcLexer lexer = new CalcLexer(input);
		 CommonTokenStream tokens = new CommonTokenStream(lexer);
		 CalcParser parser = new CalcParser(tokens);
		 CollectVarsVisitor my_visitor = new CollectVarsVisitor();
//		 parser.prog();
		 ParseTree tree  = parser.prog();
		 tree.accept(my_visitor);
	 	 System.out.println(my_visitor.vars);
    }

	 public class CollectVarsVisitor extends CalcBaseVisitor<Void> {
	 	HashSet<String> vars = new HashSet<String>();
		@Override
    	public Void visitStmt(CalcParser.StmtContext ctx) {
		TerminalNode id = ctx.ID();
       if(id != null) {
           vars.add(id.getText());
       }
       return super.visitStmt(ctx);
    	}

	 	@Override
    	public Void visitExpr(CalcParser.ExprContext ctx) {
        TerminalNode id = ctx.ID();
        if(id != null) {
            vars.add(id.getText());
        }
        return super.visitExpr(ctx);
    	}
	 }
}

it says

[ruben@manjaro calculator]$ javac Main.java 
Main.java:15: error: non-static variable this cannot be referenced from a 
static context
                 CollectVarsVisitor my_visitor = new CollectVarsVisitor();
                                                 ^
1 error

I have no clue what is the problem, but it is not a standard static 
problem

Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Why does Java argue about making a class instance Popping mad <rainbow@colition.gov> - 2016-03-26 19:44 +0000
  Re: Why does Java argue about making a class instance Joerg Meier <joergmmeier@arcor.de> - 2016-03-26 21:01 +0100
    Re: Why does Java argue about making a class instance Popping mad <rainbow@colition.gov> - 2016-03-28 13:19 +0000
      Re: Why does Java argue about making a class instance Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-28 14:59 -0400
  Re: Why does Java argue about making a class instance Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-26 16:04 -0400
    Re: Why does Java argue about making a class instance Popping mad <rainbow@colition.gov> - 2016-03-28 13:24 +0000
      Re: Why does Java argue about making a class instance Arne Vajhøj <arne@vajhoej.dk> - 2016-03-28 09:50 -0400
      Re: Why does Java argue about making a class instance Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-28 15:04 -0400
        Re: Why does Java argue about making a class instance FredK <fred.l.kleinschmidt@gmail.com> - 2016-03-28 15:17 -0700
          Re: Why does Java argue about making a class instance Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-28 18:30 -0400
  Re: Why does Java argue about making a class instance Andreas Leitgeb <avl@logic.at> - 2016-03-26 20:17 +0000
  Re: Why does Java argue about making a class instance Arne Vajhøj <arne@vajhoej.dk> - 2016-03-28 10:10 -0400
  Re: Why does Java argue about making a class instance Roedy Green <inquiry@mindprod.com> - 2016-06-29 00:56 -0700

csiph-web