summaryrefslogtreecommitdiff
path: root/ccode
diff options
context:
space:
mode:
Diffstat (limited to 'ccode')
-rw-r--r--ccode/valaccodeelementaccess.vala19
1 files changed, 16 insertions, 3 deletions
diff --git a/ccode/valaccodeelementaccess.vala b/ccode/valaccodeelementaccess.vala
index 3586aec1f..a99af44b5 100644
--- a/ccode/valaccodeelementaccess.vala
+++ b/ccode/valaccodeelementaccess.vala
@@ -37,17 +37,30 @@ public class Vala.CCodeElementAccess : CCodeExpression {
* Expression representing the index we want to access inside the
* container.
*/
- public CCodeExpression index { get; set; }
+ public List<CCodeExpression> indices { get; set; }
public CCodeElementAccess (CCodeExpression cont, CCodeExpression i) {
container = cont;
- index = i;
+ indices = new ArrayList<CCodeExpression> ();
+ indices.add (i);
+ }
+
+ public CCodeElementAccess.with_indices (CCodeExpression cont, List<CCodeExpression> i) {
+ container = cont;
+ indices = i;
}
public override void write (CCodeWriter writer) {
container.write_inner (writer);
writer.write_string ("[");
- index.write (writer);
+ bool first = true;
+ foreach (var index in indices) {
+ if (!first) {
+ writer.write_string ("][");
+ }
+ index.write (writer);
+ first = false;
+ }
writer.write_string ("]");
}
}