private void
	generate_symbols_list()
	{
		symbolnames = new ArrayList<>();

		if(log_level >= 4) log.log(4, key, "generate_symbols_list called.", "\n");
		for (Map.Entry<String, HashMap<String, Variable>> percontext : context_varname_var.entrySet()) {
			for (Map.Entry<String, Variable> value : percontext.getValue().entrySet()) {
				symbolnames.add(value.getKey());
			}
		}
                symbolnames.add("true");
                symbolnames.add("TRUE");
                symbolnames.add("false");
                symbolnames.add("FALSE");
		/* now sort the new generated list from long to short, with a dirty inline class ;) */
	        
		Collections.sort(symbolnames, new Comparator<String>() {
				private int alen;
				private int blen;

				@Override public int
					compare(String a, String b) {
					alen = a.length();
					blen = b.length();
					if (alen > blen) {
						return -1;
					} else if (alen < blen) {
						return 1;
					} else {
						return 0;
					}
				}
			});

		if(log_level >= 4) log.log(4, key, "symbols list: ", Arrays.toString(symbolnames.toArray()), "\n");
	}