Mercurial Hosting > nabble
view src/nabble/naml/compiler/MacroScope.java @ 62:4674ed7d56df default tip
remove n2
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 30 Sep 2023 20:25:29 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
package nabble.naml.compiler; import java.util.Map; import java.util.HashMap; import java.util.Set; import nabble.naml.dom.Naml; final class MacroScope { final Macro macro; final MacroScope parentScope; private final Map<String,Naml> args = new HashMap<String,Naml>(); private final Map<String,ParamChunk> paramChunks = new HashMap<String,ParamChunk>(); boolean hasVars = false; private MacroScope(Macro macro,MacroScope parentScope) { this.macro = macro; this.parentScope = parentScope; } MacroScope(Macro macro) { this(macro,null); } Source source() { return macro.source; } void addArg(String name,Naml naml) { args.put(name,naml); } void addParamChunk(ParamChunk paramChunk) { paramChunks.put(paramChunk.name,paramChunk); } Naml getArg(String name) { return args.get(name); } ParamChunk getParamChunk(String name) { return paramChunks.get(name); } Set<String> getArgNames() { return args.keySet(); } MacroScope newScope(Macro macro) { return new MacroScope(macro,this); } }