public void addProduction(P prod) {
		String lname = prod.getName();
		if (productions.put(lname, prod)) {
			prod.idx = prodList.size();
			prodList.add(prod);
		}
		NT lhs = prod.getLHS();
		if (startName == null) {
			setStart(lhs);
		}
		String lhsName = lhs.getName();
		symbols.put(lhsName, lhs);
		nonterminals.put(lhsName, lhs);
		for (AssemblySymbol sym : prod.getRHS()) {
			if (sym instanceof AssemblyNonTerminal) {
				@SuppressWarnings("unchecked")
				NT nt = (NT) sym;
				String name = nt.getName();
				symbols.put(name, nt);
				nonterminals.put(name, nt);
			}
			else {
				AssemblyTerminal t = (AssemblyTerminal) sym;
				String name = t.getName();
				symbols.put(name, t);
				terminals.put(name, t);
			}
		}
	}
Add a production to the grammar

@param prod the production
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/grammars/AbstractAssemblyGrammar.java