예제 #1
0
 public override void visit(name_assign_expr _name_assign_expr) // SSM 27.06.13
 {
 }
		public void visit(name_assign_expr _name_assign_expr)
		{
			read_name_assign_expr(_name_assign_expr);
		}
		public void read_name_assign_expr(name_assign_expr _name_assign_expr)
		{
			read_syntax_tree_node(_name_assign_expr);
			_name_assign_expr.name = _read_node() as ident;
			_name_assign_expr.expr = _read_node() as expression;
		}
예제 #4
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public void ReplaceInList(name_assign_expr el, IEnumerable<name_assign_expr> newels)
		{
			var ind = FindIndexInList(el);
			name_expr.RemoveAt(ind);
			name_expr.InsertRange(ind, newels);
		}
 public override void visit(name_assign_expr _name_assign_expr) // SSM 27.06.13
 {
     multiline_stack_push(_name_assign_expr);
     if (_name_assign_expr.name.source_context.Eq(_name_assign_expr.expr.source_context))
     {
         visit_node(_name_assign_expr.expr);
     }
     else
     {
         visit_node(_name_assign_expr.name);
         //sb.Append(" := ");
         add_space_before = true;
         add_space_after = true;
         visit_node(_name_assign_expr.expr);
     }
     multiline_stack_pop(_name_assign_expr);
 }
예제 #6
0
		public void visit(name_assign_expr _name_assign_expr)
		{
			bw.Write((Int16)191);
			write_name_assign_expr(_name_assign_expr);
		}
예제 #7
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		// Конструкторы списка
		public name_assign_expr_list(name_assign_expr elem, SourceContext sc = null)
		{
			Add(elem, sc);
		}
예제 #8
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public void InsertBefore(name_assign_expr el, name_assign_expr newel)
		{
			name_expr.Insert(FindIndex(el), newel);
		}
예제 #9
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public void InsertBefore(name_assign_expr el, IEnumerable<name_assign_expr> newels)
		{
			name_expr.InsertRange(FindIndex(el), newels);
		}
예제 #10
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public void InsertAfter(name_assign_expr el, name_assign_expr newel)
		{
			name_expr.Insert(FindIndex(el) + 1, newel);
		}
예제 #11
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public void InsertAfter(name_assign_expr el, IEnumerable<name_assign_expr> newels)
		{
			name_expr.InsertRange(FindIndex(el) + 1, newels);
		}
예제 #12
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		private int FindIndexInList(name_assign_expr el)
		{
			var ind = name_expr.FindIndex(x => x == el);
			if (ind == -1)
				throw new Exception(string.Format("У списка {0} не найден элемент {1} среди дочерних\n", this, el));
			return ind;
		}
예제 #13
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public void AddFirst(name_assign_expr el)
		{
			name_expr.Insert(0, el);
		}
예제 #14
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		// Методы списка
		public name_assign_expr_list Add(name_assign_expr elem, SourceContext sc = null)
		{
			name_expr.Add(elem);
			if (sc != null)
				source_context = sc;
			return this;
		}
예제 #15
0
 public override void visit(name_assign_expr _name_assign_expr) // SSM 27.06.13
 {
     returned_scope = null;
     _name_assign_expr.expr.visit(this);
     if (returned_scope != null)
     {
         ElementScope es = new ElementScope(new SymInfo(_name_assign_expr.name.name, SymbolKind.Property, ""), returned_scope, cur_scope);
         cur_scope.AddName(_name_assign_expr.name.name, es);
     }
 }
예제 #16
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public bool Remove(name_assign_expr el)
		{
			return name_expr.Remove(el);
		}
예제 #17
0
 public override void visit(name_assign_expr _name_assign_expr) // SSM 27.06.13
 {
     IBaseScope ss = entry_scope.FindScopeByLocation(_name_assign_expr.name.source_context.begin_position.line_num, _name_assign_expr.name.source_context.begin_position.column_num);
     if (ss != null && ss.IsEqual(founded_scope))
         pos_list.Add(get_position(_name_assign_expr.name));
     _name_assign_expr.expr.visit(this);
 }
예제 #18
0
파일: Tree.cs 프로젝트: Slav76/pascalabcnet
		public void ReplaceInList(name_assign_expr el, name_assign_expr newel)
		{
			name_expr[FindIndexInList(el)] = newel;
		}
예제 #19
0
		public void write_name_assign_expr(name_assign_expr _name_assign_expr)
		{
			write_syntax_tree_node(_name_assign_expr);
			if (_name_assign_expr.name == null)
			{
				bw.Write((byte)0);
			}
			else
			{
				bw.Write((byte)1);
				_name_assign_expr.name.visit(this);
			}
			if (_name_assign_expr.expr == null)
			{
				bw.Write((byte)0);
			}
			else
			{
				bw.Write((byte)1);
				_name_assign_expr.expr.visit(this);
			}
		}
 public override void visit(name_assign_expr nae) // Не надо захватывать явные имена полей в безымянных классах 
 {
     // ProcessNode(nae.name); - пропустить!
     ProcessNode(nae.expr);
 }