Nincs leírás

runningwater 5a937e13ca Parsing Expressions 2 éve
.idea 73ff604276 first interpreter framework 2 éve
doc 73ff604276 first interpreter framework 2 éve
src 5a937e13ca Parsing Expressions 2 éve
.gitignore 3d2508ae84 first commit 2 éve
README.md 5a937e13ca Parsing Expressions 2 éve
pom.xml 3d2508ae84 first commit 2 éve

README.md

Lox

 // Your first Lox program!
 print "Hello, world!";
  • Dynamic typing
  • Automatic memory management
  • Data Types
    • Booleans
    • Numbers
    • Strings
    • Nil
  • Expressions
    • Arithmetic
    • Comparison and equality
    • Logical operators
    • Precedence and grouping
  • Statements
  • Variables
  • Control Flow
  • Functions
  • Closures
  • Classes

A Grammar for Lox expressions

  • Literals. Numbers,strings,Booleans, and nil
  • Unary expressions. A prefix ! to perform a logical not, and - to negate a number.
  • Binary expressions. The infix arithmetic(+,-,*,/) and logic operators (==, !=, <, <=,>,>=)
  • Parentheses. A pair of ( and ) wrapped around and expression.

    • Syntax tree
    expression     → literal
    | unary
    | binary
    | grouping ;
      
    literal        → NUMBER | STRING | "true" | "false" | "nil" ;
    grouping       → "(" expression ")" ;
    unary          → ( "-" | "!" ) expression ;
    binary         → expression operator expression ;
    operator       → "==" | "!=" | "<" | "<=" | ">" | ">="
    | "+"  | "-"  | "*" | "/" ;
      
    
Name Operators Associates
Equality == != Left
Comparison > >= < <= Left
Term - + Left
Factor / * Left
Unary ! - Right
expression     → equality ;
equality       → comparison ( ( "!=" | "==" ) comparison )* ;
comparison     → term ( ( ">" | ">=" | "<" | "<=" ) term )* ;
term           → factor ( ( "-" | "+" ) factor )* ;
factor         → unary ( ( "/" | "*" ) unary )* ;
unary          → ( "!" | "-" ) unary
               | primary ;
primary        → NUMBER | STRING | "true" | "false" | "nil"
               | "(" expression ")" ;