Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## avrora.syntax
Class Expr.StringLiteral

    java.lang.Object
      avrora.syntax.ASTNode
          avrora.syntax.Expr
              avrora.syntax.Expr.Term
                  avrora.syntax.Expr.StringLiteral

Enclosing class:
  Expr

public static class Expr.StringLiteral
extends Expr.Term

The `StringLiteral` class represents a string literal within the program. A string literal can be used within a list of initialized data and occupies a span of bytes. However, it cannot be evaluated to an integer. It is treated specifially in the simplification phase.

Nested Class Summary

Nested classes inherited from class avrora.syntax.Expr
`Expr.BinOp, Expr.CharLiteral, Expr.Constant, Expr.Func, Expr.RelativeAddress, Expr.StringLiteral, Expr.Term, Expr.UnOp, Expr.Variable`

Field Summary
`java.lang.String` | `value`

Fields inherited from class avrora.syntax.Expr.Term
`token`

Constructor Summary
`Expr.StringLiteral(AbstractToken tok)`

Method Summary
`int` | `evaluate(int currentByteAddress, Context c)` The `evaluate()` method computes the value of the expression in this context and returns its value.

Methods inherited from class avrora.syntax.Expr.Term
`getLeftMostToken, getRightMostToken, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### value

    public final java.lang.String value

Constructor Detail

### Expr.StringLiteral

    public Expr.StringLiteral(AbstractToken tok)

Method Detail

### evaluate

    public int evaluate(int currentByteAddress,
                        Context c)

  The `evaluate()` method computes the value of the expression in this context and returns its value. A string cannot be evaluated to a 32-bit integer; this method throws an exception.

  Specified by:
    `evaluate` in class `Expr`
  Parameters:
    `currentByteAddress` - the current byte address within the program
    `c` - the context in which to evaluate this expression
  Returns:
    the value of the expression as a 32-bit integer
  Throws:
    `Avrora.InternalError` - because a string cannot be evaluated to a 32-bit integer

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD