protected Collection<AssemblyParseNumericToken> makeToken(String str, String num, int radix,
			boolean neg, AssemblyGrammar grammar) {
		if (num.length() == 0) {
			return Collections.emptySet();
		}
		try {
			long val = Long.parseUnsignedLong(num, radix);
			if (neg) {
				val = -val;
			}
			// TODO: I'd really like to know whether or not the printpiece can take a signed value.
			if (bitsize != 0 && bitsize != 64) {
				if (val < (-1L) << (bitsize - 1)) {
					return Collections.emptySet();
				}
				if (val >= 1L << bitsize) {
					return Collections.emptySet();
				}
			}
			return Collections.singleton(new AssemblyParseNumericToken(grammar, this, str, val));
		}
		catch (NumberFormatException e) {
			return Collections.emptySet();
		}
	}
Construct a numeric token

@param str the string value of the token taken verbatim from the buffer
@param num portion of the token following the optional sign and prefix
@param radix the radix of {@code num}
@param neg true if the optional {@code -} is present
@param grammar the grammar containing this terminal
@return the parsed token, or null
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/symbol/AssemblyNumericTerminal.java