[llvm-commits] [test-suite] r57071 [6/7] - in /test-suite/trunk/MultiSource/Applications/lua: ./ bench/ input/ test/

Torok Edwin edwintorok at gmail.com
Sat Oct 4 13:58:09 PDT 2008


Added: test-suite/trunk/MultiSource/Applications/lua/input/spellcheck-input.txt
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/input/spellcheck-input.txt?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/input/spellcheck-input.txt (added)
+++ test-suite/trunk/MultiSource/Applications/lua/input/spellcheck-input.txt Sat Oct  4 15:58:08 2008
@@ -0,0 +1,38618 @@
+aback
+abaft
+abandon
+abandoned
+abandoning
+abandonment
+abandons
+abase
+abased
+abasement
+abasements
+abases
+abash
+abashed
+abashes
+abashing
+abasing
+abate
+abated
+abatement
+abatements
+abater
+abates
+abating
+abbe
+abbey
+abbeys
+abbot
+abbots
+abbreviate
+abbreviated
+abbreviates
+abbreviating
+abbreviation
+abbreviations
+abdomen
+abdomens
+abdominal
+abduct
+abducted
+abduction
+abductions
+abductor
+abductors
+abducts
+abed
+aberrant
+aberration
+aberrations
+abet
+abets
+abetted
+abetter
+abetting
+abeyance
+abhor
+abhorred
+abhorrent
+abhorrer
+abhorring
+abhors
+abide
+abided
+abides
+abiding
+abilities
+ability
+abject
+abjection
+abjections
+abjectly
+abjectness
+abjure
+abjured
+abjures
+abjuring
+ablate
+ablated
+ablates
+ablating
+ablation
+ablative
+ablaze
+able
+abler
+ablest
+ably
+abnormal
+abnormalities
+abnormality
+abnormally
+aboard
+abode
+abodes
+abolish
+abolished
+abolisher
+abolishers
+abolishes
+abolishing
+abolishment
+abolishments
+abolition
+abolitionist
+abolitionists
+abominable
+abominate
+aboriginal
+aborigine
+aborigines
+abort
+aborted
+aborting
+abortion
+abortions
+abortive
+abortively
+aborts
+abound
+abounded
+abounding
+abounds
+about
+above
+aboveboard
+aboveground
+abovementioned
+abrade
+abraded
+abrades
+abrading
+abrasion
+abrasions
+abrasive
+abreaction
+abreactions
+abreast
+abridge
+abridged
+abridges
+abridging
+abridgment
+abroad
+abrogate
+abrogated
+abrogates
+abrogating
+abrupt
+abruptly
+abruptness
+abscess
+abscessed
+abscesses
+abscissa
+abscissas
+abscond
+absconded
+absconding
+absconds
+absence
+absences
+absent
+absented
+absentee
+absenteeism
+absentees
+absentia
+absenting
+absently
+absentminded
+absents
+absinthe
+absolute
+absolutely
+absoluteness
+absolutes
+absolution
+absolve
+absolved
+absolves
+absolving
+absorb
+absorbed
+absorbency
+absorbent
+absorber
+absorbing
+absorbs
+absorption
+absorptions
+absorptive
+abstain
+abstained
+abstainer
+abstaining
+abstains
+abstention
+abstentions
+abstinence
+abstract
+abstracted
+abstracting
+abstraction
+abstractionism
+abstractionist
+abstractions
+abstractly
+abstractness
+abstractor
+abstractors
+abstracts
+abstruse
+abstruseness
+absurd
+absurdities
+absurdity
+absurdly
+abundance
+abundant
+abundantly
+abuse
+abused
+abuses
+abusing
+abusive
+abut
+abutment
+abuts
+abutted
+abutter
+abutters
+abutting
+abysmal
+abysmally
+abyss
+abysses
+acacia
+academia
+academic
+academically
+academics
+academies
+academy
+accede
+acceded
+accedes
+accelerate
+accelerated
+accelerates
+accelerating
+acceleration
+accelerations
+accelerator
+accelerators
+accelerometer
+accelerometers
+accent
+accented
+accenting
+accents
+accentual
+accentuate
+accentuated
+accentuates
+accentuating
+accentuation
+accept
+acceptability
+acceptable
+acceptably
+acceptance
+acceptances
+accepted
+accepter
+accepters
+accepting
+acceptor
+acceptors
+accepts
+access
+accessed
+accesses
+accessibility
+accessible
+accessibly
+accessing
+accession
+accessions
+accessories
+accessors
+accessory
+accident
+accidental
+accidentally
+accidently
+accidents
+acclaim
+acclaimed
+acclaiming
+acclaims
+acclamation
+acclimate
+acclimated
+acclimates
+acclimating
+acclimatization
+acclimatized
+accolade
+accolades
+accommodate
+accommodated
+accommodates
+accommodating
+accommodation
+accommodations
+accompanied
+accompanies
+accompaniment
+accompaniments
+accompanist
+accompanists
+accompany
+accompanying
+accomplice
+accomplices
+accomplish
+accomplished
+accomplisher
+accomplishers
+accomplishes
+accomplishing
+accomplishment
+accomplishments
+accord
+accordance
+accorded
+accorder
+accorders
+according
+accordingly
+accordion
+accordions
+accords
+accost
+accosted
+accosting
+accosts
+account
+accountability
+accountable
+accountably
+accountancy
+accountant
+accountants
+accounted
+accounting
+accounts
+accredit
+accreditation
+accreditations
+accredited
+accretion
+accretions
+accrue
+accrued
+accrues
+accruing
+acculturate
+acculturated
+acculturates
+acculturating
+acculturation
+accumulate
+accumulated
+accumulates
+accumulating
+accumulation
+accumulations
+accumulator
+accumulators
+accuracies
+accuracy
+accurate
+accurately
+accurateness
+accursed
+accusal
+accusation
+accusations
+accusative
+accuse
+accused
+accuser
+accuses
+accusing
+accusingly
+accustom
+accustomed
+accustoming
+accustoms
+ace
+aces
+acetate
+acetone
+acetylene
+ache
+ached
+aches
+achievable
+achieve
+achieved
+achievement
+achievements
+achiever
+achievers
+achieves
+achieving
+aching
+acid
+acidic
+acidities
+acidity
+acidly
+acids
+acidulous
+acknowledge
+acknowledgeable
+acknowledged
+acknowledgement
+acknowledgements
+acknowledger
+acknowledgers
+acknowledges
+acknowledging
+acknowledgment
+acknowledgments
+acme
+acne
+acolyte
+acolytes
+acorn
+acorns
+acoustic
+acoustical
+acoustically
+acoustician
+acoustics
+acquaint
+acquaintance
+acquaintances
+acquainted
+acquainting
+acquaints
+acquiesce
+acquiesced
+acquiescence
+acquiescent
+acquiesces
+acquiescing
+acquirable
+acquire
+acquired
+acquires
+acquiring
+acquisition
+acquisitions
+acquisitive
+acquisitiveness
+acquit
+acquits
+acquittal
+acquitted
+acquitter
+acquitting
+acre
+acreage
+acres
+acrid
+acrimonious
+acrimony
+acrobat
+acrobatic
+acrobatics
+acrobats
+acronym
+acronyms
+acropolis
+across
+acrylic
+act
+acted
+acting
+actinium
+actinometer
+actinometers
+action
+actions
+activate
+activated
+activates
+activating
+activation
+activations
+activator
+activators
+active
+actively
+activism
+activist
+activists
+activities
+activity
+actor
+actors
+actress
+actresses
+actual
+actualities
+actuality
+actualization
+actually
+actuals
+actuarial
+actuarially
+actuate
+actuated
+actuates
+actuating
+actuator
+actuators
+acuity
+acumen
+acute
+acutely
+acuteness
+acyclic
+acyclically
+ad
+adage
+adages
+adagio
+adagios
+adamant
+adamantly
+adapt
+adaptability
+adaptable
+adaptation
+adaptations
+adapted
+adapter
+adapters
+adapting
+adaptive
+adaptively
+adaptor
+adaptors
+adapts
+add
+added
+addend
+addenda
+addendum
+adder
+adders
+addict
+addicted
+addicting
+addiction
+addictions
+addicts
+adding
+addition
+additional
+additionally
+additions
+additive
+additives
+additivity
+address
+addressability
+addressable
+addressed
+addressee
+addressees
+addresser
+addressers
+addresses
+addressing
+adds
+adduce
+adduced
+adduces
+adducible
+adducing
+adduct
+adducted
+adducting
+adduction
+adductor
+adducts
+adept
+adequacies
+adequacy
+adequate
+adequately
+adhere
+adhered
+adherence
+adherent
+adherents
+adherer
+adherers
+adheres
+adhering
+adhesion
+adhesions
+adhesive
+adhesives
+adiabatic
+adiabatically
+adieu
+adjacency
+adjacent
+adjective
+adjectives
+adjoin
+adjoined
+adjoining
+adjoins
+adjourn
+adjourned
+adjourning
+adjournment
+adjourns
+adjudge
+adjudged
+adjudges
+adjudging
+adjudicate
+adjudicated
+adjudicates
+adjudicating
+adjudication
+adjudications
+adjunct
+adjuncts
+adjure
+adjured
+adjures
+adjuring
+adjust
+adjustable
+adjustably
+adjusted
+adjuster
+adjusters
+adjusting
+adjustment
+adjustments
+adjustor
+adjustors
+adjusts
+adjutant
+adjutants
+administer
+administered
+administering
+administerings
+administers
+administrable
+administrate
+administration
+administrations
+administrative
+administratively
+administrator
+administrators
+admirable
+admirably
+admiral
+admirals
+admiralty
+admiration
+admirations
+admire
+admired
+admirer
+admirers
+admires
+admiring
+admiringly
+admissibility
+admissible
+admission
+admissions
+admit
+admits
+admittance
+admitted
+admittedly
+admitter
+admitters
+admitting
+admix
+admixed
+admixes
+admixture
+admonish
+admonished
+admonishes
+admonishing
+admonishment
+admonishments
+admonition
+admonitions
+ado
+adobe
+adolescence
+adolescent
+adolescents
+adopt
+adopted
+adopter
+adopters
+adopting
+adoption
+adoptions
+adoptive
+adopts
+adorable
+adoration
+adore
+adored
+adores
+adorn
+adorned
+adornment
+adornments
+adorns
+adrenal
+adrenaline
+adrift
+adroit
+adroitness
+ads
+adsorb
+adsorbed
+adsorbing
+adsorbs
+adsorption
+adulate
+adulating
+adulation
+adult
+adulterate
+adulterated
+adulterates
+adulterating
+adulterer
+adulterers
+adulterous
+adulterously
+adultery
+adulthood
+adults
+adumbrate
+adumbrated
+adumbrates
+adumbrating
+adumbration
+advance
+advanced
+advancement
+advancements
+advances
+advancing
+advantage
+advantaged
+advantageous
+advantageously
+advantages
+advent
+adventist
+adventists
+adventitious
+adventure
+adventured
+adventurer
+adventurers
+adventures
+adventuring
+adventurous
+adverb
+adverbial
+adverbs
+adversaries
+adversary
+adverse
+adversely
+adversities
+adversity
+advert
+advertise
+advertised
+advertisement
+advertisements
+advertiser
+advertisers
+advertises
+advertising
+advice
+advisability
+advisable
+advisably
+advise
+advised
+advisedly
+advisee
+advisees
+advisement
+advisements
+adviser
+advisers
+advises
+advising
+advisor
+advisors
+advisory
+advocacy
+advocate
+advocated
+advocates
+advocating
+aegis
+aerate
+aerated
+aerates
+aerating
+aeration
+aerator
+aerators
+aerial
+aerials
+aeroacoustic
+aerobic
+aerobics
+aerodynamic
+aerodynamics
+aeronautic
+aeronautical
+aeronautics
+aerosol
+aerosolize
+aerosols
+aerospace
+aesthetic
+aesthetically
+aesthetics
+afar
+affable
+affair
+affairs
+affect
+affectation
+affectations
+affected
+affecting
+affectingly
+affection
+affectionate
+affectionately
+affections
+affective
+affects
+afferent
+affianced
+affidavit
+affidavits
+affiliate
+affiliated
+affiliates
+affiliating
+affiliation
+affiliations
+affinities
+affinity
+affirm
+affirmation
+affirmations
+affirmative
+affirmatively
+affirmed
+affirming
+affirms
+affix
+affixed
+affixes
+affixing
+afflict
+afflicted
+afflicting
+affliction
+afflictions
+afflictive
+afflicts
+affluence
+affluent
+afford
+affordable
+afforded
+affording
+affords
+affricate
+affricates
+affright
+affront
+affronted
+affronting
+affronts
+aficionado
+afield
+afire
+aflame
+afloat
+afoot
+afore
+aforementioned
+aforesaid
+aforethought
+afoul
+afraid
+afresh
+aft
+after
+aftereffect
+afterglow
+afterimage
+afterlife
+aftermath
+aftermost
+afternoon
+afternoons
+aftershock
+aftershocks
+afterthought
+afterthoughts
+afterward
+afterwards
+again
+against
+agape
+agar
+agate
+agates
+age
+aged
+ageless
+agencies
+agency
+agenda
+agendas
+agent
+agents
+ager
+agers
+ages
+agglomerate
+agglomerated
+agglomerates
+agglomeration
+agglutinate
+agglutinated
+agglutinates
+agglutinating
+agglutination
+agglutinin
+agglutinins
+aggrandize
+aggravate
+aggravated
+aggravates
+aggravation
+aggregate
+aggregated
+aggregately
+aggregates
+aggregating
+aggregation
+aggregations
+aggression
+aggressions
+aggressive
+aggressively
+aggressiveness
+aggressor
+aggressors
+aggrieve
+aggrieved
+aggrieves
+aggrieving
+aghast
+agile
+agilely
+agility
+aging
+agitate
+agitated
+agitates
+agitating
+agitation
+agitations
+agitator
+agitators
+agleam
+aglow
+agnostic
+agnostics
+ago
+agog
+agonies
+agonize
+agonized
+agonizes
+agonizing
+agonizingly
+agony
+agrarian
+agree
+agreeable
+agreeably
+agreed
+agreeing
+agreement
+agreements
+agreer
+agreers
+agrees
+agricultural
+agriculturally
+agriculture
+ague
+ah
+ahead
+aid
+aide
+aided
+aiding
+aids
+ail
+aileron
+ailerons
+ailing
+ailment
+ailments
+aim
+aimed
+aimer
+aimers
+aiming
+aimless
+aimlessly
+aims
+air
+airbag
+airbags
+airborne
+aircraft
+airdrop
+airdrops
+aired
+airer
+airers
+airfare
+airfield
+airfields
+airflow
+airfoil
+airfoils
+airframe
+airframes
+airily
+airing
+airings
+airless
+airlift
+airlifts
+airline
+airliner
+airlines
+airlock
+airlocks
+airmail
+airmails
+airman
+airmen
+airplane
+airplanes
+airport
+airports
+airs
+airship
+airships
+airspace
+airspeed
+airstrip
+airstrips
+airtight
+airway
+airways
+airy
+aisle
+ajar
+akimbo
+akin
+alabaster
+alacrity
+alarm
+alarmed
+alarming
+alarmingly
+alarmist
+alarms
+alas
+alba
+albacore
+albatross
+albeit
+album
+albumin
+albums
+alchemy
+alcohol
+alcoholic
+alcoholics
+alcoholism
+alcohols
+alcove
+alcoves
+alder
+alderman
+aldermen
+ale
+alee
+alert
+alerted
+alertedly
+alerter
+alerters
+alerting
+alertly
+alertness
+alerts
+alfalfa
+alfresco
+alga
+algae
+algaecide
+algebra
+algebraic
+algebraically
+algebras
+alginate
+algorithm
+algorithmic
+algorithmically
+algorithms
+alias
+aliased
+aliases
+aliasing
+alibi
+alibis
+alien
+alienate
+alienated
+alienates
+alienating
+alienation
+aliens
+alight
+align
+aligned
+aligning
+alignment
+alignments
+aligns
+alike
+aliment
+aliments
+alimony
+alive
+alkali
+alkaline
+alkalis
+alkaloid
+alkaloids
+alkyl
+all
+allay
+allayed
+allaying
+allays
+allegation
+allegations
+allege
+alleged
+allegedly
+alleges
+allegiance
+allegiances
+alleging
+allegoric
+allegorical
+allegorically
+allegories
+allegory
+allegretto
+allegrettos
+allele
+alleles
+allemande
+allergic
+allergies
+allergy
+alleviate
+alleviated
+alleviates
+alleviating
+alleviation
+alley
+alleys
+alleyway
+alleyways
+alliance
+alliances
+allied
+allies
+alligator
+alligators
+alliteration
+alliterations
+alliterative
+allocatable
+allocate
+allocated
+allocates
+allocating
+allocation
+allocations
+allocator
+allocators
+allophone
+allophones
+allophonic
+allot
+allotment
+allotments
+allots
+allotted
+allotter
+allotting
+allow
+allowable
+allowably
+allowance
+allowances
+allowed
+allowing
+allows
+alloy
+alloys
+allude
+alluded
+alludes
+alluding
+allure
+allurement
+alluring
+allusion
+allusions
+allusive
+allusiveness
+ally
+allying
+alma
+almanac
+almanacs
+almighty
+almond
+almonds
+almoner
+almost
+alms
+almsman
+alnico
+aloe
+aloes
+aloft
+aloha
+alone
+aloneness
+along
+alongside
+aloof
+aloofness
+aloud
+alpha
+alphabet
+alphabetic
+alphabetical
+alphabetically
+alphabetics
+alphabetize
+alphabetized
+alphabetizes
+alphabetizing
+alphabets
+alphanumeric
+alpine
+already
+also
+altar
+altars
+alter
+alterable
+alteration
+alterations
+altercation
+altercations
+altered
+alterer
+alterers
+altering
+alternate
+alternated
+alternately
+alternates
+alternating
+alternation
+alternations
+alternative
+alternatively
+alternatives
+alternator
+alternators
+alters
+although
+altitude
+altitudes
+altogether
+altruism
+altruist
+altruistic
+altruistically
+alum
+aluminum
+alumna
+alumnae
+alumni
+alumnus
+alundum
+alveolar
+alveoli
+alveolus
+always
+am
+amain
+amalgam
+amalgamate
+amalgamated
+amalgamates
+amalgamating
+amalgamation
+amalgams
+amanuensis
+amaretto
+amass
+amassed
+amasses
+amassing
+amateur
+amateurish
+amateurishness
+amateurism
+amateurs
+amatory
+amaze
+amazed
+amazedly
+amazement
+amazer
+amazers
+amazes
+amazing
+amazingly
+ambassador
+ambassadors
+amber
+ambiance
+ambidextrous
+ambidextrously
+ambient
+ambiguities
+ambiguity
+ambiguous
+ambiguously
+ambition
+ambitions
+ambitious
+ambitiously
+ambivalence
+ambivalent
+ambivalently
+amble
+ambled
+ambler
+ambles
+ambling
+ambrosial
+ambulance
+ambulances
+ambulatory
+ambuscade
+ambush
+ambushed
+ambushes
+ameliorate
+ameliorated
+ameliorating
+amelioration
+amen
+amenable
+amend
+amended
+amending
+amendment
+amendments
+amends
+amenities
+amenity
+amenorrhea
+americium
+amiable
+amicable
+amicably
+amid
+amide
+amidst
+amigo
+amino
+amiss
+amity
+ammo
+ammonia
+ammoniac
+ammonium
+ammunition
+amnesty
+amoeba
+amoebae
+amoebas
+amok
+among
+amongst
+amoral
+amorality
+amorist
+amorous
+amorphous
+amorphously
+amortize
+amortized
+amortizes
+amortizing
+amount
+amounted
+amounter
+amounters
+amounting
+amounts
+amour
+amperage
+ampere
+amperes
+ampersand
+ampersands
+amphetamine
+amphetamines
+amphibian
+amphibians
+amphibious
+amphibiously
+amphibology
+amphitheater
+amphitheaters
+ample
+amplification
+amplified
+amplifier
+amplifiers
+amplifies
+amplify
+amplifying
+amplitude
+amplitudes
+amply
+ampoule
+ampoules
+amputate
+amputated
+amputates
+amputating
+amulet
+amulets
+amuse
+amused
+amusedly
+amusement
+amusements
+amuser
+amusers
+amuses
+amusing
+amusingly
+amyl
+an
+anachronism
+anachronisms
+anachronistically
+anaconda
+anacondas
+anaerobic
+anagram
+anagrams
+anal
+analog
+analogical
+analogies
+analogous
+analogously
+analogue
+analogues
+analogy
+analyses
+analysis
+analyst
+analysts
+analytic
+analytical
+analytically
+analyticities
+analyticity
+analyzable
+analyze
+analyzed
+analyzer
+analyzers
+analyzes
+analyzing
+anaphora
+anaphoric
+anaphorically
+anaplasmosis
+anarchic
+anarchical
+anarchism
+anarchist
+anarchists
+anarchy
+anastomoses
+anastomosis
+anastomotic
+anathema
+anatomic
+anatomical
+anatomically
+anatomy
+ancestor
+ancestors
+ancestral
+ancestry
+anchor
+anchorage
+anchorages
+anchored
+anchoring
+anchorite
+anchoritism
+anchors
+anchovies
+anchovy
+ancient
+anciently
+ancients
+ancillary
+and
+anders
+anding
+anecdotal
+anecdote
+anecdotes
+anechoic
+anemia
+anemic
+anemometer
+anemometers
+anemometry
+anemone
+anesthesia
+anesthetic
+anesthetically
+anesthetics
+anesthetize
+anesthetized
+anesthetizes
+anesthetizing
+anew
+angel
+angelic
+angels
+anger
+angered
+angering
+angers
+angiography
+angle
+angled
+angler
+anglers
+angling
+angrier
+angriest
+angrily
+angry
+angst
+angstrom
+anguish
+anguished
+angular
+angularly
+anhydrous
+anhydrously
+aniline
+animal
+animals
+animate
+animated
+animatedly
+animately
+animateness
+animates
+animating
+animation
+animations
+animator
+animators
+animism
+animized
+animosity
+anion
+anionic
+anions
+anise
+aniseikonic
+anisotropic
+anisotropy
+ankle
+ankles
+annal
+annals
+annex
+annexation
+annexed
+annexes
+annexing
+annihilate
+annihilated
+annihilates
+annihilating
+annihilation
+anniversaries
+anniversary
+annotate
+annotated
+annotates
+annotating
+annotation
+annotations
+announce
+announced
+announcement
+announcements
+announcer
+announcers
+announces
+announcing
+annoy
+annoyance
+annoyances
+annoyed
+annoyer
+annoyers
+annoying
+annoyingly
+annoys
+annual
+annually
+annuals
+annuity
+annul
+annular
+annuli
+annulled
+annulling
+annulment
+annulments
+annuls
+annulus
+annum
+annunciate
+annunciated
+annunciates
+annunciating
+annunciator
+annunciators
+anode
+anodes
+anodize
+anodized
+anodizes
+anoint
+anointed
+anointing
+anoints
+anomalies
+anomalous
+anomalously
+anomaly
+anomic
+anomie
+anon
+anonymity
+anonymous
+anonymously
+anorexia
+another
+answer
+answerable
+answered
+answerer
+answerers
+answering
+answers
+ant
+antagonism
+antagonisms
+antagonist
+antagonistic
+antagonistically
+antagonists
+antagonize
+antagonized
+antagonizes
+antagonizing
+antarctic
+ante
+anteater
+anteaters
+antecedent
+antecedents
+antedate
+antelope
+antelopes
+antenna
+antennae
+antennas
+anterior
+anthem
+anthems
+anther
+anthologies
+anthology
+anthracite
+anthropological
+anthropologically
+anthropologist
+anthropologists
+anthropology
+anthropomorphic
+anthropomorphically
+anti
+antibacterial
+antibiotic
+antibiotics
+antibodies
+antibody
+antic
+anticipate
+anticipated
+anticipates
+anticipating
+anticipation
+anticipations
+anticipatory
+anticoagulation
+anticompetitive
+antics
+antidisestablishmentarianism
+antidote
+antidotes
+antiformant
+antifundamentalist
+antigen
+antigens
+antihistorical
+antimicrobial
+antimony
+antinomian
+antinomy
+antipathy
+antiphonal
+antipode
+antipodes
+antiquarian
+antiquarians
+antiquate
+antiquated
+antique
+antiques
+antiquities
+antiquity
+antiredeposition
+antiresonance
+antiresonator
+antisemitic
+antisemitism
+antiseptic
+antisera
+antiserum
+antislavery
+antisocial
+antisubmarine
+antisymmetric
+antisymmetry
+antithesis
+antithetical
+antithyroid
+antitoxin
+antitoxins
+antitrust
+antler
+antlered
+ants
+anus
+anvil
+anvils
+anxieties
+anxiety
+anxious
+anxiously
+any
+anybody
+anyhow
+anymore
+anyone
+anyplace
+anything
+anytime
+anyway
+anywhere
+aorta
+apace
+apart
+apartment
+apartments
+apathetic
+apathy
+ape
+aped
+aperiodic
+aperiodicity
+aperture
+apes
+apex
+aphasia
+aphasic
+aphelion
+aphid
+aphids
+aphonic
+aphorism
+aphorisms
+apiaries
+apiary
+apical
+apiece
+aping
+apish
+aplenty
+aplomb
+apocalypse
+apocalyptic
+apocryphal
+apogee
+apogees
+apologetic
+apologetically
+apologia
+apologies
+apologist
+apologists
+apologize
+apologized
+apologizes
+apologizing
+apology
+apostate
+apostle
+apostles
+apostolic
+apostrophe
+apostrophes
+apothecary
+apothegm
+apotheoses
+apotheosis
+appall
+appalled
+appalling
+appallingly
+appanage
+apparatus
+apparel
+appareled
+apparent
+apparently
+apparition
+apparitions
+appeal
+appealed
+appealer
+appealers
+appealing
+appealingly
+appeals
+appear
+appearance
+appearances
+appeared
+appearer
+appearers
+appearing
+appears
+appease
+appeased
+appeasement
+appeases
+appeasing
+appellant
+appellants
+appellate
+appellation
+append
+appendage
+appendages
+appended
+appender
+appenders
+appendices
+appendicitis
+appending
+appendix
+appendixes
+appends
+appertain
+appertains
+appetite
+appetites
+appetizer
+appetizing
+applaud
+applauded
+applauding
+applauds
+applause
+apple
+applejack
+apples
+appliance
+appliances
+applicability
+applicable
+applicant
+applicants
+application
+applications
+applicative
+applicatively
+applicator
+applicators
+applied
+applier
+appliers
+applies
+applique
+apply
+applying
+appoint
+appointed
+appointee
+appointees
+appointer
+appointers
+appointing
+appointive
+appointment
+appointments
+appoints
+apportion
+apportioned
+apportioning
+apportionment
+apportionments
+apportions
+apposite
+appraisal
+appraisals
+appraise
+appraised
+appraiser
+appraisers
+appraises
+appraising
+appraisingly
+appreciable
+appreciably
+appreciate
+appreciated
+appreciates
+appreciating
+appreciation
+appreciations
+appreciative
+appreciatively
+apprehend
+apprehended
+apprehensible
+apprehension
+apprehensions
+apprehensive
+apprehensively
+apprehensiveness
+apprentice
+apprenticed
+apprentices
+apprenticeship
+apprise
+apprised
+apprises
+apprising
+approach
+approachability
+approachable
+approached
+approacher
+approachers
+approaches
+approaching
+approbate
+approbation
+appropriate
+appropriated
+appropriately
+appropriateness
+appropriates
+appropriating
+appropriation
+appropriations
+appropriator
+appropriators
+approval
+approvals
+approve
+approved
+approver
+approvers
+approves
+approving
+approvingly
+approximate
+approximated
+approximately
+approximates
+approximating
+approximation
+approximations
+appurtenance
+appurtenances
+apricot
+apricots
+apron
+aprons
+apropos
+apse
+apsis
+apt
+aptitude
+aptitudes
+aptly
+aptness
+aqua
+aquaria
+aquarium
+aquatic
+aqueduct
+aqueducts
+aqueous
+aquifer
+aquifers
+arabesque
+arable
+arachnid
+arachnids
+arbiter
+arbiters
+arbitrarily
+arbitrariness
+arbitrary
+arbitrate
+arbitrated
+arbitrates
+arbitrating
+arbitration
+arbitrator
+arbitrators
+arbor
+arboreal
+arbors
+arc
+arcade
+arcaded
+arcades
+arcane
+arced
+arch
+archaic
+archaically
+archaicness
+archaism
+archaize
+archangel
+archangels
+archbishop
+archdiocese
+archdioceses
+arched
+archenemy
+archeological
+archeologist
+archeology
+archers
+archery
+arches
+archetype
+archfool
+arching
+archipelago
+archipelagoes
+architect
+architectonic
+architects
+architectural
+architecturally
+architecture
+architectures
+archival
+archive
+archived
+archiver
+archivers
+archives
+archiving
+archivist
+archly
+arcing
+arclike
+arcs
+arcsine
+arctangent
+arctic
+ardent
+ardently
+ardor
+arduous
+arduously
+arduousness
+are
+area
+areas
+arena
+arenas
+argon
+argonauts
+argot
+arguable
+arguably
+argue
+argued
+arguer
+arguers
+argues
+arguing
+argument
+argumentation
+argumentative
+arguments
+arid
+aridity
+aright
+arise
+arisen
+ariser
+arises
+arising
+arisings
+aristocracy
+aristocrat
+aristocratic
+aristocratically
+aristocrats
+arithmetic
+arithmetical
+arithmetically
+arithmetics
+arithmetize
+arithmetized
+arithmetizes
+ark
+arm
+armadillo
+armadillos
+armament
+armaments
+armchair
+armchairs
+armed
+armer
+armers
+armful
+armhole
+armies
+arming
+armistice
+armload
+armor
+armored
+armorer
+armory
+armpit
+armpits
+arms
+army
+aroma
+aromas
+aromatic
+arose
+around
+arousal
+arouse
+aroused
+arouses
+arousing
+arpeggio
+arpeggios
+arrack
+arraign
+arraigned
+arraigning
+arraignment
+arraignments
+arraigns
+arrange
+arranged
+arrangement
+arrangements
+arranger
+arrangers
+arranges
+arranging
+arrant
+array
+arrayed
+arrays
+arrears
+arrest
+arrested
+arrester
+arresters
+arresting
+arrestingly
+arrestor
+arrestors
+arrests
+arrival
+arrivals
+arrive
+arrived
+arrives
+arriving
+arrogance
+arrogant
+arrogantly
+arrogate
+arrogated
+arrogates
+arrogating
+arrogation
+arrow
+arrowed
+arrowhead
+arrowheads
+arrows
+arroyo
+arroyos
+arsenal
+arsenals
+arsenic
+arsine
+arson
+art
+arterial
+arteries
+arteriolar
+arteriole
+arterioles
+arteriosclerosis
+artery
+artful
+artfully
+artfulness
+arthritis
+arthropod
+arthropods
+artichoke
+artichokes
+article
+articles
+articulate
+articulated
+articulately
+articulateness
+articulates
+articulating
+articulation
+articulations
+articulator
+articulators
+articulatory
+artifact
+artifacts
+artifice
+artificer
+artifices
+artificial
+artificialities
+artificiality
+artificially
+artificialness
+artillerist
+artillery
+artisan
+artisans
+artist
+artistic
+artistically
+artistry
+artists
+artless
+arts
+artwork
+as
+asbestos
+ascend
+ascendancy
+ascendant
+ascended
+ascendency
+ascendent
+ascender
+ascenders
+ascending
+ascends
+ascension
+ascensions
+ascent
+ascertain
+ascertainable
+ascertained
+ascertaining
+ascertains
+ascetic
+asceticism
+ascetics
+ascot
+ascribable
+ascribe
+ascribed
+ascribes
+ascribing
+ascription
+aseptic
+ash
+ashamed
+ashamedly
+ashen
+ashes
+ashman
+ashore
+ashtray
+ashtrays
+aside
+asinine
+ask
+askance
+asked
+asker
+askers
+askew
+asking
+asks
+asleep
+asocial
+asp
+asparagus
+aspect
+aspects
+aspen
+aspersion
+aspersions
+asphalt
+asphyxia
+aspic
+aspirant
+aspirants
+aspirate
+aspirated
+aspirates
+aspirating
+aspiration
+aspirations
+aspirator
+aspirators
+aspire
+aspired
+aspires
+aspirin
+aspiring
+aspirins
+ass
+assail
+assailant
+assailants
+assailed
+assailing
+assails
+assassin
+assassinate
+assassinated
+assassinates
+assassinating
+assassination
+assassinations
+assassins
+assault
+assaulted
+assaulting
+assaults
+assay
+assayed
+assaying
+assemblage
+assemblages
+assemble
+assembled
+assembler
+assemblers
+assembles
+assemblies
+assembling
+assembly
+assent
+assented
+assenter
+assenting
+assents
+assert
+asserted
+asserter
+asserters
+asserting
+assertion
+assertions
+assertive
+assertively
+assertiveness
+asserts
+asses
+assess
+assessed
+assesses
+assessing
+assessment
+assessments
+assessor
+assessors
+asset
+assets
+assiduity
+assiduous
+assiduously
+assign
+assignable
+assigned
+assignee
+assignees
+assigner
+assigners
+assigning
+assignment
+assignments
+assigns
+assimilate
+assimilated
+assimilates
+assimilating
+assimilation
+assimilations
+assist
+assistance
+assistances
+assistant
+assistants
+assistantship
+assistantships
+assisted
+assisting
+assists
+associate
+associated
+associates
+associating
+association
+associational
+associations
+associative
+associatively
+associativity
+associator
+associators
+assonance
+assonant
+assort
+assorted
+assortment
+assortments
+assorts
+assuage
+assuaged
+assuages
+assume
+assumed
+assumes
+assuming
+assumption
+assumptions
+assurance
+assurances
+assure
+assured
+assuredly
+assurer
+assurers
+assures
+assuring
+assuringly
+astatine
+aster
+asterisk
+asterisks
+asteroid
+asteroidal
+asteroids
+asters
+asthma
+astonish
+astonished
+astonishes
+astonishing
+astonishingly
+astonishment
+astound
+astounded
+astounding
+astounds
+astral
+astray
+astride
+astringency
+astringent
+astrology
+astronaut
+astronautics
+astronauts
+astronomer
+astronomers
+astronomical
+astronomically
+astronomy
+astrophysical
+astrophysics
+astute
+astutely
+astuteness
+asunder
+asylum
+asymmetric
+asymmetrically
+asymmetry
+asymptomatically
+asymptote
+asymptotes
+asymptotic
+asymptotically
+asynchronism
+asynchronous
+asynchronously
+asynchrony
+at
+atavistic
+ate
+atemporal
+atheism
+atheist
+atheistic
+atheists
+atherosclerosis
+athlete
+athletes
+athletic
+athleticism
+athletics
+atlas
+atmosphere
+atmospheres
+atmospheric
+atoll
+atolls
+atom
+atomic
+atomically
+atomics
+atomization
+atomize
+atomized
+atomizes
+atomizing
+atoms
+atonal
+atonally
+atone
+atoned
+atonement
+atones
+atop
+atrocious
+atrociously
+atrocities
+atrocity
+atrophic
+atrophied
+atrophies
+atrophy
+atrophying
+attach
+attache
+attached
+attacher
+attachers
+attaches
+attaching
+attachment
+attachments
+attack
+attackable
+attacked
+attacker
+attackers
+attacking
+attacks
+attain
+attainable
+attainably
+attained
+attainer
+attainers
+attaining
+attainment
+attainments
+attains
+attempt
+attempted
+attempter
+attempters
+attempting
+attempts
+attend
+attendance
+attendances
+attendant
+attendants
+attended
+attendee
+attendees
+attender
+attenders
+attending
+attends
+attention
+attentional
+attentionality
+attentions
+attentive
+attentively
+attentiveness
+attenuate
+attenuated
+attenuates
+attenuating
+attenuation
+attenuator
+attenuators
+attest
+attested
+attesting
+attests
+attic
+attics
+attire
+attired
+attires
+attiring
+attitude
+attitudes
+attitudinal
+attorney
+attorneys
+attract
+attracted
+attracting
+attraction
+attractions
+attractive
+attractively
+attractiveness
+attractor
+attractors
+attracts
+attributable
+attribute
+attributed
+attributes
+attributing
+attribution
+attributions
+attributive
+attributively
+attrition
+attune
+attuned
+attunes
+attuning
+atypical
+atypically
+auburn
+auction
+auctioneer
+auctioneers
+audacious
+audaciously
+audaciousness
+audacity
+audible
+audibly
+audience
+audiences
+audio
+audiogram
+audiograms
+audiological
+audiologist
+audiologists
+audiology
+audiometer
+audiometers
+audiometric
+audiometry
+audit
+audited
+auditing
+audition
+auditioned
+auditioning
+auditions
+auditor
+auditorium
+auditors
+auditory
+audits
+auger
+augers
+aught
+augment
+augmentation
+augmented
+augmenting
+augments
+augur
+augurs
+august
+augustly
+augustness
+aunt
+aunts
+aura
+aural
+aurally
+auras
+aureole
+aureomycin
+aurora
+auscultate
+auscultated
+auscultates
+auscultating
+auscultation
+auscultations
+auspice
+auspices
+auspicious
+auspiciously
+austere
+austerely
+austerity
+authentic
+authentically
+authenticate
+authenticated
+authenticates
+authenticating
+authentication
+authentications
+authenticator
+authenticators
+authenticity
+author
+authored
+authoring
+authoritarian
+authoritarianism
+authoritative
+authoritatively
+authorities
+authority
+authorization
+authorizations
+authorize
+authorized
+authorizer
+authorizers
+authorizes
+authorizing
+authors
+authorship
+autism
+autistic
+auto
+autobiographic
+autobiographical
+autobiographies
+autobiography
+autocollimator
+autocorrelate
+autocorrelation
+autocracies
+autocracy
+autocrat
+autocratic
+autocratically
+autocrats
+autodecrement
+autodecremented
+autodecrements
+autodialer
+autofluorescence
+autograph
+autographed
+autographing
+autographs
+autoincrement
+autoincremented
+autoincrements
+autoindex
+autoindexing
+automata
+automate
+automated
+automates
+automatic
+automatically
+automating
+automation
+automaton
+automobile
+automobiles
+automotive
+autonavigator
+autonavigators
+autonomic
+autonomous
+autonomously
+autonomy
+autopilot
+autopilots
+autopsied
+autopsies
+autopsy
+autoregressive
+autos
+autosuggestibility
+autotransformer
+autumn
+autumnal
+autumns
+auxiliaries
+auxiliary
+avail
+availabilities
+availability
+available
+availably
+availed
+availer
+availers
+availing
+avails
+avalanche
+avalanched
+avalanches
+avalanching
+avant
+avarice
+avaricious
+avariciously
+avenge
+avenged
+avenger
+avenges
+avenging
+avenue
+avenues
+aver
+average
+averaged
+averages
+averaging
+averred
+averrer
+averring
+avers
+averse
+aversion
+aversions
+avert
+averted
+averting
+averts
+avian
+aviaries
+aviary
+aviation
+aviator
+aviators
+avid
+avidity
+avidly
+avionic
+avionics
+avocado
+avocados
+avocation
+avocations
+avoid
+avoidable
+avoidably
+avoidance
+avoided
+avoider
+avoiders
+avoiding
+avoids
+avouch
+avow
+avowal
+avowed
+avows
+await
+awaited
+awaiting
+awaits
+awake
+awaken
+awakened
+awakening
+awakens
+awakes
+awaking
+award
+awarded
+awarder
+awarders
+awarding
+awards
+aware
+awareness
+awash
+away
+awe
+awed
+awesome
+awful
+awfully
+awfulness
+awhile
+awkward
+awkwardly
+awkwardness
+awl
+awls
+awning
+awnings
+awoke
+awry
+ax
+axed
+axer
+axers
+axes
+axial
+axially
+axing
+axiological
+axiom
+axiomatic
+axiomatically
+axiomatization
+axiomatizations
+axiomatize
+axiomatized
+axiomatizes
+axiomatizing
+axioms
+axis
+axle
+axles
+axolotl
+axolotls
+axon
+axons
+aye
+ayes
+azalea
+azaleas
+azimuth
+azimuths
+azure
+babble
+babbled
+babbles
+babbling
+babe
+babes
+babied
+babies
+baboon
+baboons
+baby
+babyhood
+babying
+babyish
+babysit
+babysitting
+baccalaureate
+bachelor
+bachelors
+bacilli
+bacillus
+back
+backache
+backaches
+backarrow
+backbend
+backbends
+backboard
+backbone
+backbones
+backdrop
+backdrops
+backed
+backer
+backers
+backfill
+backfiring
+background
+backgrounds
+backhand
+backing
+backlash
+backlog
+backlogged
+backlogs
+backorder
+backpack
+backpacks
+backplane
+backplanes
+backplate
+backs
+backscatter
+backscattered
+backscattering
+backscatters
+backside
+backslash
+backslashes
+backspace
+backspaced
+backspaces
+backspacing
+backstage
+backstairs
+backstitch
+backstitched
+backstitches
+backstitching
+backstop
+backtrack
+backtracked
+backtracker
+backtrackers
+backtracking
+backtracks
+backup
+backups
+backward
+backwardness
+backwards
+backwater
+backwaters
+backwoods
+backyard
+backyards
+bacon
+bacteria
+bacterial
+bacterium
+bad
+bade
+badge
+badger
+badgered
+badgering
+badgers
+badges
+badlands
+badly
+badminton
+badness
+baffle
+baffled
+baffler
+bafflers
+baffling
+bag
+bagatelle
+bagatelles
+bagel
+bagels
+baggage
+bagged
+bagger
+baggers
+bagging
+baggy
+bagpipe
+bagpipes
+bags
+bah
+bail
+bailiff
+bailiffs
+bailing
+bait
+baited
+baiter
+baiting
+baits
+bake
+baked
+baker
+bakeries
+bakers
+bakery
+bakes
+baking
+baklava
+balalaika
+balalaikas
+balance
+balanced
+balancer
+balancers
+balances
+balancing
+balconies
+balcony
+bald
+balding
+baldly
+baldness
+bale
+baleful
+baler
+bales
+balk
+balkanized
+balkanizing
+balked
+balkiness
+balking
+balks
+balky
+ball
+ballad
+ballads
+ballast
+ballasts
+balled
+baller
+ballerina
+ballerinas
+ballers
+ballet
+ballets
+ballgown
+balling
+ballistic
+ballistics
+balloon
+ballooned
+ballooner
+ballooners
+ballooning
+balloons
+ballot
+ballots
+ballpark
+ballparks
+ballplayer
+ballplayers
+ballroom
+ballrooms
+balls
+ballyhoo
+balm
+balms
+balmy
+balsa
+balsam
+balustrade
+balustrades
+bamboo
+ban
+banal
+banally
+banana
+bananas
+band
+bandage
+bandaged
+bandages
+bandaging
+banded
+bandied
+bandies
+banding
+bandit
+bandits
+bandpass
+bands
+bandstand
+bandstands
+bandwagon
+bandwagons
+bandwidth
+bandwidths
+bandy
+bandying
+bane
+baneful
+bang
+banged
+banging
+bangle
+bangles
+bangs
+banish
+banished
+banishes
+banishing
+banishment
+banister
+banisters
+banjo
+banjos
+bank
+banked
+banker
+bankers
+banking
+bankrupt
+bankruptcies
+bankruptcy
+bankrupted
+bankrupting
+bankrupts
+banned
+banner
+banners
+banning
+banquet
+banqueting
+banquetings
+banquets
+bans
+banshee
+banshees
+bantam
+banter
+bantered
+bantering
+banters
+baptism
+baptismal
+baptisms
+baptistery
+baptistries
+baptistry
+baptize
+baptized
+baptizes
+baptizing
+bar
+barb
+barbarian
+barbarians
+barbaric
+barbarism
+barbarities
+barbarity
+barbarous
+barbarously
+barbecue
+barbecued
+barbecues
+barbed
+barbell
+barbells
+barber
+barbital
+barbiturate
+barbiturates
+barbs
+bard
+bards
+bare
+bared
+barefaced
+barefoot
+barefooted
+barely
+bareness
+barer
+bares
+barest
+barflies
+barfly
+bargain
+bargained
+bargaining
+bargains
+barge
+barges
+barging
+baring
+baritone
+baritones
+barium
+bark
+barked
+barker
+barkers
+barking
+barks
+barley
+barn
+barns
+barnstorm
+barnstormed
+barnstorming
+barnstorms
+barnyard
+barnyards
+barometer
+barometers
+barometric
+baron
+baroness
+baronial
+baronies
+barons
+barony
+baroque
+baroqueness
+barrack
+barracks
+barrage
+barrages
+barred
+barrel
+barrelled
+barrelling
+barrels
+barren
+barrenness
+barricade
+barricades
+barrier
+barriers
+barring
+barringer
+barrow
+bars
+bartender
+bartenders
+barter
+bartered
+bartering
+barters
+basal
+basalt
+base
+baseball
+baseballs
+baseband
+baseboard
+baseboards
+based
+baseless
+baseline
+baselines
+basely
+baseman
+basement
+basements
+baseness
+baser
+bases
+bash
+bashed
+bashes
+bashful
+bashfulness
+bashing
+basic
+basically
+basics
+basil
+basin
+basing
+basins
+basis
+bask
+basked
+basket
+basketball
+basketballs
+baskets
+basking
+bass
+basses
+basset
+bassinet
+bassinets
+bastard
+bastards
+baste
+basted
+bastes
+basting
+bastion
+bastions
+bat
+batch
+batched
+batches
+bath
+bathe
+bathed
+bather
+bathers
+bathes
+bathing
+bathos
+bathrobe
+bathrobes
+bathroom
+bathrooms
+baths
+bathtub
+bathtubs
+baton
+batons
+bats
+battalion
+battalions
+batted
+batten
+battens
+batter
+battered
+batteries
+battering
+batters
+battery
+batting
+battle
+battled
+battlefield
+battlefields
+battlefront
+battlefronts
+battleground
+battlegrounds
+battlement
+battlements
+battler
+battlers
+battles
+battleship
+battleships
+battling
+bauble
+baubles
+baud
+bauxite
+bawdy
+bawl
+bawled
+bawling
+bawls
+bay
+bayed
+baying
+bayonet
+bayonets
+bayou
+bayous
+bays
+bazaar
+bazaars
+be
+beach
+beached
+beaches
+beachhead
+beachheads
+beaching
+beacon
+beacons
+bead
+beaded
+beading
+beadle
+beadles
+beads
+beady
+beagle
+beagles
+beak
+beaked
+beaker
+beakers
+beaks
+beam
+beamed
+beamer
+beamers
+beaming
+beams
+bean
+beanbag
+beaned
+beaner
+beaners
+beaning
+beans
+bear
+bearable
+bearably
+beard
+bearded
+beardless
+beards
+bearer
+bearers
+bearing
+bearings
+bearish
+bears
+beast
+beastly
+beasts
+beat
+beatable
+beatably
+beaten
+beater
+beaters
+beatific
+beatification
+beatify
+beating
+beatings
+beatitude
+beatitudes
+beatnik
+beatniks
+beats
+beau
+beaus
+beauteous
+beauteously
+beauties
+beautifications
+beautified
+beautifier
+beautifiers
+beautifies
+beautiful
+beautifully
+beautify
+beautifying
+beauty
+beaver
+beavers
+becalm
+becalmed
+becalming
+becalms
+became
+because
+beck
+beckon
+beckoned
+beckoning
+beckons
+become
+becomes
+becoming
+becomingly
+bed
+bedazzle
+bedazzled
+bedazzlement
+bedazzles
+bedazzling
+bedbug
+bedbugs
+bedded
+bedder
+bedders
+bedding
+bedevil
+bedeviled
+bedeviling
+bedevils
+bedfast
+bedlam
+bedpost
+bedposts
+bedraggle
+bedraggled
+bedridden
+bedrock
+bedroom
+bedrooms
+beds
+bedside
+bedspread
+bedspreads
+bedspring
+bedsprings
+bedstead
+bedsteads
+bedtime
+bee
+beech
+beechen
+beecher
+beef
+beefed
+beefer
+beefers
+beefing
+beefs
+beefsteak
+beefy
+beehive
+beehives
+been
+beep
+beeps
+beer
+beers
+bees
+beet
+beetle
+beetled
+beetles
+beetling
+beets
+befall
+befallen
+befalling
+befalls
+befell
+befit
+befits
+befitted
+befitting
+befog
+befogged
+befogging
+before
+beforehand
+befoul
+befouled
+befouling
+befouls
+befriend
+befriended
+befriending
+befriends
+befuddle
+befuddled
+befuddles
+befuddling
+beg
+began
+beget
+begets
+begetting
+beggar
+beggarly
+beggars
+beggary
+begged
+begging
+begin
+beginner
+beginners
+beginning
+beginnings
+begins
+begot
+begotten
+begrudge
+begrudged
+begrudges
+begrudging
+begrudgingly
+begs
+beguile
+beguiled
+beguiles
+beguiling
+begun
+behalf
+behave
+behaved
+behaves
+behaving
+behavior
+behavioral
+behaviorally
+behaviorism
+behavioristic
+behaviors
+behead
+beheading
+beheld
+behemoth
+behemoths
+behest
+behind
+behold
+beholden
+beholder
+beholders
+beholding
+beholds
+behoove
+behooves
+beige
+being
+beings
+belabor
+belabored
+belaboring
+belabors
+belated
+belatedly
+belay
+belayed
+belaying
+belays
+belch
+belched
+belches
+belching
+belfries
+belfry
+belie
+belied
+belief
+beliefs
+belies
+believable
+believably
+believe
+believed
+believer
+believers
+believes
+believing
+belittle
+belittled
+belittles
+belittling
+bell
+bellboy
+bellboys
+belle
+belles
+bellhop
+bellhops
+bellicose
+bellicosity
+bellies
+belligerence
+belligerent
+belligerently
+belligerents
+bellman
+bellmen
+bellow
+bellowed
+bellowing
+bellows
+bells
+bellum
+bellwether
+bellwethers
+belly
+bellyache
+bellyfull
+belong
+belonged
+belonging
+belongings
+belongs
+beloved
+below
+belt
+belted
+belting
+belts
+bely
+belying
+bemoan
+bemoaned
+bemoaning
+bemoans
+bench
+benched
+benches
+benchmark
+benchmarking
+benchmarks
+bend
+bendable
+benders
+bending
+bends
+beneath
+benediction
+benedictions
+benefactor
+benefactors
+beneficence
+beneficences
+beneficent
+beneficial
+beneficially
+beneficiaries
+beneficiary
+benefit
+benefited
+benefiting
+benefits
+benefitted
+benefitting
+benevolence
+benevolent
+benighted
+benign
+benignly
+bent
+benzene
+bequeath
+bequeathal
+bequeathed
+bequeathing
+bequeaths
+bequest
+bequests
+berate
+berated
+berates
+berating
+bereave
+bereaved
+bereavement
+bereavements
+bereaves
+bereaving
+bereft
+beret
+berets
+beribboned
+beriberi
+berkelium
+berne
+berries
+berry
+berserk
+berth
+berths
+beryl
+beryllium
+beseech
+beseeches
+beseeching
+beset
+besets
+besetting
+beside
+besides
+besiege
+besieged
+besieger
+besiegers
+besieging
+besmirch
+besmirched
+besmirches
+besmirching
+besotted
+besotter
+besotting
+besought
+bespeak
+bespeaks
+bespectacled
+bespoke
+best
+bested
+bestial
+besting
+bestir
+bestirring
+bestow
+bestowal
+bestowed
+bests
+bestseller
+bestsellers
+bestselling
+bet
+beta
+betatron
+betel
+betide
+betray
+betrayal
+betrayed
+betrayer
+betraying
+betrays
+betroth
+betrothal
+betrothed
+bets
+better
+bettered
+bettering
+betterment
+betterments
+betters
+betting
+between
+betwixt
+bevel
+beveled
+beveling
+bevels
+beverage
+beverages
+bevy
+bewail
+bewailed
+bewailing
+bewails
+beware
+bewhiskered
+bewilder
+bewildered
+bewildering
+bewilderingly
+bewilderment
+bewilders
+bewitch
+bewitched
+bewitches
+bewitching
+beyond
+biannual
+bias
+biased
+biases
+biasing
+bib
+bibbed
+bibbing
+bibles
+biblical
+biblically
+bibliographic
+bibliographical
+bibliographies
+bibliography
+bibliophile
+bibs
+bicameral
+bicarbonate
+bicentennial
+bicep
+biceps
+bicker
+bickered
+bickering
+bickers
+biconcave
+biconnected
+biconvex
+bicycle
+bicycled
+bicycler
+bicyclers
+bicycles
+bicycling
+bid
+biddable
+bidden
+bidder
+bidders
+biddies
+bidding
+biddy
+bide
+bidirectional
+bids
+biennial
+biennium
+bier
+bifocal
+bifocals
+bifurcate
+big
+bigger
+biggest
+bight
+bights
+bigness
+bigot
+bigoted
+bigotry
+bigots
+biharmonic
+bijection
+bijections
+bijective
+bijectively
+bike
+bikes
+biking
+bikini
+bikinis
+bilabial
+bilateral
+bilaterally
+bile
+bilge
+bilges
+bilinear
+bilingual
+bilk
+bilked
+bilking
+bilks
+bill
+billboard
+billboards
+billed
+biller
+billers
+billet
+billeted
+billeting
+billets
+billiard
+billiards
+billing
+billion
+billions
+billionth
+billow
+billowed
+billows
+bills
+bimetallic
+bimetallism
+bimodal
+bimolecular
+bimonthlies
+bimonthly
+bin
+binaries
+binary
+binaural
+bind
+binder
+binders
+binding
+bindings
+binds
+bing
+binge
+binges
+bingo
+binocular
+binoculars
+binomial
+bins
+binuclear
+biochemical
+biochemist
+biochemistry
+biofeedback
+biographer
+biographers
+biographic
+biographical
+biographically
+biographies
+biography
+biological
+biologically
+biologist
+biologists
+biology
+biomedical
+biomedicine
+biophysical
+biophysicist
+biophysics
+biopsies
+biopsy
+bioscience
+biosphere
+biostatistic
+biosynthesize
+biota
+biotic
+bipartisan
+bipartite
+biped
+bipeds
+biplane
+biplanes
+bipolar
+biracial
+birch
+birchen
+birches
+bird
+birdbath
+birdbaths
+birdie
+birdied
+birdies
+birdlike
+birds
+birefringence
+birefringent
+birth
+birthday
+birthdays
+birthed
+birthplace
+birthplaces
+birthright
+birthrights
+births
+biscuit
+biscuits
+bisect
+bisected
+bisecting
+bisection
+bisections
+bisector
+bisectors
+bisects
+bishop
+bishops
+bismuth
+bison
+bisons
+bisque
+bisques
+bistable
+bistate
+bit
+bitch
+bitches
+bite
+biter
+biters
+bites
+biting
+bitingly
+bitmap
+bits
+bitten
+bitter
+bitterer
+bitterest
+bitterly
+bitterness
+bitternut
+bitterroot
+bitters
+bittersweet
+bitumen
+bituminous
+bitwise
+bivalve
+bivalves
+bivariate
+bivouac
+bivouacs
+biweekly
+bizarre
+blab
+blabbed
+blabbermouth
+blabbermouths
+blabbing
+blabs
+black
+blackberries
+blackberry
+blackbird
+blackbirds
+blackboard
+blackboards
+blacked
+blacken
+blackened
+blackening
+blackens
+blacker
+blackest
+blacking
+blackjack
+blackjacks
+blacklist
+blacklisted
+blacklisting
+blacklists
+blackly
+blackmail
+blackmailed
+blackmailer
+blackmailers
+blackmailing
+blackmails
+blackness
+blackout
+blackouts
+blacks
+blacksmith
+blacksmiths
+bladder
+bladders
+blade
+blades
+blamable
+blame
+blamed
+blameless
+blamelessness
+blamer
+blamers
+blames
+blameworthy
+blaming
+blanch
+blanched
+blanches
+blanching
+bland
+blandly
+blandness
+blank
+blanked
+blanker
+blankest
+blanket
+blanketed
+blanketer
+blanketers
+blanketing
+blankets
+blanking
+blankly
+blankness
+blanks
+blare
+blared
+blares
+blaring
+blase
+blaspheme
+blasphemed
+blasphemes
+blasphemies
+blaspheming
+blasphemous
+blasphemously
+blasphemousness
+blasphemy
+blast
+blasted
+blaster
+blasters
+blasting
+blasts
+blatant
+blatantly
+blaze
+blazed
+blazer
+blazers
+blazes
+blazing
+bleach
+bleached
+bleacher
+bleachers
+bleaches
+bleaching
+bleak
+bleaker
+bleakly
+bleakness
+blear
+bleary
+bleat
+bleating
+bleats
+bled
+bleed
+bleeder
+bleeding
+bleedings
+bleeds
+blemish
+blemishes
+blend
+blended
+blender
+blending
+blends
+bless
+blessed
+blessing
+blessings
+blew
+blight
+blighted
+blimp
+blimps
+blind
+blinded
+blinder
+blinders
+blindfold
+blindfolded
+blindfolding
+blindfolds
+blinding
+blindingly
+blindly
+blindness
+blinds
+blink
+blinked
+blinker
+blinkers
+blinking
+blinks
+blip
+blips
+bliss
+blissful
+blissfully
+blister
+blistered
+blistering
+blisters
+blithe
+blithely
+blitz
+blitzes
+blitzkrieg
+blizzard
+blizzards
+bloat
+bloated
+bloater
+bloating
+bloats
+blob
+blobs
+bloc
+block
+blockade
+blockaded
+blockades
+blockading
+blockage
+blockages
+blocked
+blocker
+blockers
+blockhouse
+blockhouses
+blocking
+blocks
+blocs
+bloke
+blokes
+blond
+blonde
+blondes
+blonds
+blood
+bloodbath
+blooded
+bloodhound
+bloodhounds
+bloodied
+bloodiest
+bloodless
+bloods
+bloodshed
+bloodshot
+bloodstain
+bloodstained
+bloodstains
+bloodstream
+bloody
+bloom
+bloomed
+bloomers
+blooming
+blooms
+blooper
+blossom
+blossomed
+blossoms
+blot
+blots
+blotted
+blotting
+blouse
+blouses
+blow
+blower
+blowers
+blowfish
+blowing
+blown
+blowout
+blows
+blowup
+blubber
+bludgeon
+bludgeoned
+bludgeoning
+bludgeons
+blue
+blueberries
+blueberry
+bluebird
+bluebirds
+bluebonnet
+bluebonnets
+bluefish
+blueness
+blueprint
+blueprints
+bluer
+blues
+bluest
+bluestocking
+bluff
+bluffing
+bluffs
+bluing
+bluish
+blunder
+blunderbuss
+blundered
+blundering
+blunderings
+blunders
+blunt
+blunted
+blunter
+bluntest
+blunting
+bluntly
+bluntness
+blunts
+blur
+blurb
+blurred
+blurring
+blurry
+blurs
+blurt
+blurted
+blurting
+blurts
+blush
+blushed
+blushes
+blushing
+bluster
+blustered
+blustering
+blusters
+blustery
+boa
+boar
+board
+boarded
+boarder
+boarders
+boarding
+boardinghouse
+boardinghouses
+boards
+boast
+boasted
+boaster
+boasters
+boastful
+boastfully
+boasting
+boastings
+boasts
+boat
+boater
+boaters
+boathouse
+boathouses
+boating
+boatload
+boatloads
+boatman
+boatmen
+boats
+boatsman
+boatsmen
+boatswain
+boatswains
+boatyard
+boatyards
+bob
+bobbed
+bobbin
+bobbing
+bobbins
+bobby
+bobolink
+bobolinks
+bobs
+bobwhite
+bobwhites
+bode
+bodes
+bodice
+bodied
+bodies
+bodily
+body
+bodybuilder
+bodybuilders
+bodybuilding
+bodyguard
+bodyguards
+bodyweight
+bog
+bogeymen
+bogged
+boggle
+boggled
+boggles
+boggling
+bogs
+bogus
+boil
+boiled
+boiler
+boilerplate
+boilers
+boiling
+boils
+boisterous
+boisterously
+bold
+bolder
+boldest
+boldface
+boldly
+boldness
+boll
+bolster
+bolstered
+bolstering
+bolsters
+bolt
+bolted
+bolting
+bolts
+bomb
+bombard
+bombarded
+bombarding
+bombardment
+bombards
+bombast
+bombastic
+bombed
+bomber
+bombers
+bombing
+bombings
+bombproof
+bombs
+bonanza
+bonanzas
+bond
+bondage
+bonded
+bonder
+bonders
+bonding
+bonds
+bondsman
+bondsmen
+bone
+boned
+boner
+boners
+bones
+bonfire
+bonfires
+bong
+boning
+bonnet
+bonneted
+bonnets
+bonny
+bonus
+bonuses
+bony
+boo
+boob
+booboo
+booby
+book
+bookcase
+bookcases
+booked
+booker
+bookers
+bookie
+bookies
+booking
+bookings
+bookish
+bookkeeper
+bookkeepers
+bookkeeping
+booklet
+booklets
+bookmark
+books
+bookseller
+booksellers
+bookshelf
+bookshelves
+bookstore
+bookstores
+bookworm
+boolean
+boom
+boomed
+boomerang
+boomerangs
+booming
+booms
+boon
+boor
+boorish
+boors
+boos
+boost
+boosted
+booster
+boosting
+boosts
+boot
+bootable
+booted
+booth
+booths
+booting
+bootleg
+bootlegged
+bootlegger
+bootleggers
+bootlegging
+bootlegs
+boots
+bootstrap
+bootstrapped
+bootstrapping
+bootstraps
+booty
+booze
+borate
+borates
+borax
+bordello
+bordellos
+border
+bordered
+bordering
+borderings
+borderland
+borderlands
+borderline
+borders
+bore
+bored
+boredom
+borer
+bores
+boric
+boring
+born
+borne
+boron
+borough
+boroughs
+borrow
+borrowed
+borrower
+borrowers
+borrowing
+borrows
+bosom
+bosoms
+boss
+bossed
+bosses
+bosun
+botanical
+botanist
+botanists
+botany
+botch
+botched
+botcher
+botchers
+botches
+botching
+both
+bother
+bothered
+bothering
+bothers
+bothersome
+bottle
+bottled
+bottleneck
+bottlenecks
+bottler
+bottlers
+bottles
+bottling
+bottom
+bottomed
+bottoming
+bottomless
+bottoms
+botulinus
+botulism
+bouffant
+bough
+boughs
+bought
+boulder
+boulders
+boulevard
+boulevards
+bounce
+bounced
+bouncer
+bounces
+bouncing
+bouncy
+bound
+boundaries
+boundary
+bounded
+bounden
+bounding
+boundless
+boundlessness
+bounds
+bounteous
+bounteously
+bounties
+bountiful
+bounty
+bouquet
+bouquets
+bourbon
+bourgeois
+bourgeoisie
+boustrophedon
+boustrophedonic
+bout
+boutique
+bouts
+bovine
+bovines
+bow
+bowdlerize
+bowdlerized
+bowdlerizes
+bowdlerizing
+bowed
+bowel
+bowels
+bower
+bowers
+bowing
+bowl
+bowled
+bowler
+bowlers
+bowline
+bowlines
+bowling
+bowls
+bowman
+bows
+bowstring
+bowstrings
+box
+boxcar
+boxcars
+boxed
+boxer
+boxers
+boxes
+boxing
+boxtop
+boxtops
+boxwood
+boy
+boycott
+boycotted
+boycotts
+boyfriend
+boyfriends
+boyhood
+boyish
+boyishness
+boys
+bra
+brace
+braced
+bracelet
+bracelets
+braces
+bracing
+bracket
+bracketed
+bracketing
+brackets
+brackish
+brae
+braes
+brag
+bragged
+bragger
+bragging
+brags
+braid
+braided
+braiding
+braids
+brain
+brainchild
+brained
+braining
+brains
+brainstem
+brainstems
+brainstorm
+brainstorms
+brainwash
+brainwashed
+brainwashes
+brainwashing
+brainy
+brake
+braked
+brakeman
+brakes
+braking
+bramble
+brambles
+brambly
+bran
+branch
+branched
+branches
+branching
+branchings
+brand
+branded
+branding
+brandish
+brandishes
+brandishing
+brands
+brandy
+brandywine
+bras
+brash
+brashly
+brashness
+brass
+brasses
+brassiere
+brassy
+brat
+brats
+bravado
+brave
+braved
+bravely
+braveness
+braver
+bravery
+braves
+bravest
+braving
+bravo
+bravos
+brawl
+brawler
+brawling
+brawn
+bray
+brayed
+brayer
+braying
+brays
+braze
+brazed
+brazen
+brazenly
+brazenness
+brazes
+brazier
+braziers
+brazing
+breach
+breached
+breacher
+breachers
+breaches
+breaching
+bread
+breadboard
+breadboards
+breadbox
+breadboxes
+breaded
+breading
+breads
+breadth
+breadwinner
+breadwinners
+break
+breakable
+breakables
+breakage
+breakaway
+breakdown
+breakdowns
+breaker
+breakers
+breakfast
+breakfasted
+breakfaster
+breakfasters
+breakfasting
+breakfasts
+breaking
+breakpoint
+breakpoints
+breaks
+breakthrough
+breakthroughes
+breakthroughs
+breakup
+breakwater
+breakwaters
+breast
+breasted
+breasts
+breastwork
+breastworks
+breath
+breathable
+breathe
+breathed
+breather
+breathers
+breathes
+breathing
+breathless
+breathlessly
+breaths
+breathtaking
+breathtakingly
+breathy
+bred
+breech
+breeches
+breed
+breeder
+breeding
+breeds
+breeze
+breezes
+breezily
+breezy
+bremsstrahlung
+brethren
+breve
+brevet
+breveted
+breveting
+brevets
+brevity
+brew
+brewed
+brewer
+breweries
+brewers
+brewery
+brewing
+brews
+briar
+briars
+bribe
+bribed
+briber
+bribers
+bribery
+bribes
+bribing
+brick
+brickbat
+bricked
+bricker
+bricklayer
+bricklayers
+bricklaying
+bricks
+bridal
+bride
+bridegroom
+brides
+bridesmaid
+bridesmaids
+bridge
+bridgeable
+bridged
+bridgehead
+bridgeheads
+bridges
+bridgework
+bridging
+bridle
+bridled
+bridles
+bridling
+brief
+briefcase
+briefcases
+briefed
+briefer
+briefest
+briefing
+briefings
+briefly
+briefness
+briefs
+brier
+brig
+brigade
+brigades
+brigadier
+brigadiers
+brigantine
+bright
+brighten
+brightened
+brightener
+brighteners
+brightening
+brightens
+brighter
+brightest
+brightly
+brightness
+brigs
+brilliance
+brilliancy
+brilliant
+brilliantly
+brim
+brimful
+brimmed
+brimming
+brimstone
+brindle
+brindled
+brine
+bring
+bringer
+bringers
+bringing
+brings
+brink
+brinkmanship
+briny
+brisk
+brisker
+briskly
+briskness
+bristle
+bristled
+bristles
+bristling
+britches
+brittle
+brittleness
+broach
+broached
+broaches
+broaching
+broad
+broadband
+broadcast
+broadcasted
+broadcaster
+broadcasters
+broadcasting
+broadcastings
+broadcasts
+broaden
+broadened
+broadener
+broadeners
+broadening
+broadenings
+broadens
+broader
+broadest
+broadly
+broadness
+broadside
+brocade
+brocaded
+broccoli
+brochure
+brochures
+broil
+broiled
+broiler
+broilers
+broiling
+broils
+broke
+broken
+brokenly
+brokenness
+broker
+brokerage
+brokers
+bromide
+bromides
+bromine
+bronchi
+bronchial
+bronchiole
+bronchioles
+bronchitis
+bronchus
+bronze
+bronzed
+bronzes
+brooch
+brooches
+brood
+brooder
+brooding
+broods
+brook
+brooked
+brooks
+broom
+brooms
+broomstick
+broomsticks
+broth
+brothel
+brothels
+brother
+brotherhood
+brotherliness
+brotherly
+brothers
+brought
+brow
+browbeat
+browbeaten
+browbeating
+browbeats
+brown
+browned
+browner
+brownest
+brownie
+brownies
+browning
+brownish
+brownness
+browns
+brows
+browse
+browsing
+bruise
+bruised
+bruises
+bruising
+brunch
+brunches
+brunette
+brunt
+brush
+brushed
+brushes
+brushfire
+brushfires
+brushing
+brushlike
+brushy
+brusque
+brusquely
+brutal
+brutalities
+brutality
+brutalize
+brutalized
+brutalizes
+brutalizing
+brutally
+brute
+brutes
+brutish
+bubble
+bubbled
+bubbles
+bubbling
+bubbly
+buck
+buckboard
+buckboards
+bucked
+bucket
+buckets
+bucking
+buckle
+buckled
+buckler
+buckles
+buckling
+bucks
+buckshot
+buckskin
+buckskins
+buckwheat
+bucolic
+bud
+budded
+buddies
+budding
+buddy
+budge
+budged
+budges
+budget
+budgetary
+budgeted
+budgeter
+budgeters
+budgeting
+budgets
+budging
+buds
+buff
+buffalo
+buffaloes
+buffer
+buffered
+buffering
+buffers
+buffet
+buffeted
+buffeting
+buffetings
+buffets
+buffoon
+buffoons
+buffs
+bug
+bugaboo
+bugeyed
+bugged
+bugger
+buggers
+buggies
+bugging
+buggy
+bugle
+bugled
+bugler
+bugles
+bugling
+bugs
+build
+builder
+builders
+building
+buildings
+builds
+buildup
+buildups
+built
+builtin
+bulb
+bulbs
+bulge
+bulged
+bulging
+bulk
+bulked
+bulkhead
+bulkheads
+bulks
+bulky
+bull
+bulldog
+bulldogs
+bulldoze
+bulldozed
+bulldozer
+bulldozes
+bulldozing
+bulled
+bullet
+bulletin
+bulletins
+bullets
+bullfrog
+bullied
+bullies
+bulling
+bullion
+bullish
+bullock
+bulls
+bullseye
+bully
+bullying
+bulwark
+bum
+bumble
+bumblebee
+bumblebees
+bumbled
+bumbler
+bumblers
+bumbles
+bumbling
+bummed
+bumming
+bump
+bumped
+bumper
+bumpers
+bumping
+bumps
+bumptious
+bumptiously
+bumptiousness
+bums
+bun
+bunch
+bunched
+bunches
+bunching
+bundle
+bundled
+bundles
+bundling
+bungalow
+bungalows
+bungle
+bungled
+bungler
+bunglers
+bungles
+bungling
+bunion
+bunions
+bunk
+bunker
+bunkered
+bunkers
+bunkhouse
+bunkhouses
+bunkmate
+bunkmates
+bunks
+bunnies
+bunny
+buns
+bunt
+bunted
+bunter
+bunters
+bunting
+bunts
+buoy
+buoyancy
+buoyant
+buoyed
+buoys
+burden
+burdened
+burdening
+burdens
+burdensome
+bureau
+bureaucracies
+bureaucracy
+bureaucrat
+bureaucratic
+bureaucrats
+bureaus
+burgeon
+burgeoned
+burgeoning
+burgess
+burgesses
+burgher
+burghers
+burglar
+burglaries
+burglarize
+burglarized
+burglarizes
+burglarizing
+burglarproof
+burglarproofed
+burglarproofing
+burglarproofs
+burglars
+burglary
+burial
+buried
+buries
+burl
+burlesque
+burlesques
+burly
+burn
+burned
+burner
+burners
+burning
+burningly
+burnings
+burnish
+burnished
+burnishes
+burnishing
+burns
+burnt
+burntly
+burntness
+burp
+burped
+burping
+burps
+burrow
+burrowed
+burrower
+burrowing
+burrows
+burrs
+bursa
+bursitis
+burst
+burstiness
+bursting
+bursts
+bursty
+bury
+burying
+bus
+busboy
+busboys
+bused
+buses
+bush
+bushel
+bushels
+bushes
+bushing
+bushwhack
+bushwhacked
+bushwhacking
+bushwhacks
+bushy
+busied
+busier
+busiest
+busily
+business
+businesses
+businesslike
+businessman
+businessmen
+busing
+buss
+bussed
+busses
+bussing
+bust
+bustard
+bustards
+busted
+buster
+bustle
+bustling
+busts
+busy
+but
+butane
+butcher
+butchered
+butchers
+butchery
+butler
+butlers
+butt
+butte
+butted
+butter
+butterball
+buttercup
+buttered
+butterer
+butterers
+butterfat
+butterflies
+butterfly
+buttering
+buttermilk
+butternut
+butters
+buttery
+buttes
+butting
+buttock
+buttocks
+button
+buttoned
+buttonhole
+buttonholes
+buttoning
+buttons
+buttress
+buttressed
+buttresses
+buttressing
+butts
+butyl
+butyrate
+buxom
+buy
+buyer
+buyers
+buying
+buys
+buzz
+buzzards
+buzzed
+buzzer
+buzzes
+buzzing
+buzzword
+buzzwords
+buzzy
+by
+bye
+bygone
+bylaw
+bylaws
+byline
+bylines
+bypass
+bypassed
+bypasses
+bypassing
+byproduct
+byproducts
+bystander
+bystanders
+byte
+bytes
+byway
+byways
+byword
+bywords
+cab
+cabal
+cabana
+cabaret
+cabbage
+cabbages
+cabdriver
+cabin
+cabinet
+cabinets
+cabins
+cable
+cabled
+cables
+cabling
+caboose
+cabs
+cache
+cached
+caches
+caching
+cackle
+cackled
+cackler
+cackles
+cackling
+cacti
+cactus
+cadaver
+cadence
+cadenced
+cadres
+cafe
+cafes
+cafeteria
+cage
+caged
+cager
+cagers
+cages
+caging
+caiman
+cairn
+cajole
+cajoled
+cajoles
+cajoling
+cake
+caked
+cakes
+caking
+calamities
+calamitous
+calamity
+calcify
+calcium
+calculate
+calculated
+calculates
+calculating
+calculation
+calculations
+calculative
+calculator
+calculators
+calculi
+calculus
+caldera
+calendar
+calendars
+calf
+calfskin
+caliber
+calibers
+calibrate
+calibrated
+calibrates
+calibrating
+calibration
+calibrations
+calico
+caliph
+caliphs
+call
+callable
+called
+caller
+callers
+calling
+calliope
+callous
+calloused
+callously
+callousness
+calls
+callus
+calm
+calmed
+calmer
+calmest
+calming
+calmingly
+calmly
+calmness
+calms
+caloric
+calorie
+calories
+calorimeter
+calorimetric
+calorimetry
+calumny
+calve
+calves
+calypso
+cam
+came
+camel
+camels
+camera
+cameraman
+cameramen
+cameras
+camouflage
+camouflaged
+camouflages
+camouflaging
+camp
+campaign
+campaigned
+campaigner
+campaigners
+campaigning
+campaigns
+camped
+camper
+campers
+campfire
+campground
+camping
+camps
+campsite
+campus
+campuses
+can
+canal
+canals
+canaries
+canary
+cancel
+canceled
+canceling
+cancellation
+cancellations
+cancels
+cancer
+cancerous
+cancers
+candid
+candidacy
+candidate
+candidates
+candidly
+candidness
+candied
+candies
+candle
+candlelight
+candler
+candles
+candlestick
+candlesticks
+candor
+candy
+cane
+caner
+canine
+canister
+canker
+cankerworm
+cannabis
+canned
+cannel
+canner
+canners
+cannery
+cannibal
+cannibalize
+cannibalized
+cannibalizes
+cannibalizing
+cannibals
+canning
+cannister
+cannisters
+cannon
+cannonball
+cannons
+cannot
+canny
+canoe
+canoes
+canon
+canonic
+canonical
+canonicalization
+canonicalize
+canonicalized
+canonicalizes
+canonicalizing
+canonically
+canonicals
+canons
+canopy
+cans
+cant
+cantaloupe
+cantankerous
+cantankerously
+canteen
+cantilever
+canto
+canton
+cantons
+cantor
+cantors
+canvas
+canvases
+canvass
+canvassed
+canvasser
+canvassers
+canvasses
+canvassing
+canyon
+canyons
+cap
+capabilities
+capability
+capable
+capably
+capacious
+capaciously
+capaciousness
+capacitance
+capacitances
+capacities
+capacitive
+capacitor
+capacitors
+capacity
+cape
+caper
+capers
+capes
+capillary
+capita
+capital
+capitalism
+capitalist
+capitalists
+capitalization
+capitalizations
+capitalize
+capitalized
+capitalizer
+capitalizers
+capitalizes
+capitalizing
+capitally
+capitals
+capitol
+capitols
+capped
+capping
+caprice
+capricious
+capriciously
+capriciousness
+caps
+capstan
+capstone
+capsule
+captain
+captained
+captaining
+captains
+caption
+captions
+captivate
+captivated
+captivates
+captivating
+captivation
+captive
+captives
+captivity
+captor
+captors
+capture
+captured
+capturer
+capturers
+captures
+capturing
+capybara
+car
+caramel
+caravan
+caravans
+caraway
+carbohydrate
+carbolic
+carbon
+carbonate
+carbonates
+carbonation
+carbonic
+carbonization
+carbonize
+carbonized
+carbonizer
+carbonizers
+carbonizes
+carbonizing
+carbons
+carborundum
+carbuncle
+carcass
+carcasses
+carcinogen
+carcinogenic
+carcinoma
+card
+cardboard
+carder
+cardiac
+cardinal
+cardinalities
+cardinality
+cardinally
+cardinals
+cardiology
+cardiovascular
+cards
+care
+cared
+careen
+career
+careers
+carefree
+careful
+carefully
+carefulness
+careless
+carelessly
+carelessness
+cares
+caress
+caressed
+caresser
+caresses
+caressing
+caret
+caretaker
+cargo
+cargoes
+caribou
+caricature
+caring
+carload
+carnage
+carnal
+carnation
+carnival
+carnivals
+carnivorous
+carnivorously
+carol
+carols
+carp
+carpenter
+carpenters
+carpentry
+carpet
+carpeted
+carpeting
+carpets
+carport
+carriage
+carriages
+carried
+carrier
+carriers
+carries
+carrion
+carrot
+carrots
+carry
+carrying
+carryover
+carryovers
+cars
+cart
+carted
+cartel
+carter
+carters
+cartilage
+carting
+cartographer
+cartographic
+cartography
+carton
+cartons
+cartoon
+cartoons
+cartridge
+cartridges
+carts
+cartwheel
+carve
+carved
+carver
+carves
+carving
+carvings
+cascadable
+cascade
+cascaded
+cascades
+cascading
+case
+cased
+casement
+casements
+cases
+casework
+cash
+cashed
+casher
+cashers
+cashes
+cashew
+cashier
+cashiers
+cashing
+cashmere
+casing
+casings
+casino
+cask
+casket
+caskets
+casks
+casserole
+casseroles
+cassette
+cassock
+cast
+caste
+caster
+casters
+castes
+castigate
+casting
+castle
+castled
+castles
+castor
+casts
+casual
+casually
+casualness
+casuals
+casualties
+casualty
+cat
+cataclysmic
+catalog
+cataloged
+cataloger
+cataloging
+catalogs
+catalyst
+catalysts
+catalytic
+catapult
+cataract
+catastrophe
+catastrophes
+catastrophic
+catch
+catchable
+catcher
+catchers
+catches
+catching
+categorical
+categorically
+categories
+categorization
+categorize
+categorized
+categorizer
+categorizers
+categorizes
+categorizing
+category
+cater
+catered
+caterer
+catering
+caterpillar
+caterpillars
+caters
+cathedral
+cathedrals
+catheter
+catheters
+cathode
+cathodes
+catlike
+catnip
+cats
+catsup
+cattail
+cattle
+cattleman
+cattlemen
+caucus
+caught
+cauldron
+cauldrons
+cauliflower
+caulk
+causal
+causality
+causally
+causation
+causations
+cause
+caused
+causer
+causes
+causeway
+causeways
+causing
+caustic
+causticly
+caustics
+caution
+cautioned
+cautioner
+cautioners
+cautioning
+cautionings
+cautions
+cautious
+cautiously
+cautiousness
+cavalier
+cavalierly
+cavalierness
+cavalry
+cave
+caveat
+caveats
+caved
+caveman
+cavemen
+cavern
+cavernous
+caverns
+caves
+caviar
+cavil
+caving
+cavities
+cavity
+caw
+cawing
+cease
+ceased
+ceaseless
+ceaselessly
+ceaselessness
+ceases
+ceasing
+cedar
+cede
+ceded
+ceding
+ceiling
+ceilings
+celebrate
+celebrated
+celebrates
+celebrating
+celebration
+celebrations
+celebrities
+celebrity
+celerity
+celery
+celestial
+celestially
+cell
+cellar
+cellars
+celled
+cellist
+cellists
+cellophane
+cells
+cellular
+cellulose
+cement
+cemented
+cementing
+cements
+cemeteries
+cemetery
+censor
+censored
+censoring
+censors
+censorship
+censure
+censured
+censurer
+censures
+census
+censuses
+cent
+centaur
+centenary
+centennial
+center
+centered
+centering
+centerpiece
+centerpieces
+centers
+centigrade
+centimeter
+centimeters
+centipede
+centipedes
+central
+centralism
+centralist
+centralization
+centralize
+centralized
+centralizes
+centralizing
+centrally
+centrifugal
+centrifuge
+centripetal
+centrist
+centroid
+cents
+centuries
+century
+ceramic
+cereal
+cereals
+cerebellum
+cerebral
+ceremonial
+ceremonially
+ceremonialness
+ceremonies
+ceremony
+certain
+certainly
+certainties
+certainty
+certifiable
+certificate
+certificates
+certification
+certifications
+certified
+certifier
+certifiers
+certifies
+certify
+certifying
+cessation
+cessations
+chafe
+chafer
+chaff
+chaffer
+chaffing
+chafing
+chagrin
+chain
+chained
+chaining
+chains
+chair
+chaired
+chairing
+chairlady
+chairman
+chairmen
+chairperson
+chairpersons
+chairs
+chairwoman
+chairwomen
+chalice
+chalices
+chalk
+chalked
+chalking
+chalks
+challenge
+challenged
+challenger
+challengers
+challenges
+challenging
+chamber
+chambered
+chamberlain
+chamberlains
+chambermaid
+chameleon
+champagne
+champion
+championed
+championing
+champions
+championship
+championships
+chance
+chanced
+chancellor
+chancery
+chances
+chancing
+chandelier
+chandeliers
+change
+changeability
+changeable
+changeably
+changed
+changeover
+changer
+changers
+changes
+changing
+channel
+channeled
+channeling
+channelled
+channeller
+channellers
+channelling
+channels
+chant
+chanted
+chanter
+chanticleer
+chanticleers
+chanting
+chants
+chaos
+chaotic
+chap
+chapel
+chapels
+chaperon
+chaperone
+chaperoned
+chaplain
+chaplains
+chaps
+chapter
+chapters
+char
+character
+characteristic
+characteristically
+characteristics
+characterizable
+characterization
+characterizations
+characterize
+characterized
+characterizer
+characterizers
+characterizes
+characterizing
+characters
+charcoal
+charcoaled
+charge
+chargeable
+charged
+charger
+chargers
+charges
+charging
+chariot
+chariots
+charisma
+charismatic
+charitable
+charitableness
+charities
+charity
+charm
+charmed
+charmer
+charmers
+charming
+charmingly
+charms
+chars
+chart
+chartable
+charted
+charter
+chartered
+chartering
+charters
+charting
+chartings
+chartreuse
+charts
+chase
+chased
+chaser
+chasers
+chases
+chasing
+chasm
+chasms
+chassis
+chaste
+chastely
+chasteness
+chastise
+chastised
+chastiser
+chastisers
+chastises
+chastising
+chastity
+chat
+chateau
+chateaus
+chattel
+chatter
+chattered
+chatterer
+chattering
+chatters
+chatting
+chatty
+chauffeur
+chauffeured
+cheap
+cheapen
+cheapened
+cheapening
+cheapens
+cheaper
+cheapest
+cheaply
+cheapness
+cheat
+cheated
+cheater
+cheaters
+cheating
+cheats
+check
+checkable
+checkbook
+checkbooks
+checked
+checker
+checkerboard
+checkerboarded
+checkerboarding
+checkers
+checking
+checklist
+checkout
+checkpoint
+checkpoints
+checks
+checksum
+checksummed
+checksumming
+checksums
+checkup
+cheek
+cheekbone
+cheeks
+cheeky
+cheer
+cheered
+cheerer
+cheerful
+cheerfully
+cheerfulness
+cheerily
+cheeriness
+cheering
+cheerleader
+cheerless
+cheerlessly
+cheerlessness
+cheers
+cheery
+cheese
+cheesecloth
+cheeses
+cheesy
+cheetah
+chef
+chefs
+chemical
+chemically
+chemicals
+chemise
+chemist
+chemistries
+chemistry
+chemists
+cherish
+cherished
+cherishes
+cherishing
+cherries
+cherry
+cherub
+cherubim
+cherubs
+chess
+chest
+chestnut
+chestnuts
+chests
+chew
+chewed
+chewer
+chewers
+chewing
+chews
+chic
+chicanery
+chick
+chickadee
+chickadees
+chicken
+chickens
+chicks
+chide
+chided
+chides
+chiding
+chief
+chiefly
+chiefs
+chieftain
+chieftains
+chiffon
+child
+childbirth
+childhood
+childish
+childishly
+childishness
+childlike
+children
+chili
+chill
+chilled
+chiller
+chillers
+chillier
+chilliness
+chilling
+chillingly
+chills
+chilly
+chime
+chimera
+chimes
+chimney
+chimneys
+chimpanzee
+chin
+chink
+chinked
+chinks
+chinned
+chinner
+chinners
+chinning
+chins
+chintz
+chip
+chipmunk
+chipmunks
+chips
+chiropractor
+chirp
+chirped
+chirping
+chirps
+chisel
+chiseled
+chiseler
+chisels
+chit
+chivalrous
+chivalrously
+chivalrousness
+chivalry
+chlorine
+chloroform
+chlorophyll
+chloroplast
+chloroplasts
+chock
+chocks
+chocolate
+chocolates
+choice
+choices
+choicest
+choir
+choirs
+choke
+choked
+choker
+chokers
+chokes
+choking
+cholera
+choose
+chooser
+choosers
+chooses
+choosing
+chop
+chopped
+chopper
+choppers
+chopping
+choppy
+chops
+choral
+chord
+chordate
+chorded
+chording
+chords
+chore
+choreograph
+choreography
+chores
+choring
+chortle
+chorus
+chorused
+choruses
+chose
+chosen
+chowder
+christen
+christened
+christening
+christens
+chromatogram
+chromatograph
+chromatography
+chrome
+chromium
+chromosphere
+chronic
+chronicle
+chronicled
+chronicler
+chroniclers
+chronicles
+chronograph
+chronography
+chronological
+chronologically
+chronologies
+chronology
+chrysanthemum
+chubbier
+chubbiest
+chubbiness
+chubby
+chuck
+chuckle
+chuckled
+chuckles
+chucks
+chum
+chunk
+chunks
+chunky
+church
+churches
+churchgoer
+churchgoing
+churchly
+churchman
+churchmen
+churchwoman
+churchwomen
+churchyard
+churchyards
+churn
+churned
+churning
+churns
+chute
+chutes
+chutzpah
+cicada
+cider
+cigar
+cigarette
+cigarettes
+cigars
+cilia
+cinder
+cinders
+cinema
+cinematic
+cinnamon
+cipher
+ciphers
+ciphertext
+ciphertexts
+circa
+circle
+circled
+circles
+circlet
+circling
+circuit
+circuitous
+circuitously
+circuitry
+circuits
+circulant
+circular
+circularity
+circularly
+circulate
+circulated
+circulates
+circulating
+circulation
+circumcise
+circumcision
+circumference
+circumflex
+circumlocution
+circumlocutions
+circumnavigate
+circumnavigated
+circumnavigates
+circumpolar
+circumscribe
+circumscribed
+circumscribing
+circumscription
+circumspect
+circumspection
+circumspectly
+circumstance
+circumstanced
+circumstances
+circumstantial
+circumstantially
+circumvent
+circumventable
+circumvented
+circumventing
+circumvents
+circus
+circuses
+cistern
+cisterns
+citadel
+citadels
+citation
+citations
+cite
+cited
+cites
+cities
+citing
+citizen
+citizens
+citizenship
+citrus
+city
+cityscape
+citywide
+civet
+civic
+civics
+civil
+civilian
+civilians
+civility
+civilization
+civilizations
+civilize
+civilized
+civilizes
+civilizing
+civilly
+clad
+cladding
+claim
+claimable
+claimant
+claimants
+claimed
+claiming
+claims
+clairvoyant
+clairvoyantly
+clam
+clamber
+clambered
+clambering
+clambers
+clamor
+clamored
+clamoring
+clamorous
+clamors
+clamp
+clamped
+clamping
+clamps
+clams
+clan
+clandestine
+clang
+clanged
+clanging
+clangs
+clank
+clannish
+clap
+clapboard
+clapping
+claps
+clarification
+clarifications
+clarified
+clarifies
+clarify
+clarifying
+clarinet
+clarity
+clash
+clashed
+clashes
+clashing
+clasp
+clasped
+clasping
+clasps
+class
+classed
+classes
+classic
+classical
+classically
+classics
+classifiable
+classification
+classifications
+classified
+classifier
+classifiers
+classifies
+classify
+classifying
+classmate
+classmates
+classroom
+classrooms
+classy
+clatter
+clattered
+clattering
+clause
+clauses
+claustrophobia
+claustrophobic
+claw
+clawed
+clawing
+claws
+clay
+clays
+clean
+cleaned
+cleaner
+cleaners
+cleanest
+cleaning
+cleanliness
+cleanly
+cleanness
+cleans
+cleanse
+cleansed
+cleanser
+cleansers
+cleanses
+cleansing
+cleanup
+clear
+clearance
+clearances
+cleared
+clearer
+clearest
+clearing
+clearings
+clearly
+clearness
+clears
+cleavage
+cleave
+cleaved
+cleaver
+cleavers
+cleaves
+cleaving
+cleft
+clefts
+clemency
+clement
+clench
+clenched
+clenches
+clergy
+clergyman
+clergymen
+clerical
+clerk
+clerked
+clerking
+clerks
+clever
+cleverer
+cleverest
+cleverly
+cleverness
+cliche
+cliches
+click
+clicked
+clicking
+clicks
+client
+clientele
+clients
+cliff
+cliffs
+climate
+climates
+climatic
+climatically
+climatology
+climax
+climaxed
+climaxes
+climb
+climbed
+climber
+climbers
+climbing
+climbs
+clime
+climes
+clinch
+clinched
+clincher
+clinches
+cling
+clinging
+clings
+clinic
+clinical
+clinically
+clinician
+clinics
+clink
+clinked
+clinker
+clip
+clipboard
+clipped
+clipper
+clippers
+clipping
+clippings
+clips
+clique
+cliques
+clitoris
+cloak
+cloakroom
+cloaks
+clobber
+clobbered
+clobbering
+clobbers
+clock
+clocked
+clocker
+clockers
+clocking
+clockings
+clocks
+clockwatcher
+clockwise
+clockwork
+clod
+clods
+clog
+clogged
+clogging
+clogs
+cloister
+cloisters
+clone
+cloned
+clones
+cloning
+close
+closed
+closely
+closeness
+closenesses
+closer
+closers
+closes
+closest
+closet
+closeted
+closets
+closeup
+closing
+closure
+closures
+clot
+cloth
+clothe
+clothed
+clothes
+clotheshorse
+clothesline
+clothing
+clotting
+cloture
+cloud
+cloudburst
+clouded
+cloudier
+cloudiest
+cloudiness
+clouding
+cloudless
+clouds
+cloudy
+clout
+clove
+clover
+cloves
+clown
+clowning
+clowns
+club
+clubbed
+clubbing
+clubhouse
+clubroom
+clubs
+cluck
+clucked
+clucking
+clucks
+clue
+clues
+clump
+clumped
+clumping
+clumps
+clumsily
+clumsiness
+clumsy
+clung
+cluster
+clustered
+clustering
+clusterings
+clusters
+clutch
+clutched
+clutches
+clutching
+clutter
+cluttered
+cluttering
+clutters
+coach
+coached
+coacher
+coaches
+coaching
+coachman
+coachmen
+coagulate
+coal
+coalesce
+coalesced
+coalesces
+coalescing
+coalition
+coals
+coarse
+coarsely
+coarsen
+coarsened
+coarseness
+coarser
+coarsest
+coast
+coastal
+coasted
+coaster
+coasters
+coasting
+coastline
+coasts
+coat
+coated
+coating
+coatings
+coats
+coattail
+coauthor
+coax
+coaxed
+coaxer
+coaxes
+coaxial
+coaxing
+cobalt
+cobble
+cobbler
+cobblers
+cobblestone
+cobra
+cobweb
+cobwebs
+coca
+cocaine
+cock
+cocked
+cocking
+cockpit
+cockroach
+cocks
+cocktail
+cocktails
+cocky
+coco
+cocoa
+coconut
+coconuts
+cocoon
+cocoons
+cod
+coddle
+code
+coded
+codeine
+coder
+coders
+codes
+codeword
+codewords
+codfish
+codicil
+codification
+codifications
+codified
+codifier
+codifiers
+codifies
+codify
+codifying
+coding
+codings
+codpiece
+coed
+coeditor
+coeducation
+coefficient
+coefficients
+coequal
+coerce
+coerced
+coerces
+coercible
+coercing
+coercion
+coercive
+coexist
+coexisted
+coexistence
+coexisting
+coexists
+cofactor
+coffee
+coffeecup
+coffeepot
+coffees
+coffer
+coffers
+coffin
+coffins
+cog
+cogent
+cogently
+cogitate
+cogitated
+cogitates
+cogitating
+cogitation
+cognac
+cognition
+cognitive
+cognitively
+cognizance
+cognizant
+cogs
+cohabitation
+cohabitations
+cohere
+cohered
+coherence
+coherent
+coherently
+coheres
+cohering
+cohesion
+cohesive
+cohesively
+cohesiveness
+cohort
+coil
+coiled
+coiling
+coils
+coin
+coinage
+coincide
+coincided
+coincidence
+coincidences
+coincident
+coincidental
+coincides
+coinciding
+coined
+coiner
+coining
+coins
+coke
+cokes
+colander
+cold
+colder
+coldest
+coldly
+coldness
+colds
+colicky
+coliform
+coliseum
+collaborate
+collaborated
+collaborates
+collaborating
+collaboration
+collaborations
+collaborative
+collaborator
+collaborators
+collagen
+collapse
+collapsed
+collapses
+collapsible
+collapsing
+collar
+collarbone
+collared
+collaring
+collars
+collate
+collateral
+colleague
+colleagues
+collect
+collected
+collectible
+collecting
+collection
+collections
+collective
+collectively
+collectives
+collector
+collectors
+collects
+college
+colleges
+collegian
+collegiate
+collide
+collided
+collides
+colliding
+collie
+collies
+collision
+collisions
+colloidal
+colloquia
+colloquial
+colloquium
+colloquy
+collusion
+colon
+colonel
+colonels
+colonial
+colonially
+colonials
+colonies
+colonist
+colonists
+colonization
+colonize
+colonized
+colonizer
+colonizers
+colonizes
+colonizing
+colons
+colony
+color
+colored
+colorer
+colorers
+colorful
+coloring
+colorings
+colorless
+colors
+colossal
+colt
+colts
+column
+columnize
+columnized
+columnizes
+columnizing
+columns
+comb
+combat
+combatant
+combatants
+combated
+combating
+combative
+combats
+combed
+comber
+combers
+combination
+combinational
+combinations
+combinator
+combinatorial
+combinatorially
+combinatoric
+combinatorics
+combinators
+combine
+combined
+combines
+combing
+combings
+combining
+combs
+combustible
+combustion
+come
+comeback
+comedian
+comedians
+comedic
+comedies
+comedy
+comeliness
+comely
+comer
+comers
+comes
+comestible
+comet
+cometary
+comets
+comfort
+comfortabilities
+comfortability
+comfortable
+comfortably
+comforted
+comforter
+comforters
+comforting
+comfortingly
+comforts
+comic
+comical
+comically
+comics
+coming
+comings
+comma
+command
+commandant
+commandants
+commanded
+commandeer
+commander
+commanders
+commanding
+commandingly
+commandment
+commandments
+commando
+commands
+commas
+commemorate
+commemorated
+commemorates
+commemorating
+commemoration
+commemorative
+commence
+commenced
+commencement
+commencements
+commences
+commencing
+commend
+commendation
+commendations
+commended
+commending
+commends
+commensurate
+comment
+commentaries
+commentary
+commentator
+commentators
+commented
+commenting
+comments
+commerce
+commercial
+commercially
+commercialness
+commercials
+commission
+commissioned
+commissioner
+commissioners
+commissioning
+commissions
+commit
+commitment
+commitments
+commits
+committed
+committee
+committeeman
+committeemen
+committees
+committeewoman
+committeewomen
+committing
+commodities
+commodity
+commodore
+commodores
+common
+commonalities
+commonality
+commoner
+commoners
+commonest
+commonly
+commonness
+commonplace
+commonplaces
+commons
+commonwealth
+commonwealths
+commotion
+communal
+communally
+commune
+communes
+communicant
+communicants
+communicate
+communicated
+communicates
+communicating
+communication
+communications
+communicative
+communicator
+communicators
+communion
+communist
+communists
+communities
+community
+commutative
+commutativity
+commute
+commuted
+commuter
+commuters
+commutes
+commuting
+compact
+compacted
+compacter
+compactest
+compacting
+compaction
+compactly
+compactness
+compactor
+compactors
+compacts
+companies
+companion
+companionable
+companions
+companionship
+company
+comparability
+comparable
+comparably
+comparative
+comparatively
+comparatives
+comparator
+comparators
+compare
+compared
+compares
+comparing
+comparison
+comparisons
+compartment
+compartmentalize
+compartmentalized
+compartmentalizes
+compartmentalizing
+compartmented
+compartments
+compass
+compassion
+compassionate
+compassionately
+compatibilities
+compatibility
+compatible
+compatibles
+compatibly
+compel
+compelled
+compelling
+compellingly
+compels
+compendium
+compensate
+compensated
+compensates
+compensating
+compensation
+compensations
+compensatory
+compete
+competed
+competence
+competency
+competent
+competently
+competes
+competing
+competition
+competitions
+competitive
+competitively
+competitor
+competitors
+compilation
+compilations
+compile
+compiled
+compiler
+compilers
+compiles
+compiling
+complacency
+complain
+complained
+complainer
+complainers
+complaining
+complains
+complaint
+complaints
+complement
+complementary
+complemented
+complementer
+complementers
+complementing
+complements
+complete
+completed
+completely
+completeness
+completes
+completing
+completion
+completions
+complex
+complexes
+complexion
+complexities
+complexity
+complexly
+compliance
+compliant
+complicate
+complicated
+complicates
+complicating
+complication
+complications
+complicator
+complicators
+complicity
+complied
+compliment
+complimentary
+complimented
+complimenter
+complimenters
+complimenting
+compliments
+comply
+complying
+component
+componentry
+components
+componentwise
+compose
+composed
+composedly
+composer
+composers
+composes
+composing
+composite
+composites
+composition
+compositional
+compositions
+compost
+composure
+compound
+compounded
+compounding
+compounds
+comprehend
+comprehended
+comprehending
+comprehends
+comprehensibility
+comprehensible
+comprehension
+comprehensive
+comprehensively
+compress
+compressed
+compresses
+compressible
+compressing
+compression
+compressive
+compressor
+comprise
+comprised
+comprises
+comprising
+compromise
+compromised
+compromiser
+compromisers
+compromises
+compromising
+compromisingly
+comptroller
+comptrollers
+compulsion
+compulsions
+compulsive
+compulsory
+compunction
+computability
+computable
+computation
+computational
+computationally
+computations
+compute
+computed
+computer
+computerize
+computerized
+computerizes
+computerizing
+computers
+computes
+computing
+comrade
+comradely
+comrades
+comradeship
+con
+concatenate
+concatenated
+concatenates
+concatenating
+concatenation
+concatenations
+concave
+conceal
+concealed
+concealer
+concealers
+concealing
+concealment
+conceals
+concede
+conceded
+concedes
+conceding
+conceit
+conceited
+conceits
+conceivable
+conceivably
+conceive
+conceived
+conceives
+conceiving
+concentrate
+concentrated
+concentrates
+concentrating
+concentration
+concentrations
+concentrator
+concentrators
+concentric
+concept
+conception
+conceptions
+concepts
+conceptual
+conceptualization
+conceptualizations
+conceptualize
+conceptualized
+conceptualizes
+conceptualizing
+conceptually
+concern
+concerned
+concernedly
+concerning
+concerns
+concert
+concerted
+concertmaster
+concerto
+concerts
+concession
+concessions
+conciliate
+conciliatory
+concise
+concisely
+conciseness
+conclave
+conclude
+concluded
+concludes
+concluding
+conclusion
+conclusions
+conclusive
+conclusively
+concoct
+concomitant
+concord
+concordant
+concourse
+concrete
+concretely
+concreteness
+concretes
+concretion
+concubine
+concur
+concurred
+concurrence
+concurrencies
+concurrency
+concurrent
+concurrently
+concurring
+concurs
+concussion
+condemn
+condemnation
+condemnations
+condemned
+condemner
+condemners
+condemning
+condemns
+condensation
+condense
+condensed
+condenser
+condenses
+condensing
+condescend
+condescending
+condition
+conditional
+conditionally
+conditionals
+conditioned
+conditioner
+conditioners
+conditioning
+conditions
+condom
+condone
+condoned
+condones
+condoning
+conduce
+conducive
+conduciveness
+conduct
+conductance
+conducted
+conducting
+conduction
+conductive
+conductivity
+conductor
+conductors
+conducts
+conduit
+cone
+cones
+confectionery
+confederacy
+confederate
+confederates
+confederation
+confederations
+confer
+conferee
+conference
+conferences
+conferred
+conferrer
+conferrers
+conferring
+confers
+confess
+confessed
+confesses
+confessing
+confession
+confessions
+confessor
+confessors
+confidant
+confidants
+confide
+confided
+confidence
+confidences
+confident
+confidential
+confidentiality
+confidentially
+confidently
+confides
+confiding
+confidingly
+configurable
+configuration
+configurations
+configure
+configured
+configures
+configuring
+confine
+confined
+confinement
+confinements
+confiner
+confines
+confining
+confirm
+confirmation
+confirmations
+confirmatory
+confirmed
+confirming
+confirms
+confiscate
+confiscated
+confiscates
+confiscating
+confiscation
+confiscations
+conflagration
+conflict
+conflicted
+conflicting
+conflicts
+confluent
+confocal
+conform
+conformal
+conformance
+conformed
+conforming
+conformity
+conforms
+confound
+confounded
+confounding
+confounds
+confront
+confrontation
+confrontations
+confronted
+confronter
+confronters
+confronting
+confronts
+confuse
+confused
+confuser
+confusers
+confuses
+confusing
+confusingly
+confusion
+confusions
+congenial
+congenially
+congenital
+congest
+congested
+congestion
+congestive
+conglomerate
+congratulate
+congratulated
+congratulation
+congratulations
+congratulatory
+congregate
+congregated
+congregates
+congregating
+congregation
+congregations
+congress
+congresses
+congressional
+congressionally
+congressman
+congressmen
+congresswoman
+congresswomen
+congruence
+congruent
+conic
+conifer
+coniferous
+conjecture
+conjectured
+conjectures
+conjecturing
+conjoined
+conjugal
+conjugate
+conjunct
+conjuncted
+conjunction
+conjunctions
+conjunctive
+conjunctively
+conjuncts
+conjuncture
+conjure
+conjured
+conjurer
+conjures
+conjuring
+connect
+connected
+connectedness
+connecting
+connection
+connectionless
+connections
+connective
+connectives
+connectivity
+connector
+connectors
+connects
+connivance
+connive
+connoisseur
+connoisseurs
+connotation
+connotative
+connote
+connoted
+connotes
+connoting
+connubial
+conquer
+conquerable
+conquered
+conquerer
+conquerers
+conquering
+conqueror
+conquerors
+conquers
+conquest
+conquests
+conscience
+consciences
+conscientious
+conscientiously
+conscious
+consciously
+consciousness
+conscript
+conscription
+consecrate
+consecration
+consecutive
+consecutively
+consensual
+consensus
+consent
+consented
+consenter
+consenters
+consenting
+consents
+consequence
+consequences
+consequent
+consequential
+consequentialities
+consequentiality
+consequently
+consequents
+conservation
+conservationist
+conservationists
+conservations
+conservatism
+conservative
+conservatively
+conservatives
+conservator
+conserve
+conserved
+conserves
+conserving
+consider
+considerable
+considerably
+considerate
+considerately
+consideration
+considerations
+considered
+considering
+considers
+consign
+consigned
+consigning
+consigns
+consist
+consisted
+consistency
+consistent
+consistently
+consisting
+consists
+consolable
+consolation
+consolations
+console
+consoled
+consoler
+consolers
+consoles
+consolidate
+consolidated
+consolidates
+consolidating
+consolidation
+consoling
+consolingly
+consonant
+consonants
+consort
+consorted
+consorting
+consortium
+consorts
+conspicuous
+conspicuously
+conspiracies
+conspiracy
+conspirator
+conspirators
+conspire
+conspired
+conspires
+conspiring
+constable
+constables
+constancy
+constant
+constantly
+constants
+constellation
+constellations
+consternation
+constituencies
+constituency
+constituent
+constituents
+constitute
+constituted
+constitutes
+constituting
+constitution
+constitutional
+constitutionality
+constitutionally
+constitutions
+constitutive
+constrain
+constrained
+constraining
+constrains
+constraint
+constraints
+constrict
+construct
+constructed
+constructibility
+constructible
+constructing
+construction
+constructions
+constructive
+constructively
+constructor
+constructors
+constructs
+construe
+construed
+construing
+consul
+consular
+consulate
+consulates
+consuls
+consult
+consultant
+consultants
+consultation
+consultations
+consultative
+consulted
+consulting
+consults
+consumable
+consume
+consumed
+consumer
+consumers
+consumes
+consuming
+consummate
+consummated
+consummately
+consummation
+consumption
+consumptions
+consumptive
+consumptively
+contact
+contacted
+contacting
+contacts
+contagion
+contagious
+contagiously
+contain
+containable
+contained
+container
+containers
+containing
+containment
+containments
+contains
+contaminate
+contaminated
+contaminates
+contaminating
+contamination
+contemplate
+contemplated
+contemplates
+contemplating
+contemplation
+contemplations
+contemplative
+contemporaries
+contemporariness
+contemporary
+contempt
+contemptible
+contemptuous
+contemptuously
+contend
+contended
+contender
+contenders
+contending
+contends
+content
+contented
+contenting
+contention
+contentions
+contently
+contentment
+contents
+contest
+contestable
+contestant
+contested
+contester
+contesters
+contesting
+contests
+context
+contexts
+contextual
+contextually
+contiguity
+contiguous
+contiguously
+continent
+continental
+continentally
+continents
+contingencies
+contingency
+contingent
+contingents
+continual
+continually
+continuance
+continuances
+continuation
+continuations
+continue
+continued
+continues
+continuing
+continuities
+continuity
+continuous
+continuously
+continuum
+contortions
+contour
+contoured
+contouring
+contours
+contraband
+contraception
+contraceptive
+contract
+contracted
+contracting
+contraction
+contractions
+contractor
+contractors
+contracts
+contractual
+contractually
+contradict
+contradicted
+contradicting
+contradiction
+contradictions
+contradictory
+contradicts
+contradistinction
+contradistinctions
+contrapositive
+contrapositives
+contraption
+contraptions
+contrariness
+contrary
+contrast
+contrasted
+contraster
+contrasters
+contrasting
+contrastingly
+contrasts
+contribute
+contributed
+contributes
+contributing
+contribution
+contributions
+contributor
+contributorily
+contributors
+contributory
+contrite
+contrition
+contrivance
+contrivances
+contrive
+contrived
+contriver
+contrives
+contriving
+control
+controllability
+controllable
+controllably
+controlled
+controller
+controllers
+controlling
+controls
+controversial
+controversies
+controversy
+controvertible
+contumacious
+contumacy
+conundrum
+conundrums
+convalescent
+convect
+convene
+convened
+convenes
+convenience
+conveniences
+convenient
+conveniently
+convening
+convent
+convention
+conventional
+conventionally
+conventions
+convents
+converge
+converged
+convergence
+convergent
+converges
+converging
+conversant
+conversantly
+conversation
+conversational
+conversationally
+conversations
+converse
+conversed
+conversely
+converses
+conversing
+conversion
+conversions
+convert
+converted
+converter
+converters
+convertibility
+convertible
+converting
+converts
+convex
+convey
+conveyance
+conveyances
+conveyed
+conveyer
+conveyers
+conveying
+conveyor
+conveys
+convict
+convicted
+convicting
+conviction
+convictions
+convicts
+convince
+convinced
+convincer
+convincers
+convinces
+convincing
+convincingly
+convivial
+convoke
+convoluted
+convolution
+convoy
+convoyed
+convoying
+convoys
+convulse
+convulsion
+convulsions
+coo
+cooing
+cook
+cookbook
+cooked
+cookery
+cookie
+cookies
+cooking
+cooks
+cooky
+cool
+cooled
+cooler
+coolers
+coolest
+coolie
+coolies
+cooling
+coolly
+coolness
+cools
+coon
+coons
+coop
+cooped
+cooper
+cooperate
+cooperated
+cooperates
+cooperating
+cooperation
+cooperations
+cooperative
+cooperatively
+cooperatives
+cooperator
+cooperators
+coopers
+coops
+coordinate
+coordinated
+coordinates
+coordinating
+coordination
+coordinations
+coordinator
+coordinators
+cop
+cope
+coped
+copes
+copied
+copier
+copiers
+copies
+coping
+copings
+copious
+copiously
+copiousness
+coplanar
+copper
+copperhead
+coppers
+copra
+coprocessor
+cops
+copse
+copy
+copying
+copyright
+copyrightable
+copyrighted
+copyrights
+copywriter
+coquette
+coral
+cord
+corded
+corder
+cordial
+cordiality
+cordially
+cords
+core
+cored
+corer
+corers
+cores
+coriander
+coring
+cork
+corked
+corker
+corkers
+corking
+corks
+corkscrew
+cormorant
+corn
+cornea
+corner
+cornered
+corners
+cornerstone
+cornerstones
+cornet
+cornfield
+cornfields
+corning
+cornmeal
+corns
+cornstarch
+cornucopia
+corny
+corollaries
+corollary
+coronaries
+coronary
+coronation
+coroner
+coronet
+coronets
+coroutine
+coroutines
+corporal
+corporals
+corporate
+corporately
+corporation
+corporations
+corps
+corpse
+corpses
+corpulent
+corpus
+corpuscular
+corral
+correct
+correctable
+corrected
+correcting
+correction
+corrections
+corrective
+correctively
+correctives
+correctly
+correctness
+corrector
+corrects
+correlate
+correlated
+correlates
+correlating
+correlation
+correlations
+correlative
+correspond
+corresponded
+correspondence
+correspondences
+correspondent
+correspondents
+corresponding
+correspondingly
+corresponds
+corridor
+corridors
+corrigenda
+corrigendum
+corrigible
+corroborate
+corroborated
+corroborates
+corroborating
+corroboration
+corroborations
+corroborative
+corrode
+corrosion
+corrosive
+corrugate
+corrupt
+corrupted
+corrupter
+corruptible
+corrupting
+corruption
+corruptions
+corrupts
+corset
+cortex
+cortical
+cosine
+cosines
+cosmetic
+cosmetics
+cosmic
+cosmology
+cosmopolitan
+cosmos
+cosponsor
+cost
+costed
+costing
+costly
+costs
+costume
+costumed
+costumer
+costumes
+costuming
+cosy
+cot
+cotangent
+cotillion
+cots
+cottage
+cottager
+cottages
+cotton
+cottonmouth
+cottons
+cottonseed
+cottonwood
+cotyledon
+cotyledons
+couch
+couched
+couches
+couching
+cougar
+cough
+coughed
+coughing
+coughs
+could
+coulomb
+council
+councillor
+councillors
+councilman
+councilmen
+councils
+councilwoman
+councilwomen
+counsel
+counseled
+counseling
+counselled
+counselling
+counsellor
+counsellors
+counselor
+counselors
+counsels
+count
+countable
+countably
+counted
+countenance
+counter
+counteract
+counteracted
+counteracting
+counteractive
+counterargument
+counterattack
+counterbalance
+counterclockwise
+countered
+counterexample
+counterexamples
+counterfeit
+counterfeited
+counterfeiter
+counterfeiting
+counterflow
+countering
+counterintuitive
+counterman
+countermeasure
+countermeasures
+countermen
+counterpart
+counterparts
+counterpoint
+counterpointing
+counterpoise
+counterproductive
+counterproposal
+counterrevolution
+counters
+countersink
+countersunk
+countess
+counties
+counting
+countless
+countries
+country
+countryman
+countrymen
+countryside
+countrywide
+counts
+county
+countywide
+couple
+coupled
+coupler
+couplers
+couples
+coupling
+couplings
+coupon
+coupons
+courage
+courageous
+courageously
+courier
+couriers
+course
+coursed
+courser
+courses
+coursing
+court
+courted
+courteous
+courteously
+courter
+courters
+courtesan
+courtesies
+courtesy
+courthouse
+courthouses
+courtier
+courtiers
+courting
+courtly
+courtroom
+courtrooms
+courts
+courtship
+courtyard
+courtyards
+cousin
+cousins
+covalent
+covariant
+cove
+covenant
+covenants
+cover
+coverable
+coverage
+covered
+covering
+coverings
+coverlet
+coverlets
+covers
+covert
+covertly
+coves
+covet
+coveted
+coveting
+covetous
+covetousness
+covets
+cow
+coward
+cowardice
+cowardly
+cowboy
+cowboys
+cowed
+cower
+cowered
+cowerer
+cowerers
+cowering
+coweringly
+cowers
+cowherd
+cowhide
+cowing
+cowl
+cowlick
+cowling
+cowls
+coworker
+cows
+cowslip
+cowslips
+coyote
+coyotes
+coypu
+cozier
+coziness
+cozy
+crab
+crabapple
+crabs
+crack
+cracked
+cracker
+crackers
+cracking
+crackle
+crackled
+crackles
+crackling
+crackpot
+cracks
+cradle
+cradled
+cradles
+craft
+crafted
+crafter
+craftiness
+crafting
+crafts
+craftsman
+craftsmen
+craftspeople
+craftsperson
+crafty
+crag
+craggy
+crags
+cram
+cramming
+cramp
+cramps
+crams
+cranberries
+cranberry
+crane
+cranes
+crania
+cranium
+crank
+crankcase
+cranked
+crankier
+crankiest
+crankily
+cranking
+cranks
+crankshaft
+cranky
+cranny
+crash
+crashed
+crasher
+crashers
+crashes
+crashing
+crass
+crate
+crater
+craters
+crates
+cravat
+cravats
+crave
+craved
+craven
+craves
+craving
+crawl
+crawled
+crawler
+crawlers
+crawling
+crawls
+crayon
+craze
+crazed
+crazes
+crazier
+craziest
+crazily
+craziness
+crazing
+crazy
+creak
+creaked
+creaking
+creaks
+creaky
+cream
+creamed
+creamer
+creamers
+creamery
+creaming
+creams
+creamy
+crease
+creased
+creases
+creasing
+create
+created
+creates
+creating
+creation
+creations
+creative
+creatively
+creativeness
+creativity
+creator
+creators
+creature
+creatures
+credence
+credential
+credibility
+credible
+credibly
+credit
+creditable
+creditably
+credited
+crediting
+creditor
+creditors
+credits
+credulity
+credulous
+credulousness
+creed
+creeds
+creek
+creeks
+creep
+creeper
+creepers
+creeping
+creeps
+creepy
+cremate
+cremated
+cremates
+cremating
+cremation
+cremations
+crematory
+crepe
+crept
+crescent
+crescents
+crest
+crested
+crestfallen
+crests
+cretin
+crevice
+crevices
+crew
+crewcut
+crewed
+crewing
+crews
+crib
+cribs
+cricket
+crickets
+cried
+crier
+criers
+cries
+crime
+crimes
+criminal
+criminally
+criminals
+criminate
+crimson
+crimsoning
+cringe
+cringed
+cringes
+cringing
+cripple
+crippled
+cripples
+crippling
+crises
+crisis
+crisp
+crisply
+crispness
+crisscross
+criteria
+criterion
+critic
+critical
+critically
+criticism
+criticisms
+criticize
+criticized
+criticizes
+criticizing
+critics
+critique
+critiques
+critiquing
+critter
+croak
+croaked
+croaking
+croaks
+crochet
+crochets
+crock
+crockery
+crocks
+crocodile
+crocus
+croft
+crook
+crooked
+crooks
+crop
+cropped
+cropper
+croppers
+cropping
+crops
+cross
+crossable
+crossbar
+crossbars
+crossed
+crosser
+crossers
+crosses
+crossing
+crossings
+crossly
+crossover
+crossovers
+crosspoint
+crossroad
+crosstalk
+crosswalk
+crossword
+crosswords
+crotch
+crotchety
+crouch
+crouched
+crouching
+crow
+crowd
+crowded
+crowder
+crowding
+crowds
+crowed
+crowing
+crown
+crowned
+crowning
+crowns
+crows
+crucial
+crucially
+crucible
+crucified
+crucifies
+crucifix
+crucifixion
+crucify
+crucifying
+crud
+cruddy
+crude
+crudely
+crudeness
+cruder
+crudest
+cruel
+crueler
+cruelest
+cruelly
+cruelty
+cruise
+cruiser
+cruisers
+cruises
+cruising
+crumb
+crumble
+crumbled
+crumbles
+crumbling
+crumbly
+crumbs
+crummy
+crumple
+crumpled
+crumples
+crumpling
+crunch
+crunched
+crunches
+crunchier
+crunchiest
+crunching
+crunchy
+crusade
+crusader
+crusaders
+crusades
+crusading
+crush
+crushable
+crushed
+crusher
+crushers
+crushes
+crushing
+crushingly
+crust
+crustacean
+crustaceans
+crusts
+crutch
+crutches
+crux
+cruxes
+cry
+crying
+cryogenic
+crypt
+cryptanalysis
+cryptanalyst
+cryptanalytic
+cryptic
+cryptogram
+cryptographer
+cryptographic
+cryptographically
+cryptography
+cryptologist
+cryptology
+crystal
+crystalline
+crystallize
+crystallized
+crystallizes
+crystallizing
+crystals
+cub
+cubbyhole
+cube
+cubed
+cubes
+cubic
+cubs
+cuckoo
+cuckoos
+cucumber
+cucumbers
+cuddle
+cuddled
+cuddly
+cudgel
+cudgels
+cue
+cued
+cues
+cuff
+cufflink
+cuffs
+cuisine
+culinary
+cull
+culled
+culler
+culling
+culls
+culminate
+culminated
+culminates
+culminating
+culmination
+culpa
+culpable
+culprit
+culprits
+cult
+cultivable
+cultivate
+cultivated
+cultivates
+cultivating
+cultivation
+cultivations
+cultivator
+cultivators
+cults
+cultural
+culturally
+culture
+cultured
+cultures
+culturing
+cumbersome
+cumulative
+cumulatively
+cunnilingus
+cunning
+cunningly
+cup
+cupboard
+cupboards
+cupful
+cupped
+cupping
+cups
+curable
+curably
+curb
+curbing
+curbs
+curd
+curdle
+cure
+cured
+cures
+curfew
+curfews
+curing
+curiosities
+curiosity
+curious
+curiouser
+curiousest
+curiously
+curl
+curled
+curler
+curlers
+curlicue
+curling
+curls
+curly
+currant
+currants
+currencies
+currency
+current
+currently
+currentness
+currents
+curricular
+curriculum
+curriculums
+curried
+curries
+curry
+currying
+curs
+curse
+cursed
+curses
+cursing
+cursive
+cursor
+cursorily
+cursors
+cursory
+curt
+curtail
+curtailed
+curtails
+curtain
+curtained
+curtains
+curtate
+curtly
+curtness
+curtsies
+curtsy
+curvaceous
+curvature
+curve
+curved
+curves
+curvilinear
+curving
+cushion
+cushioned
+cushioning
+cushions
+cusp
+cusps
+custard
+custodial
+custodian
+custodians
+custody
+custom
+customarily
+customary
+customer
+customers
+customizable
+customization
+customizations
+customize
+customized
+customizer
+customizers
+customizes
+customizing
+customs
+cut
+cutaneous
+cutback
+cute
+cutest
+cutlass
+cutlet
+cutoff
+cutout
+cutover
+cuts
+cutter
+cutters
+cutthroat
+cutting
+cuttingly
+cuttings
+cuttlefish
+cyanide
+cybernetic
+cybernetics
+cyberspace
+cycle
+cycled
+cycles
+cyclic
+cyclically
+cycling
+cycloid
+cycloidal
+cycloids
+cyclone
+cyclones
+cyclotron
+cyclotrons
+cylinder
+cylinders
+cylindrical
+cymbal
+cymbals
+cynic
+cynical
+cynically
+cypress
+cyst
+cysts
+cytology
+cytoplasm
+czar
+dabble
+dabbled
+dabbler
+dabbles
+dabbling
+dactyl
+dactylic
+dad
+daddy
+dads
+daemon
+daemons
+daffodil
+daffodils
+dagger
+dahlia
+dailies
+daily
+daintily
+daintiness
+dainty
+dairy
+daisies
+daisy
+dale
+dales
+dam
+damage
+damaged
+damager
+damagers
+damages
+damaging
+damask
+dame
+damming
+damn
+damnation
+damned
+damning
+damns
+damp
+dampen
+dampens
+damper
+damping
+dampness
+dams
+damsel
+damsels
+dance
+danced
+dancer
+dancers
+dances
+dancing
+dandelion
+dandelions
+dandy
+danger
+dangerous
+dangerously
+dangers
+dangle
+dangled
+dangles
+dangling
+dare
+dared
+darer
+darers
+dares
+daresay
+daring
+daringly
+dark
+darken
+darker
+darkest
+darkly
+darkness
+darkroom
+darling
+darlings
+darn
+darned
+darner
+darning
+darns
+dart
+darted
+darter
+darting
+darts
+dash
+dashboard
+dashed
+dasher
+dashers
+dashes
+dashing
+dashingly
+data
+database
+databases
+datagram
+datagrams
+date
+dated
+dateline
+dater
+dates
+dating
+dative
+datum
+daughter
+daughterly
+daughters
+daunt
+daunted
+dauntless
+dawn
+dawned
+dawning
+dawns
+day
+daybreak
+daydream
+daydreaming
+daydreams
+daylight
+daylights
+days
+daytime
+daze
+dazed
+dazzle
+dazzled
+dazzler
+dazzles
+dazzling
+dazzlingly
+deacon
+deacons
+deactivate
+dead
+deaden
+deadline
+deadlines
+deadlock
+deadlocked
+deadlocking
+deadlocks
+deadly
+deadness
+deadwood
+deaf
+deafen
+deafer
+deafest
+deafness
+deal
+dealer
+dealers
+dealership
+dealing
+dealings
+deallocate
+deallocated
+deallocating
+deallocation
+deallocations
+deals
+dealt
+dean
+deans
+dear
+dearer
+dearest
+dearly
+dearness
+dearth
+dearths
+death
+deathbed
+deathly
+deaths
+debacle
+debar
+debase
+debatable
+debate
+debated
+debater
+debaters
+debates
+debating
+debauch
+debauchery
+debilitate
+debilitated
+debilitates
+debilitating
+debility
+debit
+debited
+debrief
+debris
+debt
+debtor
+debts
+debug
+debugged
+debugger
+debuggers
+debugging
+debugs
+debunk
+debutante
+decade
+decadence
+decadent
+decadently
+decades
+decal
+decathlon
+decay
+decayed
+decaying
+decays
+decease
+deceased
+deceases
+deceasing
+decedent
+deceit
+deceitful
+deceitfully
+deceitfulness
+deceive
+deceived
+deceiver
+deceivers
+deceives
+deceiving
+decelerate
+decelerated
+decelerates
+decelerating
+deceleration
+decencies
+decency
+decennial
+decent
+decently
+decentralization
+decentralized
+deception
+deceptions
+deceptive
+deceptively
+decertify
+decibel
+decidability
+decidable
+decide
+decided
+decidedly
+decides
+deciding
+deciduous
+decimal
+decimals
+decimate
+decimated
+decimates
+decimating
+decimation
+decipher
+deciphered
+decipherer
+deciphering
+deciphers
+decision
+decisions
+decisive
+decisively
+decisiveness
+deck
+decked
+decking
+deckings
+decks
+declaration
+declarations
+declarative
+declaratively
+declaratives
+declarator
+declaratory
+declare
+declared
+declarer
+declarers
+declares
+declaring
+declassify
+declination
+declinations
+decline
+declined
+decliner
+decliners
+declines
+declining
+decode
+decoded
+decoder
+decoders
+decodes
+decoding
+decodings
+decolletage
+decollimate
+decompile
+decomposability
+decomposable
+decompose
+decomposed
+decomposes
+decomposing
+decomposition
+decompositions
+decompress
+decompression
+decorate
+decorated
+decorates
+decorating
+decoration
+decorations
+decorative
+decorum
+decouple
+decoupled
+decouples
+decoupling
+decoy
+decoys
+decrease
+decreased
+decreases
+decreasing
+decreasingly
+decree
+decreed
+decreeing
+decrees
+decrement
+decremented
+decrementing
+decrements
+decrypt
+decrypted
+decrypting
+decryption
+decrypts
+dedicate
+dedicated
+dedicates
+dedicating
+dedication
+deduce
+deduced
+deducer
+deduces
+deducible
+deducing
+deduct
+deducted
+deductible
+deducting
+deduction
+deductions
+deductive
+deed
+deeded
+deeding
+deeds
+deem
+deemed
+deeming
+deemphasize
+deemphasized
+deemphasizes
+deemphasizing
+deems
+deep
+deepen
+deepened
+deepening
+deepens
+deeper
+deepest
+deeply
+deeps
+deer
+deface
+default
+defaulted
+defaulter
+defaulting
+defaults
+defeat
+defeated
+defeating
+defeats
+defecate
+defect
+defected
+defecting
+defection
+defections
+defective
+defects
+defend
+defendant
+defendants
+defended
+defender
+defenders
+defending
+defends
+defenestrate
+defenestrated
+defenestrates
+defenestrating
+defenestration
+defense
+defenseless
+defenses
+defensible
+defensive
+defer
+deference
+deferment
+deferments
+deferrable
+deferred
+deferrer
+deferrers
+deferring
+defers
+defiance
+defiant
+defiantly
+deficiencies
+deficiency
+deficient
+deficit
+deficits
+defied
+defies
+defile
+defiling
+definable
+define
+defined
+definer
+defines
+defining
+definite
+definitely
+definiteness
+definition
+definitional
+definitions
+definitive
+deflate
+deflater
+deflect
+defocus
+deforest
+deforestation
+deform
+deformation
+deformations
+deformed
+deformities
+deformity
+defraud
+defray
+defrost
+deftly
+defunct
+defy
+defying
+degeneracy
+degenerate
+degenerated
+degenerates
+degenerating
+degeneration
+degenerative
+degradable
+degradation
+degradations
+degrade
+degraded
+degrades
+degrading
+degree
+degrees
+dehumidify
+dehydrate
+deify
+deign
+deigned
+deigning
+deigns
+deities
+deity
+dejected
+dejectedly
+delay
+delayed
+delaying
+delays
+delegate
+delegated
+delegates
+delegating
+delegation
+delegations
+delete
+deleted
+deleter
+deleterious
+deletes
+deleting
+deletion
+deletions
+deliberate
+deliberated
+deliberately
+deliberateness
+deliberates
+deliberating
+deliberation
+deliberations
+deliberative
+deliberator
+deliberators
+delicacies
+delicacy
+delicate
+delicately
+delicatessen
+delicious
+deliciously
+delight
+delighted
+delightedly
+delightful
+delightfully
+delighting
+delights
+delimit
+delimitation
+delimited
+delimiter
+delimiters
+delimiting
+delimits
+delineament
+delineate
+delineated
+delineates
+delineating
+delineation
+delinquency
+delinquent
+delirious
+deliriously
+delirium
+deliver
+deliverable
+deliverables
+deliverance
+delivered
+deliverer
+deliverers
+deliveries
+delivering
+delivers
+delivery
+dell
+dells
+delta
+deltas
+delude
+deluded
+deludes
+deluding
+deluge
+deluged
+deluges
+delusion
+delusions
+deluxe
+delve
+delves
+delving
+demagnify
+demagogue
+demand
+demanded
+demander
+demanding
+demandingly
+demands
+demarcate
+demeanor
+demented
+demerit
+demigod
+demise
+demo
+democracies
+democracy
+democrat
+democratic
+democratically
+democrats
+demodulate
+demodulator
+demographic
+demolish
+demolished
+demolishes
+demolition
+demon
+demoniac
+demonic
+demons
+demonstrable
+demonstrate
+demonstrated
+demonstrates
+demonstrating
+demonstration
+demonstrations
+demonstrative
+demonstratively
+demonstrator
+demonstrators
+demoralize
+demoralized
+demoralizes
+demoralizing
+demote
+demountable
+demultiplex
+demultiplexed
+demultiplexer
+demultiplexers
+demultiplexing
+demur
+demythologize
+den
+denature
+deniable
+denial
+denials
+denied
+denier
+denies
+denigrate
+denigrated
+denigrates
+denigrating
+denizen
+denominate
+denomination
+denominations
+denominator
+denominators
+denotable
+denotation
+denotational
+denotationally
+denotations
+denotative
+denote
+denoted
+denotes
+denoting
+denounce
+denounced
+denounces
+denouncing
+dens
+dense
+densely
+denseness
+denser
+densest
+densities
+density
+dent
+dental
+dentally
+dented
+denting
+dentist
+dentistry
+dentists
+dents
+denture
+denude
+denumerable
+denunciate
+denunciation
+deny
+denying
+deodorant
+deoxyribonucleic
+depart
+departed
+departing
+department
+departmental
+departments
+departs
+departure
+departures
+depend
+dependability
+dependable
+dependably
+depended
+dependence
+dependencies
+dependency
+dependent
+dependently
+dependents
+depending
+depends
+depict
+depicted
+depicting
+depicts
+deplete
+depleted
+depletes
+depleting
+depletion
+depletions
+deplorable
+deplore
+deplored
+deplores
+deploring
+deploy
+deployed
+deploying
+deployment
+deployments
+deploys
+deport
+deportation
+deportee
+deportment
+depose
+deposed
+deposes
+deposit
+depositary
+deposited
+depositing
+deposition
+depositions
+depositor
+depositors
+depository
+deposits
+depot
+depots
+deprave
+depraved
+depravity
+deprecate
+depreciate
+depreciated
+depreciates
+depreciation
+depress
+depressed
+depresses
+depressing
+depression
+depressions
+deprivation
+deprivations
+deprive
+deprived
+deprives
+depriving
+depth
+depths
+deputies
+deputy
+dequeue
+dequeued
+dequeues
+dequeuing
+derail
+derailed
+derailing
+derails
+derby
+dereference
+deregulate
+deregulated
+deride
+derision
+derivable
+derivation
+derivations
+derivative
+derivatives
+derive
+derived
+derives
+deriving
+derogatory
+derrick
+derriere
+dervish
+descend
+descendant
+descendants
+descended
+descendent
+descender
+descenders
+descending
+descends
+descent
+descents
+describable
+describe
+described
+describer
+describes
+describing
+description
+descriptions
+descriptive
+descriptively
+descriptives
+descriptor
+descriptors
+descry
+desecrate
+desegregate
+desert
+deserted
+deserter
+deserters
+deserting
+desertion
+desertions
+deserts
+deserve
+deserved
+deserves
+deserving
+deservingly
+deservings
+desiderata
+desideratum
+design
+designate
+designated
+designates
+designating
+designation
+designations
+designator
+designators
+designed
+designer
+designers
+designing
+designs
+desirability
+desirable
+desirably
+desire
+desired
+desires
+desiring
+desirous
+desist
+desk
+desks
+desktop
+desolate
+desolately
+desolation
+desolations
+despair
+despaired
+despairing
+despairingly
+despairs
+despatch
+despatched
+desperado
+desperate
+desperately
+desperation
+despicable
+despise
+despised
+despises
+despising
+despite
+despoil
+despondent
+despot
+despotic
+despotism
+despots
+dessert
+desserts
+desiccate
+destabilize
+destination
+destinations
+destine
+destined
+destinies
+destiny
+destitute
+destitution
+destroy
+destroyed
+destroyer
+destroyers
+destroying
+destroys
+destruct
+destruction
+destructions
+destructive
+destructively
+destructiveness
+destructor
+destuff
+destuffing
+destuffs
+desuetude
+desultory
+desynchronize
+detach
+detached
+detacher
+detaches
+detaching
+detachment
+detachments
+detail
+detailed
+detailing
+details
+detain
+detained
+detaining
+detains
+detect
+detectable
+detectably
+detected
+detecting
+detection
+detections
+detective
+detectives
+detector
+detectors
+detects
+detente
+detention
+deter
+detergent
+deteriorate
+deteriorated
+deteriorates
+deteriorating
+deterioration
+determinable
+determinacy
+determinant
+determinants
+determinate
+determinately
+determination
+determinations
+determinative
+determine
+determined
+determiner
+determiners
+determines
+determining
+determinism
+deterministic
+deterministically
+deterred
+deterrent
+deterring
+detest
+detestable
+detested
+detour
+detract
+detractor
+detractors
+detracts
+detriment
+detrimental
+deuce
+deus
+deuterium
+devastate
+devastated
+devastates
+devastating
+devastation
+develop
+developed
+developer
+developers
+developing
+development
+developmental
+developments
+develops
+deviant
+deviants
+deviate
+deviated
+deviates
+deviating
+deviation
+deviations
+device
+devices
+devil
+devilish
+devilishly
+devils
+devious
+devise
+devised
+devises
+devising
+devisings
+devoid
+devolve
+devote
+devoted
+devotedly
+devotee
+devotees
+devotes
+devoting
+devotion
+devotions
+devour
+devoured
+devourer
+devours
+devout
+devoutly
+devoutness
+dew
+dewdrop
+dewdrops
+dewy
+dexterity
+diabetes
+diabetic
+diabolic
+diachronic
+diacritical
+diadem
+diagnosable
+diagnose
+diagnosed
+diagnoses
+diagnosing
+diagnosis
+diagnostic
+diagnostician
+diagnostics
+diagonal
+diagonally
+diagonals
+diagram
+diagrammable
+diagrammatic
+diagrammatically
+diagrammed
+diagrammer
+diagrammers
+diagramming
+diagrams
+dial
+dialect
+dialectic
+dialects
+dialed
+dialer
+dialers
+dialing
+dialog
+dialogs
+dialogue
+dialogues
+dials
+dialup
+dialysis
+diamagnetic
+diameter
+diameters
+diametric
+diametrically
+diamond
+diamonds
+diaper
+diapers
+diaphragm
+diaphragms
+diaries
+diarrhea
+diary
+diatribe
+diatribes
+dibble
+dice
+dichotomize
+dichotomy
+dickens
+dicky
+dictate
+dictated
+dictates
+dictating
+dictation
+dictations
+dictator
+dictatorial
+dictators
+dictatorship
+diction
+dictionaries
+dictionary
+dictum
+dictums
+did
+didactic
+diddle
+die
+died
+diehard
+dielectric
+dielectrics
+diem
+dies
+diesel
+diet
+dietary
+dieter
+dieters
+dietetic
+dietician
+dietitian
+dietitians
+diets
+differ
+differed
+difference
+differences
+different
+differentiable
+differential
+differentials
+differentiate
+differentiated
+differentiates
+differentiating
+differentiation
+differentiations
+differentiators
+differently
+differer
+differers
+differing
+differs
+difficult
+difficulties
+difficultly
+difficulty
+diffract
+diffuse
+diffused
+diffusely
+diffuser
+diffusers
+diffuses
+diffusible
+diffusing
+diffusion
+diffusions
+diffusive
+dig
+digest
+digested
+digestible
+digesting
+digestion
+digestive
+digests
+digger
+diggers
+digging
+diggings
+digit
+digital
+digitalis
+digitally
+digitization
+digitize
+digitized
+digitizes
+digitizing
+digits
+dignified
+dignify
+dignitary
+dignities
+dignity
+digram
+digress
+digressed
+digresses
+digressing
+digression
+digressions
+digressive
+digs
+dihedral
+dike
+dikes
+dilapidate
+dilatation
+dilate
+dilated
+dilates
+dilating
+dilation
+dildo
+dilemma
+dilemmas
+diligence
+diligent
+diligently
+dill
+dilogarithm
+dilute
+diluted
+dilutes
+diluting
+dilution
+dim
+dime
+dimension
+dimensional
+dimensionality
+dimensionally
+dimensioned
+dimensioning
+dimensions
+dimes
+diminish
+diminished
+diminishes
+diminishing
+diminution
+diminutive
+dimly
+dimmed
+dimmer
+dimmers
+dimmest
+dimming
+dimness
+dimple
+dims
+din
+dine
+dined
+diner
+diners
+dines
+ding
+dinghy
+dinginess
+dingo
+dingy
+dining
+dinner
+dinners
+dinnertime
+dinnerware
+dinosaur
+dint
+diode
+diodes
+diopter
+diorama
+dioxide
+dip
+diphtheria
+diphthong
+diploma
+diplomacy
+diplomas
+diplomat
+diplomatic
+diplomats
+dipole
+dipped
+dipper
+dippers
+dipping
+dippings
+dips
+dire
+direct
+directed
+directing
+direction
+directional
+directionality
+directionally
+directions
+directive
+directives
+directly
+directness
+director
+directorate
+directories
+directors
+directory
+directrices
+directrix
+directs
+dirge
+dirges
+dirt
+dirtier
+dirtiest
+dirtily
+dirtiness
+dirts
+dirty
+disabilities
+disability
+disable
+disabled
+disabler
+disablers
+disables
+disabling
+disadvantage
+disadvantageous
+disadvantages
+disaffected
+disaffection
+disagree
+disagreeable
+disagreed
+disagreeing
+disagreement
+disagreements
+disagrees
+disallow
+disallowed
+disallowing
+disallows
+disambiguate
+disambiguated
+disambiguates
+disambiguating
+disambiguation
+disambiguations
+disappear
+disappearance
+disappearances
+disappeared
+disappearing
+disappears
+disappoint
+disappointed
+disappointing
+disappointment
+disappointments
+disapproval
+disapprove
+disapproved
+disapproves
+disarm
+disarmament
+disarmed
+disarming
+disarms
+disassemble
+disassembled
+disassembles
+disassembling
+disassembly
+disaster
+disasters
+disastrous
+disastrously
+disband
+disbanded
+disbanding
+disbands
+disburse
+disbursed
+disbursement
+disbursements
+disburses
+disbursing
+disc
+discard
+discarded
+discarding
+discards
+discern
+discerned
+discernibility
+discernible
+discernibly
+discerning
+discerningly
+discernment
+discerns
+discharge
+discharged
+discharges
+discharging
+disciple
+disciples
+disciplinary
+discipline
+disciplined
+disciplines
+disciplining
+disclaim
+disclaimed
+disclaimer
+disclaims
+disclose
+disclosed
+discloses
+disclosing
+disclosure
+disclosures
+discomfort
+disconcert
+disconcerting
+disconcertingly
+disconnect
+disconnected
+disconnecting
+disconnection
+disconnects
+discontent
+discontented
+discontinuance
+discontinue
+discontinued
+discontinues
+discontinuities
+discontinuity
+discontinuous
+discord
+discordant
+discount
+discounted
+discounting
+discounts
+discourage
+discouraged
+discouragement
+discourages
+discouraging
+discourse
+discourses
+discover
+discovered
+discoverer
+discoverers
+discoveries
+discovering
+discovers
+discovery
+discredit
+discredited
+discreet
+discreetly
+discrepancies
+discrepancy
+discrete
+discretely
+discreteness
+discretion
+discretionary
+discriminant
+discriminate
+discriminated
+discriminates
+discriminating
+discrimination
+discriminatory
+discs
+discuss
+discussant
+discussed
+discusses
+discussing
+discussion
+discussions
+disdain
+disdaining
+disdains
+disease
+diseased
+diseases
+disembowel
+disengage
+disengaged
+disengages
+disengaging
+disentangle
+disentangling
+disfigure
+disfigured
+disfigures
+disfiguring
+disgorge
+disgrace
+disgraced
+disgraceful
+disgracefully
+disgraces
+disgruntle
+disgruntled
+disguise
+disguised
+disguises
+disgust
+disgusted
+disgustedly
+disgustful
+disgusting
+disgustingly
+disgusts
+dish
+dishearten
+disheartening
+dished
+dishes
+dishevel
+dishing
+dishonest
+dishonestly
+dishonesty
+dishonor
+dishonorable
+dishonored
+dishonoring
+dishonors
+dishwasher
+dishwashers
+dishwashing
+dishwater
+disillusion
+disillusioned
+disillusioning
+disillusionment
+disillusionments
+disinclined
+disingenuous
+disinterested
+disinterestedness
+disjoint
+disjointed
+disjointly
+disjointness
+disjunct
+disjunction
+disjunctions
+disjunctive
+disjunctively
+disjuncts
+disk
+diskette
+diskettes
+disks
+dislike
+disliked
+dislikes
+disliking
+dislocate
+dislocated
+dislocates
+dislocating
+dislocation
+dislocations
+dislodge
+dislodged
+dismal
+dismally
+dismay
+dismayed
+dismaying
+dismember
+dismembered
+dismemberment
+dismembers
+dismiss
+dismissal
+dismissals
+dismissed
+dismisser
+dismissers
+dismisses
+dismissing
+dismount
+dismounted
+dismounting
+dismounts
+disobedience
+disobedient
+disobey
+disobeyed
+disobeying
+disobeys
+disorder
+disordered
+disorderly
+disorders
+disorganized
+disown
+disowned
+disowning
+disowns
+disparage
+disparate
+disparities
+disparity
+dispassionate
+dispatch
+dispatched
+dispatcher
+dispatchers
+dispatches
+dispatching
+dispel
+dispell
+dispelled
+dispelling
+dispels
+dispensary
+dispensation
+dispense
+dispensed
+dispenser
+dispensers
+dispenses
+dispensing
+dispersal
+disperse
+dispersed
+disperses
+dispersing
+dispersion
+dispersions
+displace
+displaced
+displacement
+displacements
+displaces
+displacing
+display
+displayable
+displayed
+displayer
+displaying
+displays
+displease
+displeased
+displeases
+displeasing
+displeasure
+disposable
+disposal
+disposals
+dispose
+disposed
+disposer
+disposes
+disposing
+disposition
+dispositions
+dispossessed
+disproportionate
+disprove
+disproved
+disproves
+disproving
+dispute
+disputed
+disputer
+disputers
+disputes
+disputing
+disqualification
+disqualified
+disqualifies
+disqualify
+disqualifying
+disquiet
+disquieting
+disregard
+disregarded
+disregarding
+disregards
+disrespectful
+disrupt
+disrupted
+disrupting
+disruption
+disruptions
+disruptive
+disrupts
+dissatisfaction
+dissatisfactions
+dissatisfactory
+dissatisfied
+dissect
+dissects
+dissemble
+disseminate
+disseminated
+disseminates
+disseminating
+dissemination
+dissension
+dissensions
+dissent
+dissented
+dissenter
+dissenters
+dissenting
+dissents
+dissertation
+dissertations
+disservice
+dissident
+dissidents
+dissimilar
+dissimilarities
+dissimilarity
+dissipate
+dissipated
+dissipates
+dissipating
+dissipation
+dissociate
+dissociated
+dissociates
+dissociating
+dissociation
+dissolution
+dissolutions
+dissolve
+dissolved
+dissolves
+dissolving
+dissonant
+dissuade
+distaff
+distal
+distally
+distance
+distances
+distant
+distantly
+distaste
+distasteful
+distastefully
+distastes
+distemper
+distempered
+distempers
+distill
+distillation
+distilled
+distiller
+distillers
+distillery
+distilling
+distills
+distinct
+distinction
+distinctions
+distinctive
+distinctively
+distinctiveness
+distinctly
+distinctness
+distinguish
+distinguishable
+distinguished
+distinguishes
+distinguishing
+distort
+distorted
+distorting
+distortion
+distortions
+distorts
+distract
+distracted
+distracting
+distraction
+distractions
+distracts
+distraught
+distress
+distressed
+distresses
+distressing
+distribute
+distributed
+distributes
+distributing
+distribution
+distributional
+distributions
+distributive
+distributivity
+distributor
+distributors
+district
+districts
+distrust
+distrusted
+disturb
+disturbance
+disturbances
+disturbed
+disturber
+disturbing
+disturbingly
+disturbs
+disuse
+ditch
+ditches
+dither
+ditto
+ditty
+diurnal
+divan
+divans
+dive
+dived
+diver
+diverge
+diverged
+divergence
+divergences
+divergent
+diverges
+diverging
+divers
+diverse
+diversely
+diversification
+diversified
+diversifies
+diversify
+diversifying
+diversion
+diversionary
+diversions
+diversities
+diversity
+divert
+diverted
+diverting
+diverts
+dives
+divest
+divested
+divesting
+divestiture
+divests
+divide
+divided
+dividend
+dividends
+divider
+dividers
+divides
+dividing
+divine
+divinely
+diviner
+diving
+divining
+divinities
+divinity
+divisibility
+divisible
+division
+divisional
+divisions
+divisive
+divisor
+divisors
+divorce
+divorced
+divorcee
+divulge
+divulged
+divulges
+divulging
+dizziness
+dizzy
+do
+docile
+dock
+docked
+docket
+docks
+dockside
+dockyard
+doctor
+doctoral
+doctorate
+doctorates
+doctored
+doctors
+doctrinaire
+doctrinal
+doctrine
+doctrines
+document
+documentaries
+documentary
+documentation
+documentations
+documented
+documenter
+documenters
+documenting
+documents
+dodecahedra
+dodecahedral
+dodecahedron
+dodge
+dodged
+dodger
+dodgers
+dodging
+doe
+doer
+doers
+does
+dog
+dogged
+doggedly
+doggedness
+dogging
+doghouse
+dogma
+dogmas
+dogmatic
+dogmatism
+dogs
+doing
+doings
+doldrum
+dole
+doled
+doleful
+dolefully
+doles
+doll
+dollar
+dollars
+dollies
+dolls
+dolly
+dolphin
+dolphins
+domain
+domains
+dome
+domed
+domes
+domestic
+domestically
+domesticate
+domesticated
+domesticates
+domesticating
+domestication
+domicile
+dominance
+dominant
+dominantly
+dominate
+dominated
+dominates
+dominating
+domination
+domineer
+domineering
+dominion
+domino
+don
+donate
+donated
+donates
+donating
+donation
+done
+donkey
+donkeys
+donnybrook
+donor
+dons
+doodle
+doom
+doomed
+dooming
+dooms
+doomsday
+door
+doorbell
+doorkeeper
+doorman
+doormen
+doors
+doorstep
+doorsteps
+doorway
+doorways
+dope
+doped
+doper
+dopers
+dopes
+doping
+dormant
+dormitories
+dormitory
+dosage
+dose
+dosed
+doses
+dossier
+dossiers
+dot
+dote
+doted
+dotes
+doting
+dotingly
+dots
+dotted
+dotting
+double
+doubled
+doubleheader
+doubler
+doublers
+doubles
+doublet
+doubleton
+doublets
+doubling
+doubloon
+doubly
+doubt
+doubtable
+doubted
+doubter
+doubters
+doubtful
+doubtfully
+doubting
+doubtless
+doubtlessly
+doubts
+dough
+doughnut
+doughnuts
+dove
+dover
+doves
+dovetail
+dowager
+dowel
+down
+downcast
+downed
+downers
+downfall
+downfallen
+downgrade
+downhill
+downlink
+downlinks
+download
+downloaded
+downloading
+downloads
+downplay
+downplayed
+downplaying
+downplays
+downpour
+downright
+downside
+downstairs
+downstream
+downtown
+downtowns
+downtrodden
+downturn
+downward
+downwards
+downy
+dowry
+doze
+dozed
+dozen
+dozens
+dozenth
+dozes
+dozing
+drab
+draft
+drafted
+draftee
+drafter
+drafters
+drafting
+drafts
+draftsman
+draftsmen
+drafty
+drag
+dragged
+dragging
+dragnet
+dragon
+dragonfly
+dragonhead
+dragons
+dragoon
+dragooned
+dragoons
+drags
+drain
+drainage
+drained
+drainer
+draining
+drains
+drake
+dram
+drama
+dramas
+dramatic
+dramatically
+dramatics
+dramatist
+dramatists
+drank
+drape
+draped
+draper
+draperies
+drapers
+drapery
+drapes
+drastic
+drastically
+draught
+draughts
+draw
+drawback
+drawbacks
+drawbridge
+drawbridges
+drawer
+drawers
+drawing
+drawings
+drawl
+drawled
+drawling
+drawls
+drawn
+drawnly
+drawnness
+draws
+dread
+dreaded
+dreadful
+dreadfully
+dreading
+dreadnought
+dreads
+dream
+dreamboat
+dreamed
+dreamer
+dreamers
+dreamily
+dreaming
+dreamlike
+dreams
+dreamt
+dreamy
+dreariness
+dreary
+dredge
+dregs
+drench
+drenched
+drenches
+drenching
+dress
+dressed
+dresser
+dressers
+dresses
+dressing
+dressings
+dressmaker
+dressmakers
+drew
+dried
+drier
+driers
+dries
+driest
+drift
+drifted
+drifter
+drifters
+drifting
+drifts
+drill
+drilled
+driller
+drilling
+drills
+drily
+drink
+drinkable
+drinker
+drinkers
+drinking
+drinks
+drip
+dripping
+drippy
+drips
+drive
+driven
+driver
+drivers
+drives
+driveway
+driveways
+driving
+drizzle
+drizzly
+droll
+dromedary
+drone
+drones
+drool
+droop
+drooped
+drooping
+droops
+droopy
+drop
+droplet
+dropout
+dropped
+dropper
+droppers
+dropping
+droppings
+drops
+drosophila
+drought
+droughts
+drove
+drover
+drovers
+droves
+drown
+drowned
+drowning
+drownings
+drowns
+drowsiness
+drowsy
+drubbing
+drudge
+drudgery
+drug
+druggist
+druggists
+drugs
+drugstore
+drum
+drumhead
+drummed
+drummer
+drummers
+drumming
+drums
+drunk
+drunkard
+drunkards
+drunken
+drunkenness
+drunker
+drunkly
+drunks
+dry
+drying
+dryly
+dual
+dualism
+dualities
+duality
+dub
+dubbed
+dubious
+dubiously
+dubiousness
+dubs
+duchess
+duchesses
+duchy
+duck
+ducked
+ducking
+duckling
+ducks
+duct
+ducts
+dud
+due
+duel
+dueling
+duels
+dues
+duet
+dug
+duke
+dukes
+dull
+dulled
+duller
+dullest
+dulling
+dullness
+dulls
+dully
+duly
+dumb
+dumbbell
+dumbbells
+dumber
+dumbest
+dumbly
+dumbness
+dummies
+dummy
+dump
+dumped
+dumper
+dumping
+dumps
+dunce
+dunces
+dune
+dunes
+dung
+dungeon
+dungeons
+dunk
+dupe
+duplex
+duplicable
+duplicate
+duplicated
+duplicates
+duplicating
+duplication
+duplications
+duplicator
+duplicators
+duplicity
+durabilities
+durability
+durable
+durably
+duration
+durations
+duress
+during
+dusk
+duskiness
+dusky
+dust
+dustbin
+dusted
+duster
+dusters
+dustier
+dustiest
+dusting
+dusts
+dusty
+dutchess
+duties
+dutiful
+dutifully
+dutifulness
+duty
+dwarf
+dwarfed
+dwarfs
+dwarves
+dwell
+dwelled
+dweller
+dwellers
+dwelling
+dwellings
+dwells
+dwelt
+dwindle
+dwindled
+dwindling
+dyad
+dyadic
+dye
+dyed
+dyeing
+dyer
+dyers
+dyes
+dying
+dynamic
+dynamically
+dynamics
+dynamism
+dynamite
+dynamited
+dynamites
+dynamiting
+dynamo
+dynastic
+dynasties
+dynasty
+dyne
+dysentery
+dyspeptic
+dystrophy
+each
+eager
+eagerly
+eagerness
+eagle
+eagles
+ear
+eardrum
+eared
+earl
+earlier
+earliest
+earliness
+earls
+early
+earmark
+earmarked
+earmarking
+earmarkings
+earmarks
+earn
+earned
+earner
+earners
+earnest
+earnestly
+earnestness
+earning
+earnings
+earns
+earphone
+earring
+earrings
+ears
+earsplitting
+earth
+earthen
+earthenware
+earthliness
+earthling
+earthly
+earthmover
+earthquake
+earthquakes
+earths
+earthworm
+earthworms
+earthy
+ease
+eased
+easel
+easement
+easements
+eases
+easier
+easiest
+easily
+easiness
+easing
+east
+eastbound
+easter
+eastern
+easterner
+easterners
+easternmost
+eastward
+eastwards
+easy
+easygoing
+eat
+eaten
+eater
+eaters
+eating
+eatings
+eats
+eaves
+eavesdrop
+eavesdropped
+eavesdropper
+eavesdroppers
+eavesdropping
+eavesdrops
+ebb
+ebbing
+ebbs
+ebony
+eccentric
+eccentricities
+eccentricity
+eccentrics
+ecclesiastical
+echelon
+echo
+echoed
+echoes
+echoing
+eclectic
+eclipse
+eclipsed
+eclipses
+eclipsing
+ecliptic
+ecology
+econometric
+economic
+economical
+economically
+economics
+economies
+economist
+economists
+economize
+economized
+economizer
+economizers
+economizes
+economizing
+economy
+ecosystem
+ecstasy
+ecstatic
+eddies
+eddy
+edge
+edged
+edges
+edging
+edible
+edict
+edicts
+edifice
+edifices
+edit
+edited
+editing
+edition
+editions
+editor
+editorial
+editorially
+editorials
+editors
+edits
+educable
+educate
+educated
+educates
+educating
+education
+educational
+educationally
+educations
+educator
+educators
+eel
+eelgrass
+eels
+eerie
+eerily
+effect
+effected
+effecting
+effective
+effectively
+effectiveness
+effector
+effectors
+effects
+effectually
+effectuate
+effeminate
+efficacy
+efficiencies
+efficiency
+efficient
+efficiently
+effigy
+effort
+effortless
+effortlessly
+effortlessness
+efforts
+egalitarian
+egg
+egged
+egghead
+egging
+eggplant
+eggs
+eggshell
+ego
+egocentric
+egos
+egotism
+egotist
+eigenfunction
+eigenstate
+eigenvalue
+eigenvalues
+eigenvector
+eight
+eighteen
+eighteens
+eighteenth
+eightfold
+eighth
+eighthes
+eighties
+eightieth
+eights
+eighty
+either
+ejaculate
+ejaculated
+ejaculates
+ejaculating
+ejaculation
+ejaculations
+eject
+ejected
+ejecting
+ejects
+eke
+eked
+ekes
+elaborate
+elaborated
+elaborately
+elaborateness
+elaborates
+elaborating
+elaboration
+elaborations
+elaborators
+elapse
+elapsed
+elapses
+elapsing
+elastic
+elastically
+elasticity
+elbow
+elbowing
+elbows
+elder
+elderly
+elders
+eldest
+elect
+elected
+electing
+election
+elections
+elective
+electives
+elector
+electoral
+electorate
+electors
+electric
+electrical
+electrically
+electricalness
+electrician
+electricity
+electrification
+electrify
+electrifying
+electro
+electrocardiogram
+electrocardiograph
+electrocute
+electrocuted
+electrocutes
+electrocuting
+electrocution
+electrocutions
+electrode
+electrodes
+electroencephalogram
+electroencephalograph
+electroencephalography
+electrolysis
+electrolyte
+electrolytes
+electrolytic
+electromagnetic
+electromechanical
+electron
+electronic
+electronically
+electronics
+electrons
+electrophoresis
+electrophorus
+elects
+elegance
+elegant
+elegantly
+elegy
+element
+elemental
+elementals
+elementary
+elements
+elephant
+elephants
+elevate
+elevated
+elevates
+elevation
+elevator
+elevators
+eleven
+elevens
+eleventh
+elf
+elicit
+elicited
+eliciting
+elicits
+elide
+eligibility
+eligible
+eliminate
+eliminated
+eliminates
+eliminating
+elimination
+eliminations
+eliminator
+eliminators
+elision
+elite
+elitist
+elk
+elks
+ellipse
+ellipses
+ellipsis
+ellipsoid
+ellipsoidal
+ellipsoids
+elliptic
+elliptical
+elliptically
+elm
+elms
+elope
+eloquence
+eloquent
+eloquently
+else
+elsewhere
+elucidate
+elucidated
+elucidates
+elucidating
+elucidation
+elude
+eluded
+eludes
+eluding
+elusive
+elusively
+elusiveness
+elves
+em
+emaciate
+emaciated
+emacs
+emanate
+emanating
+emancipate
+emancipation
+emasculate
+embalm
+embargo
+embargoes
+embark
+embarked
+embarks
+embarrass
+embarrassed
+embarrasses
+embarrassing
+embarrassment
+embassies
+embassy
+embed
+embedded
+embedding
+embeds
+embellish
+embellished
+embellishes
+embellishing
+embellishment
+embellishments
+ember
+embezzle
+emblem
+embodied
+embodies
+embodiment
+embodiments
+embody
+embodying
+embolden
+embrace
+embraced
+embraces
+embracing
+embroider
+embroidered
+embroideries
+embroiders
+embroidery
+embroil
+embryo
+embryology
+embryos
+emerald
+emeralds
+emerge
+emerged
+emergence
+emergencies
+emergency
+emergent
+emerges
+emerging
+emeritus
+emigrant
+emigrants
+emigrate
+emigrated
+emigrates
+emigrating
+emigration
+eminence
+eminent
+eminently
+emissary
+emission
+emit
+emits
+emitted
+emitter
+emitting
+emotion
+emotional
+emotionally
+emotions
+empathy
+emperor
+emperors
+emphases
+emphasis
+emphasize
+emphasized
+emphasizes
+emphasizing
+emphatic
+emphatically
+empire
+empires
+empirical
+empirically
+empiricist
+empiricists
+employ
+employable
+employed
+employee
+employees
+employer
+employers
+employing
+employment
+employments
+employs
+emporium
+empower
+empowered
+empowering
+empowers
+empress
+emptied
+emptier
+empties
+emptiest
+emptily
+emptiness
+empty
+emptying
+emulate
+emulated
+emulates
+emulating
+emulation
+emulations
+emulator
+emulators
+en
+enable
+enabled
+enabler
+enablers
+enables
+enabling
+enact
+enacted
+enacting
+enactment
+enacts
+enamel
+enameled
+enameling
+enamels
+encamp
+encamped
+encamping
+encamps
+encapsulate
+encapsulated
+encapsulates
+encapsulating
+encapsulation
+encased
+enchant
+enchanted
+enchanter
+enchanting
+enchantment
+enchantress
+enchants
+encipher
+enciphered
+enciphering
+enciphers
+encircle
+encircled
+encircles
+enclose
+enclosed
+encloses
+enclosing
+enclosure
+enclosures
+encode
+encoded
+encoder
+encoders
+encodes
+encoding
+encodings
+encompass
+encompassed
+encompasses
+encompassing
+encore
+encounter
+encountered
+encountering
+encounters
+encourage
+encouraged
+encouragement
+encouragements
+encourages
+encouraging
+encouragingly
+encroach
+encrust
+encrypt
+encrypted
+encrypting
+encryption
+encryptions
+encrypts
+encumber
+encumbered
+encumbering
+encumbers
+encyclopedia
+encyclopedias
+encyclopedic
+end
+endanger
+endangered
+endangering
+endangers
+endear
+endeared
+endearing
+endears
+endeavor
+endeavored
+endeavoring
+endeavors
+ended
+endemic
+ender
+enders
+endgame
+ending
+endings
+endless
+endlessly
+endlessness
+endorse
+endorsed
+endorsement
+endorses
+endorsing
+endow
+endowed
+endowing
+endowment
+endowments
+endows
+endpoint
+ends
+endurable
+endurably
+endurance
+endure
+endured
+endures
+enduring
+enduringly
+enema
+enemas
+enemies
+enemy
+energetic
+energies
+energize
+energy
+enervate
+enfeeble
+enforce
+enforceable
+enforced
+enforcement
+enforcer
+enforcers
+enforces
+enforcing
+enfranchise
+engage
+engaged
+engagement
+engagements
+engages
+engaging
+engagingly
+engender
+engendered
+engendering
+engenders
+engine
+engineer
+engineered
+engineering
+engineers
+engines
+engrave
+engraved
+engraver
+engraves
+engraving
+engravings
+engross
+engrossed
+engrossing
+engulf
+enhance
+enhanced
+enhancement
+enhancements
+enhances
+enhancing
+enigma
+enigmatic
+enjoin
+enjoined
+enjoining
+enjoins
+enjoy
+enjoyable
+enjoyably
+enjoyed
+enjoying
+enjoyment
+enjoys
+enlarge
+enlarged
+enlargement
+enlargements
+enlarger
+enlargers
+enlarges
+enlarging
+enlighten
+enlightened
+enlightening
+enlightenment
+enlist
+enlisted
+enlistment
+enlists
+enliven
+enlivened
+enlivening
+enlivens
+enmities
+enmity
+ennoble
+ennobled
+ennobles
+ennobling
+ennui
+enormities
+enormity
+enormous
+enormously
+enough
+enqueue
+enqueued
+enqueues
+enquire
+enquired
+enquirer
+enquires
+enquiry
+enrage
+enraged
+enrages
+enraging
+enrapture
+enrich
+enriched
+enriches
+enriching
+enroll
+enrolled
+enrolling
+enrollment
+enrollments
+enrolls
+ensemble
+ensembles
+ensign
+ensigns
+enslave
+enslaved
+enslaves
+enslaving
+ensnare
+ensnared
+ensnares
+ensnaring
+ensue
+ensued
+ensues
+ensuing
+ensure
+ensured
+ensurer
+ensurers
+ensures
+ensuring
+entail
+entailed
+entailing
+entails
+entangle
+enter
+entered
+entering
+enterprise
+enterprises
+enterprising
+enters
+entertain
+entertained
+entertainer
+entertainers
+entertaining
+entertainingly
+entertainment
+entertainments
+entertains
+enthusiasm
+enthusiasms
+enthusiast
+enthusiastic
+enthusiastically
+enthusiasts
+entice
+enticed
+enticer
+enticers
+entices
+enticing
+entire
+entirely
+entireties
+entirety
+entities
+entitle
+entitled
+entitles
+entitling
+entity
+entomb
+entrance
+entranced
+entrances
+entrap
+entreat
+entreated
+entreaty
+entree
+entrench
+entrenched
+entrenches
+entrenching
+entrepreneur
+entrepreneurial
+entrepreneurs
+entries
+entropy
+entrust
+entrusted
+entrusting
+entrusts
+entry
+enumerable
+enumerate
+enumerated
+enumerates
+enumerating
+enumeration
+enumerative
+enumerator
+enumerators
+enunciation
+envelop
+envelope
+enveloped
+enveloper
+envelopes
+enveloping
+envelops
+envied
+envies
+envious
+enviously
+enviousness
+environ
+environing
+environment
+environmental
+environments
+environs
+envisage
+envisaged
+envisages
+envision
+envisioned
+envisioning
+envisions
+envoy
+envoys
+envy
+enzyme
+epaulet
+epaulets
+ephemeral
+epic
+epicenter
+epics
+epidemic
+epidemics
+epidermis
+epigram
+epileptic
+epilogue
+episcopal
+episode
+episodes
+epistemological
+epistemology
+epistle
+epistles
+epitaph
+epitaphs
+epitaxial
+epitaxially
+epithet
+epithets
+epitomize
+epitomized
+epitomizes
+epitomizing
+epoch
+epochs
+epsilon
+equal
+equaled
+equaling
+equalities
+equality
+equalization
+equalize
+equalized
+equalizer
+equalizers
+equalizes
+equalizing
+equally
+equals
+equate
+equated
+equates
+equating
+equation
+equations
+equator
+equatorial
+equators
+equestrian
+equidistant
+equilateral
+equilibrate
+equilibria
+equilibrium
+equilibriums
+equinox
+equip
+equipment
+equipoise
+equipped
+equipping
+equips
+equitable
+equitably
+equity
+equivalence
+equivalences
+equivalent
+equivalently
+equivalents
+equivocal
+equivocally
+era
+eradicate
+eradicated
+eradicates
+eradicating
+eradication
+eras
+erasable
+erase
+erased
+eraser
+erasers
+erases
+erasing
+erasure
+ere
+erect
+erected
+erecting
+erection
+erections
+erector
+erectors
+erects
+erg
+ergo
+ergodic
+ermine
+ermines
+erode
+erosion
+erotic
+erotica
+err
+errand
+errant
+errata
+erratic
+erratum
+erred
+erring
+erringly
+erroneous
+erroneously
+erroneousness
+error
+errors
+errs
+ersatz
+erudite
+erupt
+eruption
+escalate
+escalated
+escalates
+escalating
+escalation
+escapable
+escapade
+escapades
+escape
+escaped
+escapee
+escapees
+escapes
+escaping
+eschew
+eschewed
+eschewing
+eschews
+escort
+escorted
+escorting
+escorts
+escrow
+esoteric
+especial
+especially
+espionage
+espouse
+espoused
+espouses
+espousing
+esprit
+espy
+esquire
+esquires
+essay
+essayed
+essays
+essence
+essences
+essential
+essentially
+essentials
+establish
+established
+establishes
+establishing
+establishment
+establishments
+estate
+estates
+esteem
+esteemed
+esteeming
+esteems
+esthetics
+estimate
+estimated
+estimates
+estimating
+estimation
+estimations
+et
+etch
+etching
+eternal
+eternally
+eternities
+eternity
+ether
+ethereal
+ethereally
+ethers
+ethic
+ethical
+ethically
+ethics
+ethnic
+etiquette
+etymology
+eucalyptus
+eunuch
+eunuchs
+euphemism
+euphemisms
+euphoria
+euphoric
+eureka
+euthanasia
+evacuate
+evacuated
+evacuation
+evade
+evaded
+evades
+evading
+evaluate
+evaluated
+evaluates
+evaluating
+evaluation
+evaluations
+evaluative
+evaluator
+evaluators
+evaporate
+evaporated
+evaporating
+evaporation
+evaporative
+evasion
+evasive
+even
+evened
+evenhanded
+evenhandedly
+evenhandedness
+evening
+evenings
+evenly
+evenness
+evens
+event
+eventful
+eventfully
+events
+eventual
+eventualities
+eventuality
+eventually
+ever
+evergreen
+everlasting
+everlastingly
+evermore
+every
+everybody
+everyday
+everyone
+everything
+everywhere
+evict
+evicted
+evicting
+eviction
+evictions
+evicts
+evidence
+evidenced
+evidences
+evidencing
+evident
+evidently
+evil
+eviller
+evilly
+evils
+evince
+evinced
+evinces
+evoke
+evoked
+evokes
+evoking
+evolute
+evolutes
+evolution
+evolutionary
+evolutions
+evolve
+evolved
+evolves
+evolving
+ewe
+ewes
+ex
+exacerbate
+exacerbated
+exacerbates
+exacerbating
+exacerbation
+exacerbations
+exact
+exacted
+exacting
+exactingly
+exaction
+exactions
+exactitude
+exactly
+exactness
+exacts
+exaggerate
+exaggerated
+exaggerates
+exaggerating
+exaggeration
+exaggerations
+exalt
+exaltation
+exalted
+exalting
+exalts
+exam
+examination
+examinations
+examine
+examined
+examiner
+examiners
+examines
+examining
+example
+examples
+exams
+exasperate
+exasperated
+exasperates
+exasperating
+exasperation
+excavate
+excavated
+excavates
+excavating
+excavation
+excavations
+exceed
+exceeded
+exceeding
+exceedingly
+exceeds
+excel
+excelled
+excellence
+excellences
+excellency
+excellent
+excellently
+excelling
+excels
+except
+excepted
+excepting
+exception
+exceptionable
+exceptional
+exceptionally
+exceptions
+excepts
+excerpt
+excerpted
+excerpts
+excess
+excesses
+excessive
+excessively
+exchange
+exchangeable
+exchanged
+exchanges
+exchanging
+exchequer
+exchequers
+excise
+excised
+excises
+excising
+excision
+excitable
+excitation
+excitations
+excite
+excited
+excitedly
+excitement
+excites
+exciting
+excitingly
+exciton
+exclaim
+exclaimed
+exclaimer
+exclaimers
+exclaiming
+exclaims
+exclamation
+exclamations
+exclamatory
+exclude
+excluded
+excludes
+excluding
+exclusion
+exclusionary
+exclusions
+exclusive
+exclusively
+exclusiveness
+exclusivity
+excommunicate
+excommunicated
+excommunicates
+excommunicating
+excommunication
+excrete
+excreted
+excretes
+excreting
+excretion
+excretions
+excretory
+excruciate
+excursion
+excursions
+excusable
+excusably
+excuse
+excused
+excuses
+excusing
+exec
+executable
+execute
+executed
+executes
+executing
+execution
+executional
+executioner
+executions
+executive
+executives
+executor
+executors
+exemplar
+exemplary
+exemplification
+exemplified
+exemplifier
+exemplifiers
+exemplifies
+exemplify
+exemplifying
+exempt
+exempted
+exempting
+exemption
+exempts
+exercise
+exercised
+exerciser
+exercisers
+exercises
+exercising
+exert
+exerted
+exerting
+exertion
+exertions
+exerts
+exhale
+exhaled
+exhales
+exhaling
+exhaust
+exhausted
+exhaustedly
+exhausting
+exhaustion
+exhaustive
+exhaustively
+exhausts
+exhibit
+exhibited
+exhibiting
+exhibition
+exhibitions
+exhibitor
+exhibitors
+exhibits
+exhilarate
+exhort
+exhortation
+exhortations
+exhume
+exigency
+exile
+exiled
+exiles
+exiling
+exist
+existed
+existence
+existent
+existential
+existentialism
+existentialist
+existentialists
+existentially
+existing
+exists
+exit
+exited
+exiting
+exits
+exodus
+exorbitant
+exorbitantly
+exorcism
+exorcist
+exoskeleton
+exotic
+expand
+expandable
+expanded
+expander
+expanders
+expanding
+expands
+expanse
+expanses
+expansible
+expansion
+expansionism
+expansions
+expansive
+expect
+expectancy
+expectant
+expectantly
+expectation
+expectations
+expected
+expectedly
+expecting
+expectingly
+expects
+expediency
+expedient
+expediently
+expedite
+expedited
+expedites
+expediting
+expedition
+expeditions
+expeditious
+expeditiously
+expel
+expelled
+expelling
+expels
+expend
+expendable
+expended
+expending
+expenditure
+expenditures
+expends
+expense
+expenses
+expensive
+expensively
+experience
+experienced
+experiences
+experiencing
+experiment
+experimental
+experimentally
+experimentation
+experimentations
+experimented
+experimenter
+experimenters
+experimenting
+experiments
+expert
+expertise
+expertly
+expertness
+experts
+expiration
+expirations
+expire
+expired
+expires
+expiring
+explain
+explainable
+explained
+explainer
+explainers
+explaining
+explains
+explanation
+explanations
+explanatory
+expletive
+explicit
+explicitly
+explicitness
+explode
+exploded
+explodes
+exploding
+exploit
+exploitable
+exploitation
+exploitations
+exploited
+exploiter
+exploiters
+exploiting
+exploits
+exploration
+explorations
+exploratory
+explore
+explored
+explorer
+explorers
+explores
+exploring
+explosion
+explosions
+explosive
+explosively
+explosives
+exponent
+exponential
+exponentially
+exponentials
+exponentiate
+exponentiated
+exponentiates
+exponentiating
+exponentiation
+exponentiations
+exponents
+export
+exportation
+exported
+exporter
+exporters
+exporting
+exports
+expose
+exposed
+exposer
+exposers
+exposes
+exposing
+exposition
+expositions
+expository
+exposure
+exposures
+expound
+expounded
+expounder
+expounding
+expounds
+express
+expressed
+expresses
+expressibility
+expressible
+expressibly
+expressing
+expression
+expressions
+expressive
+expressively
+expressiveness
+expressly
+expulsion
+expunge
+expunged
+expunges
+expunging
+expurgate
+exquisite
+exquisitely
+exquisiteness
+extant
+extemporaneous
+extend
+extendable
+extended
+extending
+extends
+extensibility
+extensible
+extension
+extensions
+extensive
+extensively
+extent
+extents
+extenuate
+extenuated
+extenuating
+extenuation
+exterior
+exteriors
+exterminate
+exterminated
+exterminates
+exterminating
+extermination
+external
+externally
+extinct
+extinction
+extinguish
+extinguished
+extinguisher
+extinguishes
+extinguishing
+extirpate
+extol
+extort
+extorted
+extortion
+extra
+extract
+extracted
+extracting
+extraction
+extractions
+extractor
+extractors
+extracts
+extracurricular
+extramarital
+extraneous
+extraneously
+extraneousness
+extraordinarily
+extraordinariness
+extraordinary
+extrapolate
+extrapolated
+extrapolates
+extrapolating
+extrapolation
+extrapolations
+extras
+extraterrestrial
+extravagance
+extravagant
+extravagantly
+extravaganza
+extremal
+extreme
+extremely
+extremes
+extremist
+extremists
+extremities
+extremity
+extricate
+extrinsic
+extrovert
+exuberance
+exult
+exultation
+eye
+eyeball
+eyebrow
+eyebrows
+eyed
+eyeful
+eyeglass
+eyeglasses
+eyeing
+eyelash
+eyelid
+eyelids
+eyepiece
+eyepieces
+eyer
+eyers
+eyes
+eyesight
+eyewitness
+eyewitnesses
+eying
+fable
+fabled
+fables
+fabric
+fabricate
+fabricated
+fabricates
+fabricating
+fabrication
+fabrics
+fabulous
+fabulously
+facade
+facaded
+facades
+face
+faced
+faces
+facet
+faceted
+facets
+facial
+facile
+facilely
+facilitate
+facilitated
+facilitates
+facilitating
+facilities
+facility
+facing
+facings
+facsimile
+facsimiles
+fact
+faction
+factions
+factious
+facto
+factor
+factored
+factorial
+factories
+factoring
+factorization
+factorizations
+factors
+factory
+facts
+factual
+factually
+faculties
+faculty
+fade
+faded
+fadeout
+fader
+faders
+fades
+fading
+fag
+fags
+fail
+failed
+failing
+failings
+fails
+failsoft
+failure
+failures
+fain
+faint
+fainted
+fainter
+faintest
+fainting
+faintly
+faintness
+faints
+fair
+fairer
+fairest
+fairies
+fairing
+fairly
+fairness
+fairs
+fairy
+fairyland
+faith
+faithful
+faithfully
+faithfulness
+faithless
+faithlessly
+faithlessness
+faiths
+fake
+faked
+faker
+fakes
+faking
+falcon
+falconer
+falcons
+fall
+fallacies
+fallacious
+fallacy
+fallen
+fallibility
+fallible
+falling
+fallout
+fallow
+falls
+false
+falsehood
+falsehoods
+falsely
+falseness
+falsification
+falsified
+falsifies
+falsify
+falsifying
+falsity
+falter
+faltered
+falters
+fame
+famed
+fames
+familial
+familiar
+familiarities
+familiarity
+familiarization
+familiarize
+familiarized
+familiarizes
+familiarizing
+familiarly
+familiarness
+families
+familism
+family
+famine
+famines
+famish
+famous
+famously
+fan
+fanatic
+fanaticism
+fanatics
+fancied
+fancier
+fanciers
+fancies
+fanciest
+fanciful
+fancifully
+fancily
+fanciness
+fancy
+fancying
+fanfare
+fanfold
+fang
+fangled
+fangs
+fanned
+fanning
+fanout
+fans
+fantasies
+fantasize
+fantastic
+fantasy
+far
+farad
+faraway
+farce
+farces
+fare
+fared
+fares
+farewell
+farewells
+farfetched
+farina
+faring
+farm
+farmed
+farmer
+farmers
+farmhouse
+farmhouses
+farming
+farmland
+farms
+farmyard
+farmyards
+farsighted
+farther
+farthest
+farthing
+fascicle
+fascinate
+fascinated
+fascinates
+fascinating
+fascination
+fascism
+fascist
+fashion
+fashionable
+fashionably
+fashioned
+fashioning
+fashions
+fast
+fasted
+fasten
+fastened
+fastener
+fasteners
+fastening
+fastenings
+fastens
+faster
+fastest
+fastidious
+fasting
+fastness
+fasts
+fat
+fatal
+fatalities
+fatality
+fatally
+fatals
+fate
+fated
+fateful
+fates
+father
+fathered
+fatherland
+fatherly
+fathers
+fathom
+fathomed
+fathoming
+fathoms
+fatigue
+fatigued
+fatigues
+fatiguing
+fatness
+fats
+fatten
+fattened
+fattener
+fatteners
+fattening
+fattens
+fatter
+fattest
+fatty
+faucet
+fault
+faulted
+faulting
+faultless
+faultlessly
+faults
+faulty
+faun
+fauna
+favor
+favorable
+favorably
+favored
+favorer
+favoring
+favorite
+favorites
+favoritism
+favors
+fawn
+fawned
+fawning
+fawns
+faze
+fear
+feared
+fearful
+fearfully
+fearing
+fearless
+fearlessly
+fearlessness
+fears
+fearsome
+feasibility
+feasible
+feast
+feasted
+feasting
+feasts
+feat
+feather
+featherbed
+featherbedding
+feathered
+featherer
+featherers
+feathering
+feathers
+featherweight
+feathery
+feats
+feature
+featured
+features
+featuring
+fecund
+fed
+federal
+federalist
+federally
+federals
+federation
+fee
+feeble
+feebleness
+feebler
+feeblest
+feebly
+feed
+feedback
+feeder
+feeders
+feeding
+feedings
+feeds
+feel
+feeler
+feelers
+feeling
+feelingly
+feelings
+feels
+fees
+feet
+feign
+feigned
+feigning
+felicities
+felicity
+feline
+fell
+fellatio
+felled
+felling
+fellow
+fellows
+fellowship
+fellowships
+felon
+felonious
+felony
+felt
+felts
+female
+females
+feminine
+femininity
+feminism
+feminist
+femur
+femurs
+fen
+fence
+fenced
+fencer
+fencers
+fences
+fencing
+fend
+ferment
+fermentation
+fermentations
+fermented
+fermenting
+ferments
+fern
+ferns
+ferocious
+ferociously
+ferociousness
+ferocity
+ferret
+ferried
+ferries
+ferrite
+ferry
+fertile
+fertilely
+fertility
+fertilization
+fertilize
+fertilized
+fertilizer
+fertilizers
+fertilizes
+fertilizing
+fervent
+fervently
+fervor
+fervors
+festival
+festivals
+festive
+festively
+festivities
+festivity
+fetal
+fetch
+fetched
+fetches
+fetching
+fetchingly
+fetid
+fetish
+fetter
+fettered
+fetters
+fettle
+fetus
+feud
+feudal
+feudalism
+feuds
+fever
+fevered
+feverish
+feverishly
+fevers
+few
+fewer
+fewest
+fewness
+fiance
+fiancee
+fiasco
+fiat
+fib
+fibbing
+fiber
+fibers
+fibrosities
+fibrosity
+fibrous
+fibrously
+fickle
+fickleness
+fiction
+fictional
+fictionally
+fictions
+fictitious
+fictitiously
+fiddle
+fiddled
+fiddler
+fiddles
+fiddlestick
+fiddlesticks
+fiddling
+fidelity
+fidget
+fiducial
+fief
+fiefdom
+field
+fielded
+fielder
+fielders
+fielding
+fieldwork
+fiend
+fiendish
+fierce
+fiercely
+fierceness
+fiercer
+fiercest
+fiery
+fife
+fifteen
+fifteens
+fifteenth
+fifth
+fifties
+fiftieth
+fifty
+fig
+fight
+fighter
+fighters
+fighting
+fights
+figs
+figurative
+figuratively
+figure
+figured
+figures
+figuring
+figurings
+filament
+filaments
+file
+filed
+filename
+filenames
+filer
+files
+filial
+filibuster
+filing
+filings
+fill
+fillable
+filled
+filler
+fillers
+filling
+fillings
+fills
+filly
+film
+filmed
+filming
+films
+filter
+filtered
+filtering
+filters
+filth
+filthier
+filthiest
+filthiness
+filthy
+fin
+final
+finality
+finalization
+finalize
+finalized
+finalizes
+finalizing
+finally
+finals
+finance
+financed
+finances
+financial
+financially
+financier
+financiers
+financing
+find
+finder
+finders
+finding
+findings
+finds
+fine
+fined
+finely
+fineness
+finer
+fines
+finesse
+finessed
+finessing
+finest
+finger
+fingered
+fingering
+fingerings
+fingernail
+fingerprint
+fingerprints
+fingers
+fingertip
+finicky
+fining
+finish
+finished
+finisher
+finishers
+finishes
+finishing
+finite
+finitely
+finiteness
+fink
+finny
+fins
+fir
+fire
+firearm
+firearms
+fireboat
+firebreak
+firebug
+firecracker
+fired
+fireflies
+firefly
+firehouse
+firelight
+fireman
+firemen
+fireplace
+fireplaces
+firepower
+fireproof
+firer
+firers
+fires
+fireside
+firewall
+firewood
+fireworks
+firing
+firings
+firm
+firmament
+firmed
+firmer
+firmest
+firming
+firmly
+firmness
+firms
+firmware
+first
+firsthand
+firstly
+firsts
+fiscal
+fiscally
+fish
+fished
+fisher
+fisherman
+fishermen
+fishers
+fishery
+fishes
+fishing
+fishmonger
+fishpond
+fishy
+fission
+fissure
+fissured
+fist
+fisted
+fisticuff
+fists
+fit
+fitful
+fitfully
+fitly
+fitness
+fits
+fitted
+fitter
+fitters
+fitting
+fittingly
+fittings
+five
+fivefold
+fives
+fix
+fixate
+fixated
+fixates
+fixating
+fixation
+fixations
+fixed
+fixedly
+fixedness
+fixer
+fixers
+fixes
+fixing
+fixings
+fixture
+fixtures
+fizzle
+fizzled
+flabbergast
+flabbergasted
+flack
+flag
+flagellate
+flagged
+flagging
+flagpole
+flagrant
+flagrantly
+flags
+flail
+flair
+flak
+flake
+flaked
+flakes
+flaking
+flaky
+flam
+flamboyant
+flame
+flamed
+flamer
+flamers
+flames
+flaming
+flammable
+flank
+flanked
+flanker
+flanking
+flanks
+flannel
+flannels
+flap
+flaps
+flare
+flared
+flares
+flaring
+flash
+flashback
+flashed
+flasher
+flashers
+flashes
+flashing
+flashlight
+flashlights
+flashy
+flask
+flat
+flatbed
+flatly
+flatness
+flats
+flatten
+flattened
+flattening
+flatter
+flattered
+flatterer
+flattering
+flattery
+flattest
+flatulent
+flatus
+flatworm
+flaunt
+flaunted
+flaunting
+flaunts
+flavor
+flavored
+flavoring
+flavorings
+flavors
+flaw
+flawed
+flawless
+flawlessly
+flaws
+flax
+flaxen
+flea
+fleas
+fled
+fledged
+fledgling
+fledglings
+flee
+fleece
+fleeces
+fleecy
+fleeing
+flees
+fleet
+fleetest
+fleeting
+fleetly
+fleetness
+fleets
+flesh
+fleshed
+fleshes
+fleshing
+fleshly
+fleshy
+flew
+flex
+flexibilities
+flexibility
+flexible
+flexibly
+flick
+flicked
+flicker
+flickering
+flicking
+flicks
+flier
+fliers
+flies
+flight
+flights
+flimsy
+flinch
+flinched
+flinches
+flinching
+fling
+flings
+flint
+flinty
+flip
+flipflop
+flipped
+flips
+flirt
+flirtation
+flirtatious
+flirted
+flirting
+flirts
+flit
+flitting
+float
+floated
+floater
+floating
+floats
+flock
+flocked
+flocking
+flocks
+flog
+flogging
+flood
+flooded
+flooding
+floodlight
+floodlit
+floods
+floor
+floored
+flooring
+floorings
+floors
+flop
+floppies
+floppily
+flopping
+floppy
+flops
+flora
+floral
+florid
+florin
+florist
+floss
+flossed
+flosses
+flossing
+flotation
+flotilla
+flounder
+floundered
+floundering
+flounders
+flour
+floured
+flourish
+flourished
+flourishes
+flourishing
+flow
+flowchart
+flowcharting
+flowcharts
+flowed
+flower
+flowered
+floweriness
+flowering
+flowerpot
+flowers
+flowery
+flowing
+flown
+flows
+flu
+fluctuate
+fluctuates
+fluctuating
+fluctuation
+fluctuations
+flue
+fluency
+fluent
+fluently
+fluff
+fluffier
+fluffiest
+fluffy
+fluid
+fluidity
+fluidly
+fluids
+fluke
+flung
+flunked
+fluoresce
+fluorescent
+flurried
+flurry
+flush
+flushed
+flushes
+flushing
+flute
+fluted
+fluting
+flutter
+fluttered
+fluttering
+flutters
+flux
+fly
+flyable
+flyer
+flyers
+flying
+foal
+foam
+foamed
+foaming
+foams
+foamy
+fob
+fobbing
+focal
+focally
+foci
+focus
+focused
+focuses
+focusing
+focussed
+fodder
+foe
+foes
+fog
+fogged
+foggier
+foggiest
+foggily
+fogging
+foggy
+fogs
+fogy
+foible
+foil
+foiled
+foiling
+foils
+foist
+fold
+folded
+folder
+folders
+folding
+foldout
+folds
+foliage
+folk
+folklore
+folks
+folksong
+folksy
+follies
+follow
+followed
+follower
+followers
+following
+followings
+follows
+folly
+fond
+fonder
+fondle
+fondled
+fondles
+fondling
+fondly
+fondness
+font
+fonts
+food
+foods
+foodstuff
+foodstuffs
+fool
+fooled
+foolhardy
+fooling
+foolish
+foolishly
+foolishness
+foolproof
+fools
+foot
+footage
+football
+footballs
+footbridge
+footed
+footer
+footers
+footfall
+foothill
+foothold
+footing
+footman
+footnote
+footnotes
+footpath
+footprint
+footprints
+footstep
+footsteps
+for
+forage
+foraged
+forages
+foraging
+foray
+forays
+forbade
+forbear
+forbearance
+forbears
+forbid
+forbidden
+forbidding
+forbids
+force
+forced
+forceful
+forcefully
+forcefulness
+forcer
+forces
+forcible
+forcibly
+forcing
+ford
+fords
+fore
+forearm
+forearms
+foreboding
+forecast
+forecasted
+forecaster
+forecasters
+forecasting
+forecastle
+forecasts
+forefather
+forefathers
+forefinger
+forefingers
+forego
+foregoes
+foregoing
+foregone
+foreground
+forehead
+foreheads
+foreign
+foreigner
+foreigners
+foreigns
+foreman
+foremost
+forenoon
+forensic
+forerunners
+foresee
+foreseeable
+foreseen
+foresees
+foresight
+foresighted
+forest
+forestall
+forestalled
+forestalling
+forestallment
+forestalls
+forested
+forester
+foresters
+forestry
+forests
+foretell
+foretelling
+foretells
+foretold
+forever
+forewarn
+forewarned
+forewarning
+forewarnings
+forewarns
+forfeit
+forfeited
+forfeiture
+forgave
+forge
+forged
+forger
+forgeries
+forgery
+forges
+forget
+forgetful
+forgetfulness
+forgets
+forgettable
+forgettably
+forgetting
+forging
+forgivable
+forgivably
+forgive
+forgiven
+forgiveness
+forgives
+forgiving
+forgivingly
+forgot
+forgotten
+fork
+forked
+forking
+forklift
+forks
+forlorn
+forlornly
+form
+formal
+formalism
+formalisms
+formalities
+formality
+formalization
+formalizations
+formalize
+formalized
+formalizes
+formalizing
+formally
+formant
+formants
+format
+formation
+formations
+formative
+formatively
+formats
+formatted
+formatter
+formatters
+formatting
+formed
+former
+formerly
+formidable
+forming
+forms
+formula
+formulae
+formulas
+formulate
+formulated
+formulates
+formulating
+formulation
+formulations
+formulator
+formulators
+fornication
+forsake
+forsaken
+forsakes
+forsaking
+fort
+forte
+forthcoming
+forthright
+forthwith
+fortier
+forties
+fortieth
+fortification
+fortifications
+fortified
+fortifies
+fortify
+fortifying
+fortiori
+fortitude
+fortnight
+fortnightly
+fortress
+fortresses
+forts
+fortuitous
+fortuitously
+fortunate
+fortunately
+fortune
+fortunes
+forty
+forum
+forums
+forward
+forwarded
+forwarder
+forwarding
+forwardness
+forwards
+fossil
+foster
+fostered
+fostering
+fosters
+fought
+foul
+fouled
+foulest
+fouling
+foully
+foulmouth
+foulness
+fouls
+found
+foundation
+foundations
+founded
+founder
+foundered
+founders
+founding
+foundling
+foundries
+foundry
+founds
+fount
+fountain
+fountains
+founts
+four
+fourfold
+fours
+fourscore
+foursome
+foursquare
+fourteen
+fourteens
+fourteenth
+fourth
+fowl
+fowler
+fowls
+fox
+foxes
+fraction
+fractional
+fractionally
+fractions
+fracture
+fractured
+fractures
+fracturing
+fragile
+fragment
+fragmentary
+fragmentation
+fragmented
+fragmenting
+fragments
+fragrance
+fragrances
+fragrant
+fragrantly
+frail
+frailest
+frailty
+frame
+framed
+framer
+frames
+framework
+frameworks
+framing
+franc
+franchise
+franchises
+francs
+frank
+franked
+franker
+frankest
+franking
+frankly
+frankness
+franks
+frantic
+frantically
+fraternal
+fraternally
+fraternities
+fraternity
+fraud
+frauds
+fraudulent
+fraught
+fray
+frayed
+fraying
+frays
+frazzle
+freak
+freakish
+freaks
+freckle
+freckled
+freckles
+free
+freed
+freedom
+freedoms
+freeing
+freeings
+freely
+freeman
+freeness
+freer
+frees
+freest
+freestyle
+freeway
+freewheel
+freeze
+freezer
+freezers
+freezes
+freezing
+freight
+freighted
+freighter
+freighters
+freighting
+freights
+frenetic
+frenzied
+frenzy
+freon
+frequencies
+frequency
+frequent
+frequented
+frequenter
+frequenters
+frequenting
+frequently
+frequents
+fresco
+frescoes
+fresh
+freshen
+freshened
+freshener
+fresheners
+freshening
+freshens
+fresher
+freshest
+freshly
+freshman
+freshmen
+freshness
+freshwater
+fret
+fretful
+fretfully
+fretfulness
+friar
+friars
+fricative
+fricatives
+friction
+frictionless
+frictions
+fried
+friend
+friendless
+friendlier
+friendliest
+friendliness
+friendly
+friends
+friendship
+friendships
+fries
+frieze
+friezes
+frigate
+frigates
+fright
+frighten
+frightened
+frightening
+frighteningly
+frightens
+frightful
+frightfully
+frightfulness
+frigid
+frill
+frills
+fringe
+fringed
+frisk
+frisked
+frisking
+frisks
+frisky
+fritter
+frivolity
+frivolous
+frivolously
+fro
+frock
+frocks
+frog
+frogs
+frolic
+frolics
+from
+front
+frontage
+frontal
+fronted
+frontier
+frontiers
+frontiersman
+frontiersmen
+fronting
+fronts
+frost
+frostbite
+frostbitten
+frosted
+frosting
+frosts
+frosty
+froth
+frothing
+frothy
+frown
+frowned
+frowning
+frowns
+froze
+frozen
+frozenly
+frugal
+frugally
+fruit
+fruitful
+fruitfully
+fruitfulness
+fruition
+fruitless
+fruitlessly
+fruits
+frustrate
+frustrated
+frustrates
+frustrating
+frustration
+frustrations
+fry
+fudge
+fuel
+fueled
+fueling
+fuels
+fugitive
+fugitives
+fugue
+fulcrum
+fulfill
+fulfilled
+fulfilling
+fulfillment
+fulfillments
+fulfills
+full
+fuller
+fullest
+fullness
+fully
+fulminate
+fumble
+fumbled
+fumbling
+fume
+fumed
+fumes
+fuming
+fun
+function
+functional
+functionalities
+functionality
+functionally
+functionals
+functionary
+functioned
+functioning
+functions
+functor
+functors
+fund
+fundamental
+fundamentally
+fundamentals
+funded
+funder
+funders
+funding
+funds
+funeral
+funerals
+funereal
+fungal
+fungi
+fungible
+fungicide
+fungus
+funk
+funnel
+funneled
+funneling
+funnels
+funnier
+funniest
+funnily
+funniness
+funny
+fur
+furies
+furious
+furiouser
+furiously
+furlong
+furlough
+furnace
+furnaces
+furnish
+furnished
+furnishes
+furnishing
+furnishings
+furniture
+furrier
+furrow
+furrowed
+furrows
+furry
+furs
+further
+furthered
+furthering
+furthermore
+furthermost
+furthers
+furthest
+furtive
+furtively
+furtiveness
+fury
+fuse
+fused
+fuses
+fusing
+fusion
+fuss
+fussing
+fussy
+futile
+futility
+future
+futures
+futuristic
+fuzz
+fuzzier
+fuzziness
+fuzzy
+gab
+gabardine
+gabbing
+gable
+gabled
+gabler
+gables
+gad
+gadfly
+gadget
+gadgetry
+gadgets
+gag
+gagged
+gagging
+gaging
+gags
+gaieties
+gaiety
+gaily
+gain
+gained
+gainer
+gainers
+gainful
+gaining
+gains
+gait
+gaited
+gaiter
+gaiters
+galactic
+galaxies
+galaxy
+gale
+gall
+gallant
+gallantly
+gallantry
+gallants
+galled
+galleried
+galleries
+gallery
+galley
+galleys
+galling
+gallon
+gallons
+gallop
+galloped
+galloper
+galloping
+gallops
+gallows
+galls
+gallstone
+gambit
+gamble
+gambled
+gambler
+gamblers
+gambles
+gambling
+gambol
+game
+gamed
+gamely
+gameness
+games
+gaming
+gamma
+gander
+gang
+gangland
+gangling
+gangplank
+gangrene
+gangs
+gangster
+gangsters
+gantry
+gap
+gape
+gaped
+gapes
+gaping
+gaps
+garage
+garaged
+garages
+garb
+garbage
+garbages
+garbed
+garble
+garbled
+garden
+gardened
+gardener
+gardeners
+gardening
+gardens
+gargantuan
+gargle
+gargled
+gargles
+gargling
+garland
+garlanded
+garlic
+garment
+garments
+garner
+garnered
+garnish
+garrison
+garrisoned
+garter
+garters
+gas
+gaseous
+gaseously
+gases
+gash
+gashes
+gasket
+gaslight
+gasoline
+gasp
+gasped
+gasping
+gasps
+gassed
+gasser
+gassing
+gassings
+gassy
+gastric
+gastrointestinal
+gastronome
+gastronomy
+gate
+gated
+gateway
+gateways
+gather
+gathered
+gatherer
+gatherers
+gathering
+gatherings
+gathers
+gating
+gator
+gauche
+gaudiness
+gaudy
+gauge
+gauged
+gauges
+gaunt
+gauntness
+gauze
+gave
+gavel
+gawk
+gawky
+gay
+gayer
+gayest
+gayety
+gayly
+gayness
+gaze
+gazed
+gazelle
+gazer
+gazers
+gazes
+gazette
+gazing
+gear
+geared
+gearing
+gears
+gecko
+geese
+geisha
+gel
+gelatin
+gelatine
+gelatinous
+geld
+gelled
+gelling
+gels
+gem
+gems
+gender
+genders
+gene
+genealogy
+general
+generalist
+generalists
+generalities
+generality
+generalization
+generalizations
+generalize
+generalized
+generalizer
+generalizers
+generalizes
+generalizing
+generally
+generals
+generate
+generated
+generates
+generating
+generation
+generations
+generative
+generator
+generators
+generic
+generically
+generosities
+generosity
+generous
+generously
+generousness
+genes
+genesis
+genetic
+genetically
+genial
+genially
+genie
+genius
+geniuses
+genre
+genres
+gent
+genteel
+gentile
+gentle
+gentleman
+gentlemanly
+gentlemen
+gentleness
+gentler
+gentlest
+gentlewoman
+gently
+gentry
+genuine
+genuinely
+genuineness
+genus
+geocentric
+geodesic
+geodesy
+geodetic
+geographer
+geographic
+geographical
+geographically
+geography
+geological
+geologist
+geologists
+geology
+geometric
+geometrical
+geometrically
+geometrician
+geometries
+geometry
+geophysical
+geophysics
+geosynchronous
+geranium
+gerbil
+geriatric
+germ
+germane
+germicide
+germinal
+germinate
+germinated
+germinates
+germinating
+germination
+germs
+gerund
+gesture
+gestured
+gestures
+gesturing
+get
+getaway
+gets
+getter
+getters
+getting
+geyser
+ghastly
+ghetto
+ghost
+ghosted
+ghostly
+ghosts
+giant
+giants
+gibberish
+giddiness
+giddy
+gift
+gifted
+gifts
+gig
+gigabit
+gigabits
+gigabyte
+gigabytes
+gigacycle
+gigahertz
+gigantic
+gigavolt
+gigawatt
+giggle
+giggled
+giggles
+giggling
+gild
+gilded
+gilding
+gilds
+gill
+gills
+gilt
+gimmick
+gimmicks
+gin
+ginger
+gingerbread
+gingerly
+gingham
+ginghams
+gins
+giraffe
+giraffes
+gird
+girder
+girders
+girdle
+girl
+girlfriend
+girlie
+girlish
+girls
+girt
+girth
+gist
+give
+giveaway
+given
+giver
+givers
+gives
+giving
+glacial
+glacier
+glaciers
+glad
+gladden
+gladder
+gladdest
+glade
+gladiator
+gladly
+gladness
+glamor
+glamorous
+glamour
+glance
+glanced
+glances
+glancing
+gland
+glands
+glandular
+glare
+glared
+glares
+glaring
+glaringly
+glass
+glassed
+glasses
+glassy
+glaucoma
+glaze
+glazed
+glazer
+glazes
+glazing
+gleam
+gleamed
+gleaming
+gleams
+glean
+gleaned
+gleaner
+gleaning
+gleanings
+gleans
+glee
+gleeful
+gleefully
+glees
+glen
+glens
+glide
+glided
+glider
+gliders
+glides
+glimmer
+glimmered
+glimmering
+glimmers
+glimpse
+glimpsed
+glimpses
+glint
+glinted
+glinting
+glints
+glisten
+glistened
+glistening
+glistens
+glitch
+glitter
+glittered
+glittering
+glitters
+gloat
+global
+globally
+globe
+globes
+globular
+globularity
+gloom
+gloomily
+gloomy
+glories
+glorification
+glorified
+glorifies
+glorify
+glorious
+gloriously
+glory
+glorying
+gloss
+glossaries
+glossary
+glossed
+glosses
+glossing
+glossy
+glottal
+glove
+gloved
+glover
+glovers
+gloves
+gloving
+glow
+glowed
+glower
+glowers
+glowing
+glowingly
+glows
+glue
+glued
+glues
+gluing
+glut
+glutton
+gnash
+gnat
+gnats
+gnaw
+gnawed
+gnawing
+gnaws
+gnome
+gnomon
+gnu
+go
+goad
+goaded
+goal
+goals
+goat
+goatee
+goatees
+goats
+gobble
+gobbled
+gobbler
+gobblers
+gobbles
+goblet
+goblets
+goblin
+goblins
+god
+goddess
+goddesses
+godfather
+godhead
+godlike
+godly
+godmother
+godmothers
+godparent
+gods
+godsend
+godson
+goes
+goggles
+going
+goings
+gold
+golden
+goldenly
+goldenness
+goldenrod
+goldfish
+golding
+golds
+goldsmith
+golf
+golfer
+golfers
+golfing
+golly
+gondola
+gone
+goner
+gong
+gongs
+good
+goodby
+goodbye
+goodies
+goodly
+goodness
+goods
+goodwill
+goody
+goof
+goofed
+goofs
+goofy
+goose
+gopher
+gore
+gorge
+gorgeous
+gorgeously
+gorges
+gorging
+gorilla
+gorillas
+gory
+gosh
+gospel
+gospelers
+gospels
+gossip
+gossiped
+gossiping
+gossips
+got
+gotten
+gouge
+gouged
+gouges
+gouging
+gourd
+gourmet
+gout
+govern
+governance
+governed
+governess
+governing
+government
+governmental
+governmentally
+governments
+governor
+governors
+governs
+gown
+gowned
+gowns
+grab
+grabbed
+grabber
+grabbers
+grabbing
+grabbings
+grabs
+grace
+graced
+graceful
+gracefully
+gracefulness
+graces
+gracing
+gracious
+graciously
+graciousness
+grad
+gradation
+gradations
+grade
+graded
+grader
+graders
+grades
+gradient
+gradients
+grading
+gradings
+gradual
+gradually
+graduate
+graduated
+graduates
+graduating
+graduation
+graduations
+graft
+grafted
+grafter
+grafting
+grafts
+graham
+grahams
+grail
+grain
+grained
+graining
+grains
+gram
+grammar
+grammarian
+grammars
+grammatic
+grammatical
+grammatically
+grams
+granaries
+granary
+grand
+grandchild
+grandchildren
+granddaughter
+grander
+grandest
+grandeur
+grandfather
+grandfathers
+grandiose
+grandly
+grandma
+grandmother
+grandmothers
+grandnephew
+grandness
+grandniece
+grandpa
+grandparent
+grands
+grandson
+grandsons
+grandstand
+grange
+granite
+granny
+granola
+grant
+granted
+grantee
+granter
+granting
+grantor
+grants
+granularity
+granulate
+granulated
+granulates
+granulating
+grape
+grapefruit
+grapes
+grapevine
+graph
+graphed
+graphic
+graphical
+graphically
+graphics
+graphing
+graphite
+graphs
+grapple
+grappled
+grappling
+grasp
+graspable
+grasped
+grasping
+graspingly
+grasps
+grass
+grassed
+grassers
+grasses
+grassier
+grassiest
+grassland
+grassy
+grate
+grated
+grateful
+gratefully
+gratefulness
+grater
+grates
+gratification
+gratified
+gratify
+gratifying
+grating
+gratings
+gratis
+gratitude
+gratuities
+gratuitous
+gratuitously
+gratuitousness
+gratuity
+grave
+gravel
+gravelly
+gravely
+graven
+graveness
+graver
+gravest
+gravestone
+graveyard
+gravitate
+gravitation
+gravitational
+gravity
+gravy
+gray
+grayed
+grayer
+grayest
+graying
+grayness
+graze
+grazed
+grazer
+grazing
+grease
+greased
+greases
+greasy
+great
+greater
+greatest
+greatly
+greatness
+greed
+greedily
+greediness
+greedy
+green
+greener
+greenery
+greenest
+greengrocer
+greenhouse
+greenhouses
+greening
+greenish
+greenly
+greenness
+greens
+greenware
+greet
+greeted
+greeter
+greeting
+greetings
+greets
+gregarious
+grenade
+grenades
+grew
+grey
+greyest
+greyhound
+greying
+grid
+griddle
+gridiron
+grids
+grief
+griefs
+grievance
+grievances
+grieve
+grieved
+griever
+grievers
+grieves
+grieving
+grievingly
+grievous
+grievously
+grill
+grilled
+grilling
+grills
+grim
+grimace
+grime
+grimed
+grimly
+grimness
+grin
+grind
+grinder
+grinders
+grinding
+grindings
+grinds
+grindstone
+grindstones
+grinning
+grins
+grip
+gripe
+griped
+gripes
+griping
+gripped
+gripping
+grippingly
+grips
+grisly
+grist
+grit
+grits
+gritty
+grizzly
+groan
+groaned
+groaner
+groaners
+groaning
+groans
+grocer
+groceries
+grocers
+grocery
+groggy
+groin
+groom
+groomed
+grooming
+grooms
+groove
+grooved
+grooves
+grope
+groped
+gropes
+groping
+gross
+grossed
+grosser
+grosses
+grossest
+grossing
+grossly
+grossness
+grotesque
+grotesquely
+grotesques
+grotto
+grottos
+ground
+grounded
+grounder
+grounders
+grounding
+grounds
+groundwork
+group
+grouped
+grouping
+groupings
+groups
+grouse
+grove
+grovel
+groveled
+groveling
+grovels
+grovers
+groves
+grow
+grower
+growers
+growing
+growl
+growled
+growling
+growls
+grown
+grownup
+grownups
+grows
+growth
+growths
+grub
+grubby
+grubs
+grudge
+grudges
+grudgingly
+gruesome
+gruff
+gruffly
+grumble
+grumbled
+grumbles
+grumbling
+grunt
+grunted
+grunting
+grunts
+guano
+guarantee
+guaranteed
+guaranteeing
+guaranteer
+guaranteers
+guarantees
+guaranty
+guard
+guarded
+guardedly
+guardhouse
+guardian
+guardians
+guardianship
+guarding
+guards
+gubernatorial
+guerrilla
+guerrillas
+guess
+guessed
+guesses
+guessing
+guesswork
+guest
+guests
+guidance
+guide
+guidebook
+guidebooks
+guided
+guideline
+guidelines
+guides
+guiding
+guild
+guilder
+guilders
+guile
+guilt
+guiltier
+guiltiest
+guiltily
+guiltiness
+guiltless
+guiltlessly
+guilty
+guinea
+guise
+guises
+guitar
+guitars
+gulch
+gulches
+gulf
+gulfs
+gull
+gulled
+gullies
+gulling
+gulls
+gully
+gulp
+gulped
+gulps
+gum
+gumming
+gumption
+gums
+gun
+gunfire
+gunman
+gunmen
+gunned
+gunner
+gunners
+gunnery
+gunning
+gunny
+gunplay
+gunpowder
+guns
+gunshot
+gurgle
+guru
+gush
+gushed
+gusher
+gushes
+gushing
+gust
+gusto
+gusts
+gusty
+gut
+guts
+gutsy
+gutter
+guttered
+gutters
+gutting
+guttural
+guy
+guyed
+guyer
+guyers
+guying
+guys
+gymnasium
+gymnasiums
+gymnast
+gymnastic
+gymnastics
+gymnasts
+gypsies
+gypsy
+gyro
+gyrocompass
+gyroscope
+gyroscopes
+ha
+habeas
+habit
+habitat
+habitation
+habitations
+habitats
+habits
+habitual
+habitually
+habitualness
+hack
+hacked
+hacker
+hackers
+hacking
+hackneyed
+hacks
+hacksaw
+had
+haddock
+hag
+haggard
+haggardly
+haggle
+hail
+hailed
+hailing
+hails
+hailstone
+hailstorm
+hair
+haircut
+haircuts
+hairier
+hairiness
+hairless
+hairpin
+hairs
+hairy
+halcyon
+hale
+haler
+half
+halfhearted
+halfway
+hall
+hallmark
+hallmarks
+hallow
+hallowed
+halls
+hallucinate
+hallway
+hallways
+halogen
+halt
+halted
+halter
+halters
+halting
+haltingly
+halts
+halve
+halved
+halvers
+halves
+halving
+ham
+hamburger
+hamburgers
+hamlet
+hamlets
+hammer
+hammered
+hammering
+hammers
+hamming
+hammock
+hammocks
+hamper
+hampered
+hampers
+hams
+hamster
+hand
+handbag
+handbags
+handbook
+handbooks
+handcuff
+handcuffed
+handcuffing
+handcuffs
+handed
+handful
+handfuls
+handgun
+handicap
+handicapped
+handicaps
+handier
+handiest
+handily
+handiness
+handing
+handiwork
+handkerchief
+handkerchiefs
+handle
+handled
+handler
+handlers
+handles
+handling
+handmaid
+handout
+hands
+handshake
+handshakes
+handshaking
+handsome
+handsomely
+handsomeness
+handsomer
+handsomest
+handwriting
+handwritten
+handy
+hang
+hangar
+hangars
+hanged
+hanger
+hangers
+hanging
+hangman
+hangmen
+hangout
+hangover
+hangovers
+hangs
+hap
+haphazard
+haphazardly
+haphazardness
+hapless
+haplessly
+haplessness
+haply
+happen
+happened
+happening
+happenings
+happens
+happier
+happiest
+happily
+happiness
+happy
+harass
+harassed
+harasses
+harassing
+harassment
+harbinger
+harbor
+harbored
+harboring
+harbors
+hard
+hardboiled
+hardcopy
+harden
+harder
+hardest
+hardhat
+hardiness
+hardly
+hardness
+hardscrabble
+hardship
+hardships
+hardware
+hardwired
+hardworking
+hardy
+hare
+harelip
+harem
+hares
+hark
+harken
+harlot
+harlots
+harm
+harmed
+harmful
+harmfully
+harmfulness
+harming
+harmless
+harmlessly
+harmlessness
+harmonic
+harmonics
+harmonies
+harmonious
+harmoniously
+harmoniousness
+harmonize
+harmony
+harms
+harness
+harnessed
+harnessing
+harp
+harper
+harpers
+harping
+harried
+harrier
+harrow
+harrowed
+harrowing
+harrows
+harry
+harsh
+harsher
+harshly
+harshness
+hart
+harvest
+harvested
+harvester
+harvesting
+harvests
+has
+hash
+hashed
+hasher
+hashes
+hashing
+hashish
+hassle
+haste
+hasten
+hastened
+hastening
+hastens
+hastily
+hastiness
+hasty
+hat
+hatch
+hatched
+hatchet
+hatchets
+hatching
+hate
+hated
+hateful
+hatefully
+hatefulness
+hater
+hates
+hating
+hatred
+hats
+haughtily
+haughtiness
+haughty
+haul
+hauled
+hauler
+hauling
+hauls
+haunch
+haunches
+haunt
+haunted
+haunter
+haunting
+haunts
+have
+haven
+havens
+haves
+having
+havoc
+hawk
+hawked
+hawker
+hawkers
+hawks
+hay
+haying
+haystack
+hazard
+hazardous
+hazards
+haze
+hazel
+hazes
+haziness
+hazy
+he
+head
+headache
+headaches
+headed
+header
+headers
+headgear
+heading
+headings
+headland
+headlands
+headlight
+headline
+headlined
+headlines
+headlining
+headlong
+headmaster
+headphone
+headquarters
+headroom
+heads
+headset
+headway
+heal
+healed
+healer
+healers
+healing
+heals
+health
+healthful
+healthfully
+healthfulness
+healthier
+healthiest
+healthily
+healthiness
+healthy
+heap
+heaped
+heaping
+heaps
+hear
+heard
+hearer
+hearers
+hearing
+hearings
+hearken
+hears
+hearsay
+heart
+heartbeat
+heartbreak
+hearten
+heartiest
+heartily
+heartiness
+heartless
+hearts
+hearty
+heat
+heatable
+heated
+heatedly
+heater
+heaters
+heath
+heathen
+heather
+heating
+heats
+heave
+heaved
+heaven
+heavenly
+heavens
+heaver
+heavers
+heaves
+heavier
+heaviest
+heavily
+heaviness
+heaving
+heavy
+heavyweight
+heck
+heckle
+hectic
+hedge
+hedged
+hedgehog
+hedgehogs
+hedges
+hedonism
+hedonist
+heed
+heeded
+heedless
+heedlessly
+heedlessness
+heeds
+heel
+heeled
+heelers
+heeling
+heels
+hefty
+hegemony
+heifer
+height
+heighten
+heightened
+heightening
+heightens
+heights
+heinous
+heinously
+heir
+heiress
+heiresses
+heirs
+held
+helical
+helicopter
+heliocentric
+helium
+helix
+hell
+hellfire
+hellish
+hello
+hells
+helm
+helmet
+helmets
+helmsman
+help
+helped
+helper
+helpers
+helpful
+helpfully
+helpfulness
+helping
+helpless
+helplessly
+helplessness
+helpmate
+helps
+hem
+hemisphere
+hemispheres
+hemlock
+hemlocks
+hemoglobin
+hemorrhoid
+hemostat
+hemostats
+hemp
+hempen
+hems
+hen
+hence
+henceforth
+henchman
+henchmen
+henpeck
+hens
+hepatitis
+her
+herald
+heralded
+heralding
+heralds
+herb
+herbivore
+herbivorous
+herbs
+herd
+herded
+herder
+herding
+herds
+here
+hereabout
+hereabouts
+hereafter
+hereby
+hereditary
+heredity
+herein
+hereinafter
+hereof
+heres
+heresy
+heretic
+heretics
+hereto
+heretofore
+hereunder
+herewith
+heritage
+heritages
+hermetic
+hermetically
+hermit
+hermitian
+hermits
+hero
+heroes
+heroic
+heroically
+heroics
+heroin
+heroine
+heroines
+heroism
+heron
+herons
+herpes
+herring
+herrings
+hers
+herself
+hertz
+hesitant
+hesitantly
+hesitate
+hesitated
+hesitates
+hesitating
+hesitatingly
+hesitation
+hesitations
+heterogeneity
+heterogeneous
+heterogeneously
+heterogeneousness
+heterogenous
+heterosexual
+heuristic
+heuristically
+heuristics
+hew
+hewed
+hewer
+hews
+hex
+hexadecimal
+hexagon
+hexagonal
+hexagonally
+hexagons
+hey
+hi
+hibernate
+hick
+hickory
+hid
+hidden
+hide
+hideous
+hideously
+hideousness
+hideout
+hideouts
+hides
+hiding
+hierarchal
+hierarchic
+hierarchical
+hierarchically
+hierarchies
+hierarchy
+high
+higher
+highest
+highland
+highlander
+highlands
+highlight
+highlighted
+highlighting
+highlights
+highly
+highness
+highnesses
+highway
+highwayman
+highwaymen
+highways
+hijack
+hijacked
+hike
+hiked
+hiker
+hikes
+hiking
+hilarious
+hilariously
+hilarity
+hill
+hillbilly
+hillock
+hills
+hillside
+hillsides
+hilltop
+hilltops
+hilt
+hilts
+him
+himself
+hind
+hinder
+hindered
+hindering
+hinders
+hindrance
+hindrances
+hindsight
+hinge
+hinged
+hinges
+hint
+hinted
+hinting
+hints
+hip
+hippo
+hippopotamus
+hips
+hire
+hired
+hirer
+hirers
+hires
+hiring
+hirings
+his
+hiss
+hissed
+hisses
+hissing
+histogram
+histograms
+historian
+historians
+historic
+historical
+historically
+histories
+history
+hit
+hitch
+hitched
+hitchhike
+hitchhiked
+hitchhiker
+hitchhikers
+hitchhikes
+hitchhiking
+hitching
+hither
+hitherto
+hits
+hitter
+hitters
+hitting
+hive
+hoar
+hoard
+hoarder
+hoarding
+hoariness
+hoarse
+hoarsely
+hoarseness
+hoary
+hobbies
+hobble
+hobbled
+hobbles
+hobbling
+hobby
+hobbyhorse
+hobbyist
+hobbyists
+hockey
+hodgepodge
+hoe
+hoes
+hog
+hogging
+hogs
+hoist
+hoisted
+hoisting
+hoists
+hold
+holden
+holder
+holders
+holding
+holdings
+holds
+hole
+holed
+holes
+holiday
+holidays
+holies
+holiness
+holistic
+hollow
+hollowed
+hollowing
+hollowly
+hollowness
+hollows
+holly
+holocaust
+hologram
+holograms
+holy
+homage
+home
+homed
+homeless
+homely
+homemade
+homemaker
+homemakers
+homeomorphic
+homeomorphism
+homeomorphisms
+homeopath
+homeowner
+homer
+homers
+homes
+homesick
+homesickness
+homespun
+homestead
+homesteader
+homesteaders
+homesteads
+homeward
+homewards
+homework
+homicidal
+homicide
+homing
+homo
+homogeneities
+homogeneity
+homogeneous
+homogeneously
+homogeneousness
+homomorphic
+homomorphism
+homomorphisms
+homosexual
+hone
+honed
+honer
+hones
+honest
+honestly
+honesty
+honey
+honeybee
+honeycomb
+honeycombed
+honeydew
+honeymoon
+honeymooned
+honeymooner
+honeymooners
+honeymooning
+honeymoons
+honeysuckle
+honing
+honor
+honorable
+honorableness
+honorably
+honoraries
+honorarium
+honorary
+honored
+honorer
+honoring
+honors
+hood
+hooded
+hoodlum
+hoods
+hoodwink
+hoodwinked
+hoodwinking
+hoodwinks
+hoof
+hoofs
+hook
+hooked
+hooker
+hookers
+hooking
+hooks
+hookup
+hookups
+hoop
+hooper
+hoops
+hoot
+hooted
+hooter
+hooting
+hoots
+hooves
+hop
+hope
+hoped
+hopeful
+hopefully
+hopefulness
+hopefuls
+hopeless
+hopelessly
+hopelessness
+hopes
+hoping
+hopper
+hoppers
+hopping
+hops
+horde
+hordes
+horizon
+horizons
+horizontal
+horizontally
+hormone
+hormones
+horn
+horned
+hornet
+hornets
+horns
+horny
+horrendous
+horrendously
+horrible
+horribleness
+horribly
+horrid
+horridly
+horrified
+horrifies
+horrify
+horrifying
+horror
+horrors
+horse
+horseback
+horseflesh
+horsefly
+horseman
+horseplay
+horsepower
+horses
+horseshoe
+horseshoer
+horticulture
+hose
+hoses
+hospitable
+hospitably
+hospital
+hospitality
+hospitalize
+hospitalized
+hospitalizes
+hospitalizing
+hospitals
+host
+hostage
+hostages
+hosted
+hostess
+hostesses
+hostile
+hostilely
+hostilities
+hostility
+hosting
+hosts
+hot
+hotel
+hotels
+hotly
+hotness
+hotter
+hottest
+hound
+hounded
+hounding
+hounds
+hour
+hourglass
+hourly
+hours
+house
+houseboat
+housebroken
+housed
+houseflies
+housefly
+household
+householder
+householders
+households
+housekeeper
+housekeepers
+housekeeping
+houses
+housetop
+housetops
+housewife
+housewifely
+housewives
+housework
+housing
+hovel
+hovels
+hover
+hovered
+hovering
+hovers
+how
+however
+howl
+howled
+howler
+howling
+howls
+hub
+hubris
+hubs
+huddle
+huddled
+huddling
+hue
+hues
+hug
+huge
+hugely
+hugeness
+hugging
+huh
+hull
+hulls
+hum
+human
+humane
+humanely
+humaneness
+humanitarian
+humanities
+humanity
+humanly
+humanness
+humans
+humble
+humbled
+humbleness
+humbler
+humblest
+humbling
+humbly
+humbug
+humerus
+humid
+humidification
+humidified
+humidifier
+humidifiers
+humidifies
+humidify
+humidifying
+humidity
+humidly
+humiliate
+humiliated
+humiliates
+humiliating
+humiliation
+humiliations
+humility
+hummed
+humming
+hummingbird
+humor
+humored
+humorer
+humorers
+humoring
+humorous
+humorously
+humorousness
+humors
+hump
+humpback
+humped
+hums
+hunch
+hunched
+hunches
+hundred
+hundredfold
+hundreds
+hundredth
+hung
+hunger
+hungered
+hungering
+hungers
+hungrier
+hungriest
+hungrily
+hungry
+hunk
+hunks
+hunt
+hunted
+hunters
+hunting
+hunts
+huntsman
+hurdle
+hurl
+hurled
+hurler
+hurlers
+hurling
+hurrah
+hurricane
+hurricanes
+hurried
+hurriedly
+hurries
+hurry
+hurrying
+hurt
+hurting
+hurtle
+hurtling
+hurts
+husband
+husbandry
+husbands
+hush
+hushed
+hushes
+hushing
+husk
+husked
+husker
+huskiness
+husking
+husks
+husky
+hustle
+hustled
+hustler
+hustles
+hustling
+hut
+hutch
+huts
+hyacinth
+hybrid
+hydra
+hydrant
+hydraulic
+hydro
+hydrodynamic
+hydrodynamics
+hydrogen
+hydrogens
+hyena
+hygiene
+hymen
+hymn
+hymns
+hyper
+hyperbola
+hyperbolic
+hypertext
+hyphen
+hyphenate
+hyphens
+hypnosis
+hypnotic
+hypocrisies
+hypocrisy
+hypocrite
+hypocrites
+hypodermic
+hypodermics
+hypotheses
+hypothesis
+hypothesize
+hypothesized
+hypothesizer
+hypothesizes
+hypothesizing
+hypothetical
+hypothetically
+hysteresis
+hysterical
+hysterically
+ibex
+ibid
+ibis
+ice
+iceberg
+icebergs
+icebox
+iced
+ices
+icicle
+iciness
+icing
+icings
+icon
+iconoclasm
+iconoclast
+icons
+icosahedra
+icosahedral
+icosahedron
+icy
+idea
+ideal
+idealism
+idealistic
+idealization
+idealizations
+idealize
+idealized
+idealizes
+idealizing
+ideally
+ideals
+ideas
+idem
+idempotency
+idempotent
+identical
+identically
+identifiable
+identifiably
+identification
+identifications
+identified
+identifier
+identifiers
+identifies
+identify
+identifying
+identities
+identity
+ideological
+ideologically
+ideology
+idiocy
+idiom
+idiosyncrasies
+idiosyncrasy
+idiosyncratic
+idiot
+idiotic
+idiots
+idle
+idled
+idleness
+idler
+idlers
+idles
+idlest
+idling
+idly
+idol
+idolatry
+idols
+if
+igloo
+ignite
+ignition
+ignoble
+ignominious
+ignoramus
+ignorance
+ignorant
+ignorantly
+ignore
+ignored
+ignores
+ignoring
+ill
+illegal
+illegalities
+illegality
+illegally
+illegitimate
+illicit
+illicitly
+illiteracy
+illiterate
+illness
+illnesses
+illogical
+illogically
+ills
+illuminate
+illuminated
+illuminates
+illuminating
+illumination
+illuminations
+illusion
+illusions
+illusive
+illusively
+illusory
+illustrate
+illustrated
+illustrates
+illustrating
+illustration
+illustrations
+illustrative
+illustratively
+illustrator
+illustrators
+illustrious
+illustriousness
+illy
+image
+imagery
+images
+imaginable
+imaginably
+imaginary
+imagination
+imaginations
+imaginative
+imaginatively
+imagine
+imagined
+imagines
+imaging
+imagining
+imaginings
+imbalance
+imbalances
+imbecile
+imbibe
+imitate
+imitated
+imitates
+imitating
+imitation
+imitations
+imitative
+immaculate
+immaculately
+immaterial
+immaterially
+immature
+immaturity
+immediacies
+immediacy
+immediate
+immediately
+immemorial
+immense
+immensely
+immerse
+immersed
+immerses
+immersion
+immigrant
+immigrants
+immigrate
+immigrated
+immigrates
+immigrating
+immigration
+imminent
+imminently
+immoderate
+immodest
+immoral
+immortal
+immortality
+immortally
+immovability
+immovable
+immovably
+immune
+immunities
+immunity
+immunization
+immutable
+imp
+impact
+impacted
+impacting
+impaction
+impactor
+impactors
+impacts
+impair
+impaired
+impairing
+impairs
+impale
+impart
+imparted
+impartial
+impartially
+imparts
+impasse
+impassive
+impatience
+impatient
+impatiently
+impeach
+impeachable
+impeached
+impeachment
+impeccable
+impedance
+impedances
+impede
+impeded
+impedes
+impediment
+impediments
+impeding
+impel
+impelled
+impelling
+impend
+impending
+impenetrability
+impenetrable
+impenetrably
+imperative
+imperatively
+imperatives
+imperceivable
+imperceptible
+imperfect
+imperfection
+imperfections
+imperfectly
+imperial
+imperialism
+imperialist
+imperialists
+imperil
+imperiled
+imperious
+imperiously
+impermanence
+impermanent
+impermeable
+impermissible
+impersonal
+impersonally
+impersonate
+impersonated
+impersonates
+impersonating
+impersonation
+impersonations
+impertinent
+impertinently
+impervious
+imperviously
+impetuous
+impetuously
+impetus
+impinge
+impinged
+impinges
+impinging
+impious
+implacable
+implant
+implanted
+implanting
+implants
+implausible
+implement
+implementable
+implementation
+implementations
+implemented
+implementer
+implementing
+implementor
+implementors
+implements
+implicant
+implicants
+implicate
+implicated
+implicates
+implicating
+implication
+implications
+implicit
+implicitly
+implicitness
+implied
+implies
+implore
+implored
+imploring
+imply
+implying
+impolite
+import
+importance
+important
+importantly
+importation
+imported
+importer
+importers
+importing
+imports
+impose
+imposed
+imposes
+imposing
+imposition
+impositions
+impossibilities
+impossibility
+impossible
+impossibly
+impostor
+impostors
+impotence
+impotency
+impotent
+impound
+impoverish
+impoverished
+impoverishment
+impracticable
+impractical
+impracticality
+impractically
+imprecise
+imprecisely
+imprecision
+impregnable
+impregnate
+impress
+impressed
+impresser
+impresses
+impressible
+impressing
+impression
+impressionable
+impressionist
+impressionistic
+impressions
+impressive
+impressively
+impressiveness
+impressment
+imprimatur
+imprint
+imprinted
+imprinting
+imprints
+imprison
+imprisoned
+imprisoning
+imprisonment
+imprisonments
+imprisons
+improbability
+improbable
+impromptu
+improper
+improperly
+impropriety
+improve
+improved
+improvement
+improvements
+improves
+improving
+improvisation
+improvisational
+improvisations
+improvise
+improvised
+improviser
+improvisers
+improvises
+improvising
+imprudent
+imps
+impudent
+impudently
+impugn
+impulse
+impulses
+impulsion
+impulsive
+impunity
+impure
+impurities
+impurity
+impute
+imputed
+in
+inability
+inaccessible
+inaccuracies
+inaccuracy
+inaccurate
+inaction
+inactivate
+inactive
+inactivity
+inadequacies
+inadequacy
+inadequate
+inadequately
+inadequateness
+inadmissibility
+inadmissible
+inadvertent
+inadvertently
+inadvisable
+inalienable
+inalterable
+inane
+inanimate
+inanimately
+inapplicable
+inapproachable
+inappropriate
+inappropriateness
+inasmuch
+inattention
+inaudible
+inaugural
+inaugurate
+inaugurated
+inaugurating
+inauguration
+inauspicious
+inboard
+inbound
+inbreed
+incalculable
+incandescent
+incantation
+incapable
+incapacitate
+incapacitating
+incarcerate
+incarnation
+incarnations
+incendiaries
+incendiary
+incense
+incensed
+incenses
+incentive
+incentives
+inception
+incessant
+incessantly
+incest
+incestuous
+inch
+inched
+inches
+inching
+incidence
+incident
+incidental
+incidentally
+incidentals
+incidents
+incinerate
+incipient
+incisive
+incite
+incited
+incitement
+incites
+inciting
+inclement
+inclination
+inclinations
+incline
+inclined
+inclines
+inclining
+inclose
+inclosed
+incloses
+inclosing
+include
+included
+includes
+including
+inclusion
+inclusions
+inclusive
+inclusively
+inclusiveness
+incoherence
+incoherent
+incoherently
+income
+incomes
+incoming
+incommensurable
+incommensurate
+incommunicable
+incomparable
+incomparably
+incompatibilities
+incompatibility
+incompatible
+incompatibly
+incompetence
+incompetent
+incompetents
+incomplete
+incompletely
+incompleteness
+incomprehensibility
+incomprehensible
+incomprehensibly
+incomprehension
+incompressible
+incomputable
+inconceivable
+inconclusive
+incongruity
+incongruous
+inconsequential
+inconsequentially
+inconsiderable
+inconsiderate
+inconsiderately
+inconsiderateness
+inconsistencies
+inconsistency
+inconsistent
+inconsistently
+inconspicuous
+incontestable
+incontrovertible
+incontrovertibly
+inconvenience
+inconvenienced
+inconveniences
+inconveniencing
+inconvenient
+inconveniently
+inconvertible
+incorporate
+incorporated
+incorporates
+incorporating
+incorporation
+incorrect
+incorrectly
+incorrectness
+incorrigible
+increase
+increased
+increases
+increasing
+increasingly
+incredible
+incredibly
+incredulity
+incredulous
+incredulously
+increment
+incremental
+incrementally
+incremented
+incrementer
+incrementing
+increments
+incriminate
+incubate
+incubated
+incubates
+incubating
+incubation
+incubator
+incubators
+inculcate
+incumbent
+incur
+incurable
+incurred
+incurring
+incurs
+incursion
+indebted
+indebtedness
+indecent
+indecipherable
+indecision
+indecisive
+indeed
+indefatigable
+indefensible
+indefinite
+indefinitely
+indefiniteness
+indelible
+indemnify
+indemnity
+indent
+indentation
+indentations
+indented
+indenting
+indents
+indenture
+independence
+independent
+independently
+indescribable
+indestructible
+indeterminacies
+indeterminacy
+indeterminate
+indeterminately
+index
+indexable
+indexed
+indexes
+indexing
+indicate
+indicated
+indicates
+indicating
+indication
+indications
+indicative
+indicator
+indicators
+indices
+indict
+indictment
+indictments
+indifference
+indifferent
+indifferently
+indigenous
+indigenously
+indigenousness
+indigestible
+indigestion
+indignant
+indignantly
+indignation
+indignities
+indignity
+indigo
+indirect
+indirected
+indirecting
+indirection
+indirections
+indirectly
+indirects
+indiscreet
+indiscretion
+indiscriminate
+indiscriminately
+indispensability
+indispensable
+indispensably
+indisputable
+indistinct
+indistinguishable
+individual
+individualism
+individualistic
+individuality
+individualize
+individualized
+individualizes
+individualizing
+individually
+individuals
+indivisibility
+indivisible
+indoctrinate
+indoctrinated
+indoctrinates
+indoctrinating
+indoctrination
+indolent
+indolently
+indomitable
+indoor
+indoors
+indubitable
+induce
+induced
+inducement
+inducements
+inducer
+induces
+inducing
+induct
+inductance
+inductances
+inducted
+inductee
+inducting
+induction
+inductions
+inductive
+inductively
+inductor
+inductors
+inducts
+indulge
+indulged
+indulgence
+indulgences
+indulgent
+indulging
+industrial
+industrialism
+industrialist
+industrialists
+industrialization
+industrialized
+industrially
+industrials
+industries
+industrious
+industriously
+industriousness
+industry
+ineffective
+ineffectively
+ineffectiveness
+ineffectual
+inefficiencies
+inefficiency
+inefficient
+inefficiently
+inelegant
+ineligible
+inept
+inequalities
+inequality
+inequitable
+inequity
+inert
+inertia
+inertial
+inertly
+inertness
+inescapable
+inescapably
+inessential
+inestimable
+inevitabilities
+inevitability
+inevitable
+inevitably
+inexact
+inexcusable
+inexcusably
+inexhaustible
+inexorable
+inexorably
+inexpensive
+inexpensively
+inexperience
+inexperienced
+inexplicable
+infallibility
+infallible
+infallibly
+infamous
+infamously
+infamy
+infancy
+infant
+infantile
+infantry
+infantryman
+infantrymen
+infants
+infarct
+infatuate
+infeasible
+infect
+infected
+infecting
+infection
+infections
+infectious
+infectiously
+infective
+infects
+infer
+inference
+inferences
+inferential
+inferior
+inferiority
+inferiors
+infernal
+infernally
+inferno
+infernos
+inferred
+inferring
+infers
+infertile
+infest
+infested
+infesting
+infests
+infidel
+infidelity
+infidels
+infighting
+infiltrate
+infinite
+infinitely
+infiniteness
+infinitesimal
+infinitive
+infinitives
+infinitude
+infinitum
+infinity
+infirm
+infirmary
+infirmity
+infix
+inflame
+inflamed
+inflammable
+inflammation
+inflammatory
+inflatable
+inflate
+inflated
+inflater
+inflates
+inflating
+inflation
+inflationary
+inflexibility
+inflexible
+inflict
+inflicted
+inflicting
+inflicts
+inflow
+influence
+influenced
+influences
+influencing
+influential
+influentially
+influenza
+inform
+informal
+informality
+informally
+informant
+informants
+information
+informational
+informative
+informatively
+informed
+informer
+informers
+informing
+informs
+infra
+infrared
+infrastructure
+infrequent
+infrequently
+infringe
+infringed
+infringement
+infringements
+infringes
+infringing
+infuriate
+infuriated
+infuriates
+infuriating
+infuriation
+infuse
+infused
+infuses
+infusing
+infusion
+infusions
+ingenious
+ingeniously
+ingeniousness
+ingenuity
+ingenuous
+ingest
+ingestion
+inglorious
+ingot
+ingrate
+ingratiate
+ingratitude
+ingredient
+ingredients
+ingrown
+inhabit
+inhabitable
+inhabitance
+inhabitant
+inhabitants
+inhabited
+inhabiting
+inhabits
+inhale
+inhaled
+inhaler
+inhales
+inhaling
+inhere
+inherent
+inherently
+inheres
+inherit
+inheritable
+inheritance
+inheritances
+inherited
+inheriting
+inheritor
+inheritors
+inheritress
+inheritresses
+inheritrices
+inheritrix
+inherits
+inhibit
+inhibited
+inhibiting
+inhibition
+inhibitions
+inhibitor
+inhibitors
+inhibitory
+inhibits
+inhomogeneities
+inhomogeneity
+inhomogeneous
+inhospitable
+inhuman
+inhumane
+inimical
+inimitable
+iniquities
+iniquity
+initial
+initialed
+initialing
+initialization
+initializations
+initialize
+initialized
+initializer
+initializers
+initializes
+initializing
+initially
+initials
+initiate
+initiated
+initiates
+initiating
+initiation
+initiations
+initiative
+initiatives
+initiator
+initiators
+inject
+injected
+injecting
+injection
+injections
+injective
+injects
+injudicious
+injunction
+injunctions
+injure
+injured
+injures
+injuries
+injuring
+injurious
+injury
+injustice
+injustices
+ink
+inked
+inker
+inkers
+inking
+inkings
+inkling
+inklings
+inks
+inlaid
+inland
+inlay
+inlet
+inlets
+inline
+inmate
+inmates
+inn
+innards
+innate
+innately
+inner
+innermost
+inning
+innings
+innocence
+innocent
+innocently
+innocents
+innocuous
+innocuously
+innocuousness
+innovate
+innovation
+innovations
+innovative
+inns
+innuendo
+innumerability
+innumerable
+innumerably
+inoculate
+inoperable
+inoperative
+inopportune
+inordinate
+inordinately
+inorganic
+input
+inputs
+inquest
+inquire
+inquired
+inquirer
+inquirers
+inquires
+inquiries
+inquiring
+inquiry
+inquisition
+inquisitions
+inquisitive
+inquisitively
+inquisitiveness
+inroad
+inroads
+insane
+insanely
+insanity
+insatiable
+inscribe
+inscribed
+inscribes
+inscribing
+inscription
+inscriptions
+inscrutable
+insect
+insecticide
+insects
+insecure
+insecurely
+inseminate
+insensible
+insensitive
+insensitively
+insensitivity
+inseparable
+insert
+inserted
+inserting
+insertion
+insertions
+inserts
+inset
+inside
+insider
+insiders
+insides
+insidious
+insidiously
+insidiousness
+insight
+insightful
+insights
+insignia
+insignificance
+insignificant
+insincere
+insincerity
+insinuate
+insinuated
+insinuates
+insinuating
+insinuation
+insinuations
+insipid
+insist
+insisted
+insistence
+insistent
+insistently
+insisting
+insists
+insofar
+insolence
+insolent
+insolently
+insoluble
+insolvable
+insolvent
+insomnia
+insomniac
+inspect
+inspected
+inspecting
+inspection
+inspections
+inspector
+inspectors
+inspects
+inspiration
+inspirations
+inspire
+inspired
+inspirer
+inspires
+inspiring
+instabilities
+instability
+install
+installation
+installations
+installed
+installer
+installers
+installing
+installment
+installments
+installs
+instance
+instances
+instant
+instantaneous
+instantaneously
+instanter
+instantiate
+instantiated
+instantiates
+instantiating
+instantiation
+instantiations
+instantly
+instants
+instead
+instigate
+instigated
+instigates
+instigating
+instigator
+instigators
+instill
+instinct
+instinctive
+instinctively
+instincts
+instinctual
+institute
+instituted
+instituter
+instituters
+institutes
+instituting
+institution
+institutional
+institutionalize
+institutionalized
+institutionalizes
+institutionalizing
+institutionally
+institutions
+instruct
+instructed
+instructing
+instruction
+instructional
+instructions
+instructive
+instructively
+instructor
+instructors
+instructs
+instrument
+instrumental
+instrumentalist
+instrumentalists
+instrumentally
+instrumentals
+instrumentation
+instrumented
+instrumenting
+instruments
+insubordinate
+insufferable
+insufficient
+insufficiently
+insular
+insulate
+insulated
+insulates
+insulating
+insulation
+insulator
+insulators
+insulin
+insult
+insulted
+insulting
+insults
+insuperable
+insupportable
+insurance
+insure
+insured
+insurer
+insurers
+insures
+insurgent
+insurgents
+insuring
+insurmountable
+insurrection
+insurrections
+intact
+intangible
+intangibles
+integer
+integers
+integrable
+integral
+integrals
+integrand
+integrate
+integrated
+integrates
+integrating
+integration
+integrations
+integrative
+integrity
+intellect
+intellects
+intellectual
+intellectually
+intellectuals
+intelligence
+intelligent
+intelligently
+intelligentsia
+intelligibility
+intelligible
+intelligibly
+intemperate
+intend
+intended
+intending
+intends
+intense
+intensely
+intensification
+intensified
+intensifier
+intensifiers
+intensifies
+intensify
+intensifying
+intensities
+intensity
+intensive
+intensively
+intent
+intention
+intentional
+intentionally
+intentioned
+intentions
+intently
+intentness
+intents
+inter
+interact
+interacted
+interacting
+interaction
+interactions
+interactive
+interactively
+interactivity
+interacts
+intercept
+intercepted
+intercepting
+interception
+interceptor
+intercepts
+interchange
+interchangeability
+interchangeable
+interchangeably
+interchanged
+interchanger
+interchanges
+interchanging
+interchangings
+interchannel
+intercity
+intercom
+intercommunicate
+intercommunicated
+intercommunicates
+intercommunicating
+intercommunication
+interconnect
+interconnected
+interconnecting
+interconnection
+interconnections
+interconnects
+intercontinental
+intercourse
+interdependence
+interdependencies
+interdependency
+interdependent
+interdict
+interdiction
+interdisciplinary
+interest
+interested
+interesting
+interestingly
+interests
+interface
+interfaced
+interfacer
+interfaces
+interfacing
+interfere
+interfered
+interference
+interferences
+interferes
+interfering
+interferingly
+interferometer
+interferometric
+interferometry
+interframe
+intergroup
+interim
+interior
+interiors
+interject
+interlace
+interlaced
+interlaces
+interlacing
+interleave
+interleaved
+interleaves
+interleaving
+interlink
+interlinked
+interlinks
+interlisp
+intermediary
+intermediate
+intermediates
+interminable
+intermingle
+intermingled
+intermingles
+intermingling
+intermission
+intermittent
+intermittently
+intermix
+intermixed
+intermodule
+intern
+internal
+internalize
+internalized
+internalizes
+internalizing
+internally
+internals
+international
+internationality
+internationally
+interned
+internetwork
+interning
+interns
+internship
+interoffice
+interpersonal
+interplay
+interpolate
+interpolated
+interpolates
+interpolating
+interpolation
+interpolations
+interpose
+interposed
+interposes
+interposing
+interpret
+interpretable
+interpretation
+interpretations
+interpreted
+interpreter
+interpreters
+interpreting
+interpretive
+interpretively
+interprets
+interprocess
+interrelate
+interrelated
+interrelates
+interrelating
+interrelation
+interrelations
+interrelationship
+interrelationships
+interrogate
+interrogated
+interrogates
+interrogating
+interrogation
+interrogations
+interrogative
+interrupt
+interrupted
+interruptible
+interrupting
+interruption
+interruptions
+interruptive
+interrupts
+intersect
+intersected
+intersecting
+intersection
+intersections
+intersects
+intersperse
+interspersed
+intersperses
+interspersing
+interspersion
+interstage
+interstate
+intertwine
+intertwined
+intertwines
+intertwining
+interval
+intervals
+intervene
+intervened
+intervenes
+intervening
+intervention
+interventions
+interview
+interviewed
+interviewee
+interviewer
+interviewers
+interviewing
+interviews
+interwoven
+intestate
+intestinal
+intestine
+intestines
+intimacy
+intimate
+intimated
+intimately
+intimating
+intimation
+intimations
+intimidate
+intimidated
+intimidates
+intimidating
+intimidation
+into
+intolerable
+intolerably
+intolerance
+intolerant
+intonation
+intonations
+intone
+intoxicant
+intoxicate
+intoxicated
+intoxicating
+intoxication
+intractability
+intractable
+intractably
+intragroup
+intraline
+intramural
+intramuscular
+intransigent
+intransitive
+intransitively
+intraoffice
+intraprocess
+intrastate
+intravenous
+intrepid
+intricacies
+intricacy
+intricate
+intricately
+intrigue
+intrigued
+intrigues
+intriguing
+intrinsic
+intrinsically
+introduce
+introduced
+introduces
+introducing
+introduction
+introductions
+introductory
+introspect
+introspection
+introspections
+introspective
+introvert
+introverted
+intrude
+intruded
+intruder
+intruders
+intrudes
+intruding
+intrusion
+intrusions
+intrust
+intubate
+intubated
+intubates
+intubation
+intuition
+intuitionist
+intuitions
+intuitive
+intuitively
+inundate
+invade
+invaded
+invader
+invaders
+invades
+invading
+invalid
+invalidate
+invalidated
+invalidates
+invalidating
+invalidation
+invalidations
+invalidities
+invalidity
+invalidly
+invalids
+invaluable
+invariable
+invariably
+invariance
+invariant
+invariantly
+invariants
+invasion
+invasions
+invective
+invent
+invented
+inventing
+invention
+inventions
+inventive
+inventively
+inventiveness
+inventor
+inventories
+inventors
+inventory
+invents
+inverse
+inversely
+inverses
+inversion
+inversions
+invert
+invertebrate
+invertebrates
+inverted
+inverter
+inverters
+invertible
+inverting
+inverts
+invest
+invested
+investigate
+investigated
+investigates
+investigating
+investigation
+investigations
+investigative
+investigator
+investigators
+investigatory
+investing
+investment
+investments
+investor
+investors
+invests
+inveterate
+invigorate
+invincible
+invisibility
+invisible
+invisibly
+invitation
+invitations
+invite
+invited
+invites
+inviting
+invocable
+invocation
+invocations
+invoice
+invoiced
+invoices
+invoicing
+invoke
+invoked
+invoker
+invokes
+invoking
+involuntarily
+involuntary
+involve
+involved
+involvement
+involvements
+involves
+involving
+inward
+inwardly
+inwardness
+inwards
+iodine
+ion
+ionosphere
+ionospheric
+ions
+iota
+irate
+irately
+irateness
+ire
+ires
+iris
+irk
+irked
+irking
+irks
+irksome
+iron
+ironed
+ironic
+ironical
+ironically
+ironies
+ironing
+ironings
+irons
+irony
+irradiate
+irrational
+irrationally
+irrationals
+irreconcilable
+irrecoverable
+irreducible
+irreducibly
+irreflexive
+irrefutable
+irregular
+irregularities
+irregularity
+irregularly
+irregulars
+irrelevance
+irrelevances
+irrelevant
+irrelevantly
+irreplaceable
+irrepressible
+irreproducibility
+irreproducible
+irresistible
+irrespective
+irrespectively
+irresponsible
+irresponsibly
+irretrievably
+irreverent
+irreversibility
+irreversible
+irreversibly
+irrevocable
+irrevocably
+irrigate
+irrigated
+irrigates
+irrigating
+irrigation
+irritable
+irritant
+irritate
+irritated
+irritates
+irritating
+irritation
+irritations
+is
+island
+islander
+islanders
+islands
+isle
+isles
+islet
+islets
+isolate
+isolated
+isolates
+isolating
+isolation
+isolations
+isometric
+isomorphic
+isomorphically
+isomorphism
+isomorphisms
+isotope
+isotopes
+issuance
+issue
+issued
+issuer
+issuers
+issues
+issuing
+isthmus
+it
+italic
+italicize
+italicized
+italics
+itch
+itches
+itching
+item
+itemization
+itemizations
+itemize
+itemized
+itemizes
+itemizing
+items
+iterate
+iterated
+iterates
+iterating
+iteration
+iterations
+iterative
+iteratively
+iterator
+iterators
+itineraries
+itinerary
+its
+itself
+ivies
+ivory
+ivy
+jab
+jabbed
+jabbing
+jabs
+jack
+jackass
+jacket
+jacketed
+jackets
+jacking
+jackknife
+jackpot
+jade
+jaded
+jaguar
+jail
+jailed
+jailer
+jailers
+jailing
+jails
+jam
+jammed
+jamming
+jams
+janitor
+janitors
+jar
+jargon
+jarred
+jarring
+jarringly
+jars
+jaundice
+jaunt
+jauntiness
+jaunts
+jaunty
+javelin
+javelins
+jaw
+jawbone
+jaws
+jay
+jazz
+jazzy
+jealous
+jealousies
+jealously
+jealousy
+jean
+jeans
+jeep
+jeeps
+jeer
+jeers
+jellies
+jelly
+jellyfish
+jenny
+jeopardize
+jeopardized
+jeopardizes
+jeopardizing
+jeopardy
+jerk
+jerked
+jerkiness
+jerking
+jerkings
+jerks
+jerky
+jersey
+jerseys
+jest
+jested
+jester
+jesting
+jests
+jet
+jetliner
+jets
+jetted
+jetting
+jewel
+jeweled
+jeweler
+jewelries
+jewelry
+jewels
+jiffy
+jig
+jigs
+jigsaw
+jingle
+jingled
+jingling
+jitter
+jitterbug
+jittery
+job
+jobs
+jockey
+jockstrap
+jocund
+jog
+jogging
+jogs
+join
+joined
+joiner
+joiners
+joining
+joins
+joint
+jointly
+joints
+joke
+joked
+joker
+jokers
+jokes
+joking
+jokingly
+jolly
+jolt
+jolted
+jolting
+jolts
+jonquil
+jostle
+jostled
+jostles
+jostling
+jot
+jots
+jotted
+jotting
+joule
+journal
+journalism
+journalist
+journalists
+journalize
+journalized
+journalizes
+journalizing
+journals
+journey
+journeyed
+journeying
+journeyings
+journeyman
+journeymen
+journeys
+joust
+jousted
+jousting
+jousts
+jovial
+joy
+joyful
+joyfully
+joyous
+joyously
+joyousness
+joyride
+joys
+joystick
+jubilee
+judge
+judged
+judges
+judging
+judgment
+judgments
+judicial
+judiciary
+judicious
+judiciously
+judo
+jug
+juggle
+juggler
+jugglers
+juggles
+juggling
+jugs
+juice
+juices
+juiciest
+juicy
+jumble
+jumbled
+jumbles
+jumbo
+jump
+jumped
+jumper
+jumpers
+jumping
+jumps
+jumpy
+junction
+junctions
+juncture
+junctures
+jungle
+jungles
+junior
+juniors
+juniper
+junk
+junker
+junkers
+junks
+junky
+junta
+jure
+juries
+jurisdiction
+jurisdictions
+jurisprudence
+jurist
+juror
+jurors
+jury
+just
+justice
+justices
+justifiable
+justifiably
+justification
+justifications
+justified
+justifier
+justifiers
+justifies
+justify
+justifying
+justly
+justness
+jut
+jutting
+juvenile
+juveniles
+juxtapose
+juxtaposed
+juxtaposes
+juxtaposing
+kangaroo
+kanji
+kappa
+karate
+keel
+keeled
+keeling
+keels
+keen
+keener
+keenest
+keenly
+keenness
+keep
+keeper
+keepers
+keeping
+keeps
+ken
+kennel
+kennels
+kept
+kerchief
+kerchiefs
+kern
+kernel
+kernels
+kerosene
+ketchup
+kettle
+kettles
+key
+keyboard
+keyboards
+keyed
+keyhole
+keying
+keynote
+keypad
+keypads
+keys
+keystroke
+keystrokes
+keyword
+keywords
+kick
+kicked
+kicker
+kickers
+kicking
+kickoff
+kicks
+kid
+kidded
+kiddie
+kidding
+kidnap
+kidnapper
+kidnappers
+kidnapping
+kidnappings
+kidnaps
+kidney
+kidneys
+kids
+kill
+killed
+killer
+killers
+killing
+killingly
+killings
+killjoy
+kills
+kilobit
+kilobits
+kiloblock
+kilobyte
+kilobytes
+kilogram
+kilograms
+kilohertz
+kilohm
+kilojoule
+kilometer
+kilometers
+kiloton
+kilovolt
+kilowatt
+kiloword
+kimono
+kin
+kind
+kinder
+kindergarten
+kindest
+kindhearted
+kindle
+kindled
+kindles
+kindling
+kindly
+kindness
+kindred
+kinds
+kinetic
+king
+kingdom
+kingdoms
+kingly
+kingpin
+kings
+kink
+kinky
+kinship
+kinsman
+kiosk
+kiss
+kissed
+kisser
+kissers
+kisses
+kissing
+kit
+kitchen
+kitchenette
+kitchens
+kite
+kited
+kites
+kiting
+kits
+kitten
+kittenish
+kittens
+kitty
+klaxon
+kludge
+kludges
+klystron
+knack
+knapsack
+knapsacks
+knave
+knaves
+knead
+kneads
+knee
+kneecap
+kneed
+kneeing
+kneel
+kneeled
+kneeling
+kneels
+knees
+knell
+knells
+knelt
+knew
+knife
+knifed
+knifes
+knifing
+knight
+knighted
+knighthood
+knighting
+knightly
+knights
+knit
+knits
+knives
+knob
+knobs
+knock
+knockdown
+knocked
+knocker
+knockers
+knocking
+knockout
+knocks
+knoll
+knolls
+knot
+knots
+knotted
+knotting
+know
+knowable
+knower
+knowhow
+knowing
+knowingly
+knowledge
+knowledgeable
+known
+knows
+knuckle
+knuckled
+knuckles
+koala
+kosher
+kudo
+lab
+label
+labeled
+labeling
+labelled
+labeller
+labellers
+labelling
+labels
+labor
+laboratories
+laboratory
+labored
+laborer
+laborers
+laboring
+laborings
+laborious
+laboriously
+labors
+labs
+labyrinth
+labyrinths
+lace
+laced
+lacerate
+lacerated
+lacerates
+lacerating
+laceration
+lacerations
+laces
+lacing
+lack
+lacked
+lackey
+lacking
+lacks
+lacquer
+lacquered
+lacquers
+lacrosse
+lacy
+lad
+ladder
+laden
+ladies
+lading
+ladle
+lads
+lady
+ladylike
+lag
+lager
+lagers
+lagoon
+lagoons
+lags
+laid
+lain
+lair
+lairs
+laissez
+lake
+lakes
+lamb
+lambda
+lambdas
+lambert
+lambs
+lame
+lamed
+lamely
+lameness
+lament
+lamentable
+lamentation
+lamentations
+lamented
+lamenting
+laments
+lames
+laminar
+laming
+lamp
+lamplight
+lampoon
+lamprey
+lamps
+lance
+lanced
+lancer
+lances
+land
+landed
+lander
+landers
+landfill
+landing
+landings
+landladies
+landlady
+landlord
+landlords
+landmark
+landmarks
+landowner
+landowners
+lands
+landscape
+landscaped
+landscapes
+landscaping
+landslide
+lane
+lanes
+language
+languages
+languid
+languidly
+languidness
+languish
+languished
+languishes
+languishing
+lantern
+lanterns
+lap
+lapel
+lapels
+lapping
+laps
+lapse
+lapsed
+lapses
+lapsing
+lard
+larder
+large
+largely
+largeness
+larger
+largest
+lark
+larks
+larva
+larvae
+larynx
+lascivious
+laser
+lasers
+lash
+lashed
+lashes
+lashing
+lashings
+lass
+lasses
+lasso
+last
+lasted
+lasting
+lastly
+lasts
+latch
+latched
+latches
+latching
+late
+lately
+latency
+lateness
+latent
+later
+lateral
+laterally
+latest
+lathe
+latitude
+latitudes
+latrine
+latrines
+latter
+latterly
+lattice
+lattices
+laudable
+laugh
+laughable
+laughably
+laughed
+laughing
+laughingly
+laughingstock
+laughs
+laughter
+launch
+launched
+launcher
+launches
+launching
+launchings
+launder
+laundered
+launderer
+laundering
+launderings
+launders
+laundry
+laureate
+laurel
+laurels
+lava
+lavatories
+lavatory
+lavender
+lavish
+lavished
+lavishing
+lavishly
+law
+lawbreaker
+lawful
+lawfully
+lawgiver
+lawless
+lawlessness
+lawn
+lawns
+laws
+lawsuit
+lawsuits
+lawyer
+lawyers
+lax
+laxative
+lay
+layer
+layered
+layering
+layers
+laying
+layman
+laymen
+layoff
+layoffs
+layout
+layouts
+lays
+lazed
+lazier
+laziest
+lazily
+laziness
+lazing
+lazy
+lazybones
+lead
+leaded
+leaden
+leader
+leaders
+leadership
+leaderships
+leading
+leadings
+leads
+leaf
+leafed
+leafiest
+leafing
+leafless
+leaflet
+leaflets
+leafy
+league
+leagued
+leaguer
+leaguers
+leagues
+leak
+leakage
+leakages
+leaked
+leaking
+leaks
+leaky
+lean
+leaned
+leaner
+leanest
+leaning
+leanness
+leans
+leap
+leaped
+leapfrog
+leaping
+leaps
+leapt
+learn
+learned
+learner
+learners
+learning
+learns
+lease
+leased
+leases
+leash
+leashes
+leasing
+least
+leather
+leathered
+leathern
+leatherneck
+leathers
+leave
+leaved
+leaven
+leavened
+leavening
+leaves
+leaving
+leavings
+lechery
+lecture
+lectured
+lecturer
+lecturers
+lectures
+lecturing
+led
+ledge
+ledger
+ledgers
+ledges
+lee
+leech
+leeches
+leek
+leer
+leery
+lees
+leeward
+leeway
+left
+leftist
+leftists
+leftmost
+leftover
+leftovers
+leftward
+leg
+legacies
+legacy
+legal
+legality
+legalization
+legalize
+legalized
+legalizes
+legalizing
+legally
+legend
+legendary
+legends
+legged
+leggings
+legibility
+legible
+legibly
+legion
+legions
+legislate
+legislated
+legislates
+legislating
+legislation
+legislative
+legislator
+legislators
+legislature
+legislatures
+legitimacy
+legitimate
+legitimately
+legs
+legume
+leisure
+leisurely
+lemma
+lemmas
+lemming
+lemmings
+lemon
+lemonade
+lemons
+lend
+lender
+lenders
+lending
+lends
+length
+lengthen
+lengthened
+lengthening
+lengthens
+lengthly
+lengths
+lengthwise
+lengthy
+leniency
+lenient
+leniently
+lens
+lenses
+lent
+lentil
+lentils
+leopard
+leopards
+leper
+leprosy
+less
+lessen
+lessened
+lessening
+lessens
+lesser
+lesson
+lessons
+lessor
+lest
+let
+lethal
+lets
+letter
+lettered
+letterer
+letterhead
+lettering
+letters
+letting
+lettuce
+leukemia
+levee
+levees
+level
+leveled
+leveler
+leveling
+levelled
+leveller
+levellest
+levelling
+levelly
+levelness
+levels
+lever
+leverage
+levers
+levied
+levies
+levity
+levy
+levying
+lewd
+lewdly
+lewdness
+lexical
+lexically
+lexicographic
+lexicographical
+lexicographically
+lexicon
+lexicons
+liabilities
+liability
+liable
+liaison
+liaisons
+liar
+liars
+libel
+libelous
+liberal
+liberalize
+liberalized
+liberalizes
+liberalizing
+liberally
+liberals
+liberate
+liberated
+liberates
+liberating
+liberation
+liberator
+liberators
+libertarian
+liberties
+liberty
+libido
+librarian
+librarians
+libraries
+library
+libretto
+lice
+license
+licensed
+licensee
+licenses
+licensing
+licensor
+licentious
+lichen
+lichens
+lick
+licked
+licking
+licks
+licorice
+lid
+lids
+lie
+lied
+liege
+lien
+liens
+lies
+lieu
+lieutenant
+lieutenants
+life
+lifeblood
+lifeboat
+lifeguard
+lifeless
+lifelessness
+lifelike
+lifelong
+lifer
+lifespan
+lifestyle
+lifestyles
+lifetime
+lifetimes
+lift
+lifted
+lifter
+lifters
+lifting
+lifts
+ligament
+ligature
+light
+lighted
+lighten
+lightens
+lighter
+lighters
+lightest
+lightface
+lighthearted
+lighthouse
+lighthouses
+lighting
+lightly
+lightness
+lightning
+lightnings
+lights
+lightweight
+like
+liked
+likelier
+likeliest
+likelihood
+likelihoods
+likeliness
+likely
+liken
+likened
+likeness
+likenesses
+likening
+likens
+likes
+likewise
+liking
+lilac
+lilacs
+lilies
+lily
+limb
+limber
+limbo
+limbs
+lime
+limelight
+limes
+limestone
+limit
+limitability
+limitably
+limitation
+limitations
+limited
+limiter
+limiters
+limiting
+limitless
+limits
+limousine
+limp
+limped
+limping
+limply
+limpness
+limps
+linden
+line
+linear
+linearities
+linearity
+linearizable
+linearize
+linearized
+linearizes
+linearizing
+linearly
+lined
+linen
+linens
+liner
+liners
+lines
+lineup
+linger
+lingered
+lingerie
+lingering
+lingers
+lingo
+lingua
+linguist
+linguistic
+linguistically
+linguistics
+linguists
+lining
+linings
+link
+linkage
+linkages
+linked
+linker
+linkers
+linking
+links
+linoleum
+linseed
+lint
+lion
+lioness
+lionesses
+lions
+lip
+lips
+lipstick
+liquid
+liquidate
+liquidation
+liquidations
+liquidity
+liquids
+liquor
+liquors
+lisp
+lisped
+lisping
+lisps
+list
+listed
+listen
+listened
+listener
+listeners
+listening
+listens
+listers
+listing
+listings
+listless
+lists
+lit
+litany
+liter
+literacy
+literal
+literally
+literalness
+literals
+literary
+literate
+literature
+literatures
+liters
+lithe
+lithograph
+lithography
+litigant
+litigate
+litigation
+litigious
+litmus
+litter
+litterbug
+littered
+littering
+litters
+little
+littleness
+littler
+littlest
+livable
+livably
+live
+lived
+livelihood
+lively
+liveness
+liver
+liveried
+livers
+livery
+lives
+livestock
+livid
+living
+lizard
+lizards
+load
+loaded
+loader
+loaders
+loading
+loadings
+loads
+loaf
+loafed
+loafer
+loan
+loaned
+loaning
+loans
+loath
+loathe
+loathed
+loathing
+loathly
+loathsome
+loaves
+lobbied
+lobbies
+lobby
+lobbying
+lobe
+lobes
+lobster
+lobsters
+local
+localities
+locality
+localization
+localize
+localized
+localizes
+localizing
+locally
+locals
+locate
+located
+locates
+locating
+location
+locations
+locative
+locatives
+locator
+locators
+loci
+lock
+locked
+locker
+lockers
+locking
+lockings
+lockout
+lockouts
+locks
+locksmith
+lockstep
+lockup
+lockups
+locomotion
+locomotive
+locomotives
+locus
+locust
+locusts
+lodge
+lodged
+lodger
+lodges
+lodging
+lodgings
+loft
+loftiness
+lofts
+lofty
+logarithm
+logarithmic
+logarithmically
+logarithms
+logged
+logger
+loggers
+logging
+logic
+logical
+logically
+logician
+logicians
+logics
+login
+logins
+logistic
+logistics
+logjam
+logo
+logs
+loin
+loincloth
+loins
+loiter
+loitered
+loiterer
+loitering
+loiters
+lone
+lonelier
+loneliest
+loneliness
+lonely
+loner
+loners
+lonesome
+long
+longed
+longer
+longest
+longevity
+longhand
+longing
+longings
+longitude
+longitudes
+longs
+longstanding
+look
+lookahead
+looked
+looker
+lookers
+looking
+lookout
+looks
+lookup
+lookups
+loom
+loomed
+looming
+looms
+loon
+loop
+looped
+loophole
+loopholes
+looping
+loops
+loose
+loosed
+looseleaf
+loosely
+loosen
+loosened
+looseness
+loosening
+loosens
+looser
+looses
+loosest
+loosing
+loot
+looted
+looter
+looting
+loots
+lopsided
+lord
+lordly
+lords
+lordship
+lore
+lorry
+lose
+loser
+losers
+loses
+losing
+loss
+losses
+lossier
+lossiest
+lossy
+lost
+lot
+lotion
+lots
+lottery
+lotus
+loud
+louder
+loudest
+loudly
+loudness
+loudspeaker
+loudspeakers
+lounge
+lounged
+lounges
+lounging
+louse
+lousy
+lout
+lovable
+lovably
+love
+loved
+lovelier
+lovelies
+loveliest
+loveliness
+lovelorn
+lovely
+lover
+lovers
+loves
+loving
+lovingly
+low
+lower
+lowered
+lowering
+lowers
+lowest
+lowland
+lowlands
+lowliest
+lowly
+lowness
+lows
+loyal
+loyally
+loyalties
+loyalty
+lubricant
+lubricate
+lubrication
+lucid
+luck
+lucked
+luckier
+luckiest
+luckily
+luckless
+lucks
+lucky
+lucrative
+ludicrous
+ludicrously
+ludicrousness
+luggage
+lukewarm
+lull
+lullaby
+lulled
+lulls
+lumber
+lumbered
+lumbering
+luminous
+luminously
+lummox
+lump
+lumped
+lumping
+lumps
+lumpy
+lunar
+lunatic
+lunch
+lunched
+luncheon
+luncheons
+lunches
+lunching
+lung
+lunged
+lungs
+lurch
+lurched
+lurches
+lurching
+lure
+lured
+lures
+luring
+lurk
+lurked
+lurking
+lurks
+luscious
+lusciously
+lusciousness
+lush
+lust
+luster
+lustful
+lustily
+lustiness
+lustrous
+lusts
+lusty
+lute
+lutes
+luxuriant
+luxuriantly
+luxuries
+luxurious
+luxuriously
+luxury
+lying
+lymph
+lynch
+lynched
+lyncher
+lynches
+lynx
+lynxes
+lyre
+lyric
+lyrics
+mace
+maced
+maces
+machination
+machine
+machined
+machinelike
+machinery
+machines
+machining
+macho
+macintosh
+mackerel
+macro
+macroeconomics
+macromolecule
+macromolecules
+macrophage
+macros
+macroscopic
+mad
+madam
+madden
+maddening
+madder
+maddest
+made
+madhouse
+madly
+madman
+madmen
+madness
+madras
+maestro
+magazine
+magazines
+magenta
+maggot
+maggots
+magic
+magical
+magically
+magician
+magicians
+magistrate
+magistrates
+magna
+magnesium
+magnet
+magnetic
+magnetically
+magnetism
+magnetisms
+magnetizable
+magnetized
+magneto
+magnification
+magnificence
+magnificent
+magnificently
+magnified
+magnifier
+magnifies
+magnify
+magnifying
+magnitude
+magnitudes
+magnolia
+magnum
+magpie
+mahogany
+maid
+maiden
+maidens
+maids
+mail
+mailable
+mailbox
+mailboxes
+mailed
+mailer
+mailing
+mailings
+mailman
+mailmen
+mails
+maim
+maimed
+maiming
+maims
+main
+mainframe
+mainframes
+mainland
+mainline
+mainly
+mains
+mainstay
+mainstream
+maintain
+maintainability
+maintainable
+maintained
+maintainer
+maintainers
+maintaining
+maintains
+maintenance
+maintenances
+maize
+majestic
+majesties
+majesty
+major
+majored
+majoring
+majorities
+majority
+majors
+makable
+make
+maker
+makers
+makes
+makeshift
+makeup
+makeups
+making
+makings
+maladies
+malady
+malaria
+malcontent
+male
+malefactor
+malefactors
+maleness
+males
+malevolent
+malformed
+malfunction
+malfunctioned
+malfunctioning
+malfunctions
+malice
+malicious
+maliciously
+maliciousness
+malign
+malignant
+malignantly
+mall
+mallard
+mallet
+mallets
+malnutrition
+malpractice
+malt
+malted
+malts
+mama
+mamma
+mammal
+mammalian
+mammals
+mammas
+mammoth
+man
+manage
+manageable
+manageableness
+managed
+management
+managements
+manager
+managerial
+managers
+manages
+managing
+mandarin
+mandate
+mandated
+mandates
+mandating
+mandatory
+mandible
+mane
+manes
+maneuver
+maneuvered
+maneuvering
+maneuvers
+manger
+mangers
+mangle
+mangled
+mangler
+mangles
+mangling
+manhole
+manhood
+mania
+maniac
+maniacal
+maniacs
+manic
+manicure
+manicured
+manicures
+manicuring
+manifest
+manifestation
+manifestations
+manifested
+manifesting
+manifestly
+manifests
+manifold
+manifolds
+manipulability
+manipulable
+manipulatable
+manipulate
+manipulated
+manipulates
+manipulating
+manipulation
+manipulations
+manipulative
+manipulator
+manipulators
+manipulatory
+mankind
+manly
+manned
+manner
+mannered
+mannerly
+manners
+manning
+manometer
+manometers
+manor
+manors
+manpower
+mansion
+mansions
+manslaughter
+mantel
+mantels
+mantis
+mantissa
+mantissas
+mantle
+mantlepiece
+mantles
+manual
+manually
+manuals
+manufacture
+manufactured
+manufacturer
+manufacturers
+manufactures
+manufacturing
+manure
+manuscript
+manuscripts
+many
+map
+maple
+maples
+mappable
+mapped
+mapping
+mappings
+maps
+marathon
+marble
+marbles
+marbling
+march
+marched
+marcher
+marches
+marching
+mare
+mares
+margarine
+margin
+marginal
+marginally
+margins
+marigold
+marijuana
+marina
+marinade
+marinate
+marine
+mariner
+marines
+marionette
+marital
+maritime
+mark
+markable
+marked
+markedly
+marker
+markers
+market
+marketability
+marketable
+marketed
+marketing
+marketings
+marketplace
+marketplaces
+markets
+marking
+markings
+marmalade
+marmot
+maroon
+marquis
+marriage
+marriageable
+marriages
+married
+marries
+marrow
+marry
+marrying
+marsh
+marshal
+marshaled
+marshaling
+marshals
+marshes
+marshmallow
+mart
+marten
+martial
+martingale
+martini
+marts
+martyr
+martyrdom
+martyrs
+marvel
+marveled
+marvelled
+marvelling
+marvelous
+marvelously
+marvelousness
+marvels
+mascara
+masculine
+masculinely
+masculinity
+mash
+mashed
+mashes
+mashing
+mask
+maskable
+masked
+masker
+masking
+maskings
+masks
+masochist
+masochists
+mason
+masonry
+masons
+masquerade
+masquerader
+masquerades
+masquerading
+mass
+massacre
+massacred
+massacres
+massage
+massages
+massaging
+massed
+masses
+massing
+massive
+mast
+masted
+master
+mastered
+masterful
+masterfully
+mastering
+masterings
+masterly
+mastermind
+masterpiece
+masterpieces
+masters
+mastery
+mastodon
+masts
+masturbate
+masturbated
+masturbates
+masturbating
+masturbation
+mat
+match
+matchable
+matched
+matcher
+matchers
+matches
+matching
+matchings
+matchless
+mate
+mated
+mater
+material
+materialist
+materialize
+materialized
+materializes
+materializing
+materially
+materials
+maternal
+maternally
+maternity
+mates
+math
+mathematical
+mathematically
+mathematician
+mathematicians
+mathematics
+mating
+matings
+matriarch
+matriarchal
+matrices
+matriculate
+matriculation
+matrimonial
+matrimony
+matrix
+matroid
+matron
+matronly
+mats
+matted
+matter
+mattered
+matters
+mattress
+mattresses
+maturation
+mature
+matured
+maturely
+matures
+maturing
+maturities
+maturity
+maul
+mausoleum
+maverick
+maxim
+maxima
+maximal
+maximally
+maximize
+maximized
+maximizer
+maximizers
+maximizes
+maximizing
+maxims
+maximum
+maximums
+maybe
+mayhap
+mayhem
+mayonnaise
+mayor
+mayoral
+mayors
+maze
+mazes
+me
+mead
+meadow
+meadows
+meager
+meagerly
+meagerness
+meal
+meals
+mealtime
+mealy
+mean
+meander
+meandered
+meandering
+meanders
+meaner
+meanest
+meaning
+meaningful
+meaningfully
+meaningfulness
+meaningless
+meaninglessly
+meaninglessness
+meanings
+meanly
+meanness
+means
+meant
+meantime
+meanwhile
+measle
+measles
+measurable
+measurably
+measure
+measured
+measurement
+measurements
+measurer
+measures
+measuring
+meat
+meats
+meaty
+mechanic
+mechanical
+mechanically
+mechanics
+mechanism
+mechanisms
+mechanization
+mechanizations
+mechanize
+mechanized
+mechanizes
+mechanizing
+medal
+medallion
+medallions
+medals
+meddle
+meddled
+meddler
+meddles
+meddling
+media
+median
+medians
+mediate
+mediated
+mediates
+mediating
+mediation
+mediations
+mediator
+medic
+medical
+medically
+medicinal
+medicinally
+medicine
+medicines
+medics
+medieval
+mediocre
+mediocrity
+meditate
+meditated
+meditates
+meditating
+meditation
+meditations
+meditative
+medium
+mediums
+medley
+meek
+meeker
+meekest
+meekly
+meekness
+meet
+meeting
+meetinghouse
+meetings
+meets
+megabaud
+megabit
+megabits
+megabyte
+megabytes
+megahertz
+megalomania
+megaton
+megavolt
+megawatt
+megaword
+megawords
+megohm
+melancholy
+mellow
+mellowed
+mellowing
+mellowness
+mellows
+melodies
+melodious
+melodiously
+melodiousness
+melodrama
+melodramas
+melodramatic
+melody
+melon
+melons
+melt
+melted
+melting
+meltingly
+melts
+member
+members
+membership
+memberships
+membrane
+memento
+memo
+memoir
+memoirs
+memorabilia
+memorable
+memorableness
+memoranda
+memorandum
+memorial
+memorially
+memorials
+memories
+memorization
+memorize
+memorized
+memorizer
+memorizes
+memorizing
+memory
+memoryless
+memos
+men
+menace
+menaced
+menacing
+menagerie
+menarche
+mend
+mendacious
+mendacity
+mended
+mender
+mending
+mends
+menial
+menials
+mens
+menstruate
+mensurable
+mensuration
+mental
+mentalities
+mentality
+mentally
+mention
+mentionable
+mentioned
+mentioner
+mentioners
+mentioning
+mentions
+mentor
+mentors
+menu
+menus
+mercantile
+mercenaries
+mercenariness
+mercenary
+merchandise
+merchandiser
+merchandising
+merchant
+merchants
+merciful
+mercifully
+merciless
+mercilessly
+mercurial
+mercury
+mercy
+mere
+merely
+merest
+merge
+merged
+merger
+mergers
+merges
+merging
+meridian
+meringue
+merit
+merited
+meriting
+meritorious
+meritoriously
+meritoriousness
+merits
+mermaid
+merriest
+merrily
+merriment
+merry
+mescaline
+mesh
+meson
+mesquite
+mess
+message
+messages
+messed
+messenger
+messengers
+messes
+messiahs
+messier
+messiest
+messily
+messiness
+messing
+messy
+met
+meta
+metabolic
+metabolism
+metacircular
+metacircularity
+metal
+metalanguage
+metallic
+metallization
+metallizations
+metallurgy
+metals
+metamathematical
+metamorphosis
+metaphor
+metaphorical
+metaphorically
+metaphors
+metaphysical
+metaphysically
+metaphysics
+metavariable
+mete
+meted
+meteor
+meteoric
+meteorite
+meteoritic
+meteorology
+meteors
+meter
+metering
+meters
+metes
+methane
+method
+methodical
+methodically
+methodicalness
+methodists
+methodological
+methodologically
+methodologies
+methodologists
+methodology
+methods
+meticulously
+meting
+metric
+metrical
+metrics
+metro
+metronome
+metropolis
+metropolitan
+mets
+mettle
+mettlesome
+mew
+mewed
+mews
+miasma
+mica
+mice
+micro
+microarchitects
+microarchitecture
+microarchitectures
+microbial
+microbicidal
+microbicide
+microcode
+microcoded
+microcodes
+microcoding
+microcomputer
+microcomputers
+microcosm
+microcycle
+microcycles
+microeconomics
+microelectronics
+microfilm
+microfilms
+microgramming
+microinstruction
+microinstructions
+microjump
+microjumps
+microlevel
+micron
+microoperations
+microphone
+microphones
+microphoning
+microprocedure
+microprocedures
+microprocessing
+microprocessor
+microprocessors
+microprogram
+microprogrammable
+microprogrammed
+microprogrammer
+microprogramming
+microprograms
+micros
+microscope
+microscopes
+microscopic
+microscopy
+microsecond
+microseconds
+microstore
+microsystems
+microwave
+microwaves
+microword
+microwords
+mid
+midday
+middle
+middleman
+middlemen
+middles
+middling
+midget
+midnight
+midnights
+midpoint
+midpoints
+midrange
+midscale
+midsection
+midshipman
+midshipmen
+midst
+midstream
+midsts
+midsummer
+midway
+midweek
+midwife
+midwinter
+midwives
+mien
+might
+mightier
+mightiest
+mightily
+mightiness
+mighty
+migrant
+migrate
+migrated
+migrates
+migrating
+migration
+migrations
+migratory
+mike
+mild
+milder
+mildest
+mildew
+mildly
+mildness
+mile
+mileage
+milestone
+milestones
+militant
+militantly
+militarily
+militarism
+military
+militia
+milk
+milked
+milker
+milkers
+milkiness
+milking
+milkmaid
+milkmaids
+milks
+milky
+mill
+milled
+millennium
+miller
+millet
+milliammeter
+milliampere
+millijoule
+millimeter
+millimeters
+millinery
+milling
+million
+millionaire
+millionaires
+millions
+millionth
+millipede
+millipedes
+millisecond
+milliseconds
+millivolt
+millivoltmeter
+milliwatt
+millstone
+millstones
+mimeograph
+mimic
+mimicked
+mimicking
+mimics
+minaret
+mince
+minced
+mincemeat
+minces
+mincing
+mind
+minded
+mindful
+mindfully
+mindfulness
+minding
+mindless
+mindlessly
+minds
+mine
+mined
+minefield
+miner
+mineral
+minerals
+miners
+mines
+minesweeper
+mingle
+mingled
+mingles
+mingling
+mini
+miniature
+miniatures
+miniaturization
+miniaturize
+miniaturized
+miniaturizes
+miniaturizing
+minicomputer
+minicomputers
+minima
+minimal
+minimally
+minimax
+minimization
+minimizations
+minimize
+minimized
+minimizer
+minimizers
+minimizes
+minimizing
+minimum
+mining
+minion
+minis
+minister
+ministered
+ministering
+ministers
+ministries
+ministry
+mink
+minks
+minnow
+minnows
+minor
+minoring
+minorities
+minority
+minors
+minstrel
+minstrels
+mint
+minted
+minter
+minting
+mints
+minuend
+minuet
+minus
+minuscule
+minute
+minutely
+minuteman
+minutemen
+minuteness
+minuter
+minutes
+miracle
+miracles
+miraculous
+miraculously
+mirage
+mire
+mired
+mires
+mirror
+mirrored
+mirroring
+mirrors
+mirth
+misanthrope
+misbehaving
+miscalculation
+miscalculations
+miscarriage
+miscarry
+miscegenation
+miscellaneous
+miscellaneously
+miscellaneousness
+mischief
+mischievous
+mischievously
+mischievousness
+misconception
+misconceptions
+misconduct
+misconstrue
+misconstrued
+misconstrues
+misdemeanors
+miser
+miserable
+miserableness
+miserably
+miseries
+miserly
+misers
+misery
+misfit
+misfits
+misfortune
+misfortunes
+misgiving
+misgivings
+misguided
+mishap
+mishaps
+misinformed
+misjudged
+misjudgment
+mislead
+misleading
+misleads
+misled
+mismanagement
+mismatch
+mismatched
+mismatches
+mismatching
+misnomer
+misplace
+misplaced
+misplaces
+misplacing
+mispronunciation
+misrepresentation
+misrepresentations
+miss
+missed
+misses
+misshapen
+missile
+missiles
+missing
+mission
+missionaries
+missionary
+missioner
+missions
+missive
+misspell
+misspelled
+misspelling
+misspellings
+misspells
+mist
+mistakable
+mistake
+mistaken
+mistakenly
+mistakes
+mistaking
+misted
+mister
+misters
+mistiness
+misting
+mistletoe
+mistress
+mistrust
+mistrusted
+mists
+misty
+mistype
+mistyped
+mistypes
+mistyping
+misunderstand
+misunderstander
+misunderstanders
+misunderstanding
+misunderstandings
+misunderstood
+misuse
+misused
+misuses
+misusing
+miter
+mitigate
+mitigated
+mitigates
+mitigating
+mitigation
+mitigative
+mitten
+mittens
+mix
+mixed
+mixer
+mixers
+mixes
+mixing
+mixture
+mixtures
+mixup
+mnemonic
+mnemonically
+mnemonics
+moan
+moaned
+moans
+moat
+moats
+mob
+mobile
+mobility
+mobs
+mobster
+moccasin
+moccasins
+mock
+mocked
+mocker
+mockery
+mocking
+mockingbird
+mocks
+mockup
+modal
+modalities
+modality
+modally
+mode
+model
+modeled
+modeling
+modelings
+models
+modem
+modems
+moderate
+moderated
+moderately
+moderateness
+moderates
+moderating
+moderation
+modern
+modernity
+modernize
+modernized
+modernizer
+modernizing
+modernly
+modernness
+moderns
+modes
+modest
+modestly
+modesty
+modicum
+modifiability
+modifiable
+modification
+modifications
+modified
+modifier
+modifiers
+modifies
+modify
+modifying
+modular
+modularity
+modularization
+modularize
+modularized
+modularizes
+modularizing
+modularly
+modulate
+modulated
+modulates
+modulating
+modulation
+modulations
+modulator
+modulators
+module
+modules
+moduli
+modulo
+modulus
+modus
+moist
+moisten
+moistly
+moistness
+moisture
+molar
+molasses
+mold
+molded
+molder
+molding
+molds
+mole
+molecular
+molecule
+molecules
+molehill
+moles
+molest
+molested
+molesting
+molests
+mollify
+mollusk
+mollycoddle
+molten
+moment
+momentarily
+momentariness
+momentary
+momentous
+momentously
+momentousness
+moments
+momentum
+mommy
+monadic
+monarch
+monarchies
+monarchs
+monarchy
+monasteries
+monastery
+monastic
+monetarism
+monetary
+money
+moneyed
+moneys
+mongoose
+monitor
+monitored
+monitoring
+monitors
+monk
+monkey
+monkeyed
+monkeying
+monkeys
+monkish
+monks
+monoalphabetic
+monochromatic
+monochrome
+monocotyledon
+monocular
+monogamous
+monogamy
+monogram
+monograms
+monograph
+monographes
+monographs
+monolith
+monolithic
+monologue
+monopolies
+monopolize
+monopolized
+monopolizing
+monopoly
+monoprogrammed
+monoprogramming
+monostable
+monotheism
+monotone
+monotonic
+monotonically
+monotonicity
+monotonous
+monotonously
+monotonousness
+monotony
+monsoon
+monster
+monsters
+monstrosity
+monstrous
+monstrously
+month
+monthly
+months
+monument
+monumental
+monumentally
+monuments
+moo
+mood
+moodiness
+moods
+moody
+mooned
+mooning
+moonlight
+moonlighter
+moonlighting
+moonlit
+moons
+moonshine
+moored
+mooring
+moorings
+moose
+moot
+mop
+moped
+mops
+moraine
+moral
+morale
+moralities
+morality
+morally
+morals
+morass
+moratorium
+morbid
+morbidly
+morbidness
+more
+moreover
+mores
+moribund
+morn
+morning
+mornings
+moron
+morose
+morphine
+morphism
+morphisms
+morphological
+morphology
+morrow
+morsel
+morsels
+mortal
+mortality
+mortally
+mortals
+mortar
+mortared
+mortaring
+mortars
+mortem
+mortgage
+mortgages
+mortician
+mortification
+mortified
+mortifies
+mortify
+mortifying
+mosaic
+mosaics
+mosque
+mosquito
+mosquitoes
+moss
+mosses
+mossy
+most
+mostly
+motel
+motels
+moth
+mothball
+mothballs
+mother
+mothered
+motherer
+motherers
+motherhood
+mothering
+motherland
+motherly
+mothers
+motif
+motifs
+motion
+motioned
+motioning
+motionless
+motionlessly
+motionlessness
+motions
+motivate
+motivated
+motivates
+motivating
+motivation
+motivations
+motive
+motives
+motley
+motor
+motorcar
+motorcars
+motorcycle
+motorcycles
+motoring
+motorist
+motorists
+motorize
+motorized
+motorizes
+motorizing
+motors
+motto
+mottoes
+mould
+moulding
+mound
+mounded
+mounds
+mount
+mountable
+mountain
+mountaineer
+mountaineering
+mountaineers
+mountainous
+mountainously
+mountains
+mounted
+mounter
+mounting
+mountings
+mounts
+mourn
+mourned
+mourner
+mourners
+mournful
+mournfully
+mournfulness
+mourning
+mourns
+mouse
+mouser
+mouses
+mousetrap
+mousy
+mouth
+mouthed
+mouthes
+mouthful
+mouthing
+mouthpiece
+mouths
+movable
+move
+moved
+movement
+movements
+mover
+movers
+moves
+movie
+movies
+moving
+movings
+mow
+mowed
+mower
+mows
+mu
+much
+muck
+mucker
+mucking
+mucus
+mud
+muddied
+muddiness
+muddle
+muddled
+muddlehead
+muddler
+muddlers
+muddles
+muddling
+muddy
+muff
+muffin
+muffins
+muffle
+muffled
+muffler
+muffles
+muffling
+muffs
+mug
+mugging
+mugs
+mulatto
+mulberries
+mulberry
+mule
+mules
+mull
+mullah
+multi
+multibit
+multibyte
+multicast
+multicasting
+multicasts
+multicellular
+multicomputer
+multidimensional
+multilateral
+multilayer
+multilayered
+multilevel
+multimedia
+multinational
+multiple
+multiples
+multiplex
+multiplexed
+multiplexer
+multiplexers
+multiplexes
+multiplexing
+multiplexor
+multiplexors
+multiplicand
+multiplicands
+multiplication
+multiplications
+multiplicative
+multiplicatives
+multiplicity
+multiplied
+multiplier
+multipliers
+multiplies
+multiply
+multiplying
+multiprocess
+multiprocessing
+multiprocessor
+multiprocessors
+multiprogram
+multiprogrammed
+multiprogramming
+multistage
+multitude
+multitudes
+multiuser
+multivariate
+multiword
+mumble
+mumbled
+mumbler
+mumblers
+mumbles
+mumbling
+mumblings
+mummies
+mummy
+munch
+munched
+munching
+mundane
+mundanely
+mung
+municipal
+municipalities
+municipality
+municipally
+munition
+munitions
+mural
+murder
+murdered
+murderer
+murderers
+murdering
+murderous
+murderously
+murders
+murky
+murmur
+murmured
+murmurer
+murmuring
+murmurs
+muscle
+muscled
+muscles
+muscling
+muscular
+musculature
+muse
+mused
+muses
+museum
+museums
+mush
+mushroom
+mushroomed
+mushrooming
+mushrooms
+mushy
+music
+musical
+musically
+musicals
+musician
+musicianly
+musicians
+musicology
+musing
+musings
+musk
+musket
+muskets
+muskox
+muskoxen
+muskrat
+muskrats
+musks
+muslin
+mussel
+mussels
+must
+mustache
+mustached
+mustaches
+mustard
+muster
+mustiness
+musts
+musty
+mutability
+mutable
+mutableness
+mutandis
+mutant
+mutate
+mutated
+mutates
+mutating
+mutation
+mutations
+mutatis
+mutative
+mute
+muted
+mutely
+muteness
+mutilate
+mutilated
+mutilates
+mutilating
+mutilation
+mutinies
+mutiny
+mutt
+mutter
+muttered
+mutterer
+mutterers
+muttering
+mutters
+mutton
+mutual
+mutually
+muzzle
+muzzles
+my
+myriad
+myrtle
+myself
+mysteries
+mysterious
+mysteriously
+mysteriousness
+mystery
+mystic
+mystical
+mystics
+mystify
+myth
+mythical
+mythologies
+mythology
+nab
+nabla
+nablas
+nadir
+nag
+nagged
+nagging
+nags
+nail
+nailed
+nailing
+nails
+naive
+naively
+naiveness
+naivete
+naked
+nakedly
+nakedness
+name
+nameable
+named
+nameless
+namelessly
+namely
+namer
+namers
+names
+namesake
+namesakes
+naming
+nanoinstruction
+nanoinstructions
+nanoprogram
+nanoprogramming
+nanosecond
+nanoseconds
+nanostore
+nanostores
+nap
+napkin
+napkins
+naps
+narcissus
+narcotic
+narcotics
+narrate
+narration
+narrative
+narratives
+narrow
+narrowed
+narrower
+narrowest
+narrowing
+narrowly
+narrowness
+narrows
+nary
+nasal
+nasally
+nastier
+nastiest
+nastily
+nastiness
+nasty
+natal
+nation
+national
+nationalist
+nationalists
+nationalities
+nationality
+nationalization
+nationalize
+nationalized
+nationalizes
+nationalizing
+nationally
+nationals
+nationhood
+nations
+nationwide
+native
+natively
+natives
+nativity
+natural
+naturalism
+naturalist
+naturalization
+naturally
+naturalness
+naturals
+nature
+natured
+natures
+naught
+naughtier
+naughtiness
+naughty
+nausea
+nauseate
+nauseum
+naval
+navally
+navel
+navies
+navigable
+navigate
+navigated
+navigates
+navigating
+navigation
+navigator
+navigators
+navy
+nay
+near
+nearby
+neared
+nearer
+nearest
+nearing
+nearly
+nearness
+nears
+nearsighted
+neat
+neater
+neatest
+neatly
+neatness
+nebula
+nebular
+nebulous
+necessaries
+necessarily
+necessary
+necessitate
+necessitated
+necessitates
+necessitating
+necessitation
+necessities
+necessity
+neck
+necking
+necklace
+necklaces
+neckline
+necks
+necktie
+neckties
+necrosis
+nectar
+need
+needed
+needful
+needing
+needle
+needled
+needler
+needlers
+needles
+needless
+needlessly
+needlessness
+needlework
+needling
+needs
+needy
+negate
+negated
+negates
+negating
+negation
+negations
+negative
+negatively
+negatives
+negator
+negators
+neglect
+neglected
+neglecting
+neglects
+negligee
+negligence
+negligent
+negligible
+negotiable
+negotiate
+negotiated
+negotiates
+negotiating
+negotiation
+negotiations
+neigh
+neighbor
+neighborhood
+neighborhoods
+neighboring
+neighborly
+neighbors
+neither
+nemesis
+neoclassic
+neon
+neonatal
+neophyte
+neophytes
+nephew
+nephews
+nerve
+nerves
+nervous
+nervously
+nervousness
+nest
+nested
+nester
+nesting
+nestle
+nestled
+nestles
+nestling
+nests
+net
+nether
+nets
+netted
+netting
+nettle
+nettled
+network
+networked
+networking
+networks
+neural
+neuritis
+neurological
+neurologists
+neuron
+neurons
+neuroses
+neurosis
+neurotic
+neuter
+neutral
+neutralities
+neutrality
+neutralize
+neutralized
+neutralizing
+neutrally
+neutrino
+neutrinos
+neutron
+never
+nevertheless
+new
+newborn
+newcomer
+newcomers
+newer
+newest
+newly
+newlywed
+newness
+newscast
+newsgroup
+newsletter
+newsletters
+newsman
+newsmen
+newspaper
+newspapers
+newsstand
+newt
+next
+nibble
+nibbled
+nibbler
+nibblers
+nibbles
+nibbling
+nice
+nicely
+niceness
+nicer
+nicest
+niche
+nick
+nicked
+nickel
+nickels
+nicker
+nicking
+nickname
+nicknamed
+nicknames
+nicks
+nicotine
+niece
+nieces
+nifty
+nigh
+night
+nightcap
+nightclub
+nightfall
+nightgown
+nightingale
+nightingales
+nightly
+nightmare
+nightmares
+nightmarish
+nights
+nighttime
+nihilism
+nil
+nimble
+nimbleness
+nimbler
+nimbly
+nimbus
+nine
+ninefold
+nines
+nineteen
+nineteens
+nineteenth
+nineties
+ninetieth
+ninety
+ninth
+nip
+nipple
+nips
+nitric
+nitrogen
+nitrous
+nitty
+no
+nobility
+noble
+nobleman
+nobleness
+nobler
+nobles
+noblest
+nobly
+nobody
+nocturnal
+nocturnally
+nod
+nodal
+nodded
+nodding
+node
+nodes
+nods
+nodular
+nodule
+noise
+noiseless
+noiselessly
+noises
+noisier
+noisily
+noisiness
+noisy
+nomenclature
+nominal
+nominally
+nominate
+nominated
+nominating
+nomination
+nominative
+nominee
+non
+nonadaptive
+nonbiodegradable
+nonblocking
+nonce
+nonchalant
+noncommercial
+noncommunication
+nonconsecutively
+nonconservative
+noncritical
+noncyclic
+nondecreasing
+nondescript
+nondescriptly
+nondestructively
+nondeterminacy
+nondeterminate
+nondeterminately
+nondeterminism
+nondeterministic
+nondeterministically
+none
+nonempty
+nonetheless
+nonexistence
+nonexistent
+nonextensible
+nonfunctional
+nongovernmental
+nonidempotent
+noninteracting
+noninterference
+noninterleaved
+nonintrusive
+nonintuitive
+noninverting
+nonlinear
+nonlinearities
+nonlinearity
+nonlinearly
+nonlocal
+nonmaskable
+nonmathematical
+nonmilitary
+nonnegative
+nonnegligible
+nonnumerical
+nonogenarian
+nonorthogonal
+nonorthogonality
+nonperishable
+nonpersistent
+nonportable
+nonprocedural
+nonprocedurally
+nonprofit
+nonprogrammable
+nonprogrammer
+nonsegmented
+nonsense
+nonsensical
+nonsequential
+nonspecialist
+nonspecialists
+nonstandard
+nonsynchronous
+nontechnical
+nonterminal
+nonterminals
+nonterminating
+nontermination
+nonthermal
+nontransparent
+nontrivial
+nonuniform
+nonuniformity
+nonzero
+noodle
+nook
+nooks
+noon
+noonday
+noons
+noontide
+noontime
+noose
+nor
+norm
+normal
+normalcy
+normality
+normalization
+normalize
+normalized
+normalizes
+normalizing
+normally
+normals
+normative
+norms
+north
+northbound
+northeast
+northeaster
+northeastern
+northerly
+northern
+northerner
+northerners
+northernly
+northward
+northwards
+northwest
+northwestern
+nose
+nosed
+noses
+nosing
+nostalgia
+nostalgic
+nostril
+nostrils
+not
+notable
+notables
+notably
+notarize
+notarized
+notarizes
+notarizing
+notary
+notation
+notational
+notations
+notch
+notched
+notches
+notching
+note
+notebook
+notebooks
+noted
+notes
+noteworthy
+nothing
+nothingness
+nothings
+notice
+noticeable
+noticeably
+noticed
+notices
+noticing
+notification
+notifications
+notified
+notifier
+notifiers
+notifies
+notify
+notifying
+noting
+notion
+notions
+notoriety
+notorious
+notoriously
+notwithstanding
+noun
+nouns
+nourish
+nourished
+nourishes
+nourishing
+nourishment
+novel
+novelist
+novelists
+novels
+novelties
+novelty
+novice
+novices
+now
+nowadays
+nowhere
+noxious
+nozzle
+nu
+nuance
+nuances
+nubile
+nuclear
+nuclei
+nucleic
+nucleotide
+nucleotides
+nucleus
+nuclide
+nude
+nudge
+nudged
+nudity
+nugget
+nuisance
+nuisances
+null
+nullary
+nulled
+nullified
+nullifiers
+nullifies
+nullify
+nullifying
+nulls
+numb
+numbed
+number
+numbered
+numberer
+numbering
+numberless
+numbers
+numbing
+numbly
+numbness
+numbs
+numerable
+numeral
+numerals
+numerator
+numerators
+numeric
+numerical
+numerically
+numerics
+numerous
+numismatic
+numismatist
+nun
+nuns
+nuptial
+nurse
+nursed
+nurseries
+nursery
+nurses
+nursing
+nurture
+nurtured
+nurtures
+nurturing
+nut
+nutate
+nutria
+nutrient
+nutrition
+nutritious
+nuts
+nutshell
+nutshells
+nuzzle
+nylon
+nymph
+nymphomania
+nymphomaniac
+nymphs
+oaf
+oak
+oaken
+oaks
+oar
+oars
+oases
+oasis
+oat
+oaten
+oath
+oaths
+oatmeal
+oats
+obedience
+obediences
+obedient
+obediently
+obelisk
+obese
+obey
+obeyed
+obeying
+obeys
+obfuscate
+obfuscatory
+obituary
+object
+objected
+objecting
+objection
+objectionable
+objections
+objective
+objectively
+objectives
+objector
+objectors
+objects
+obligated
+obligation
+obligations
+obligatory
+oblige
+obliged
+obliges
+obliging
+obligingly
+oblique
+obliquely
+obliqueness
+obliterate
+obliterated
+obliterates
+obliterating
+obliteration
+oblivion
+oblivious
+obliviously
+obliviousness
+oblong
+obnoxious
+oboe
+obscene
+obscure
+obscured
+obscurely
+obscurer
+obscures
+obscuring
+obscurities
+obscurity
+obsequious
+observable
+observance
+observances
+observant
+observation
+observations
+observatory
+observe
+observed
+observer
+observers
+observes
+observing
+obsession
+obsessions
+obsessive
+obsolescence
+obsolescent
+obsolete
+obsoleted
+obsoletes
+obsoleting
+obstacle
+obstacles
+obstinacy
+obstinate
+obstinately
+obstruct
+obstructed
+obstructing
+obstruction
+obstructions
+obstructive
+obtain
+obtainable
+obtainably
+obtained
+obtaining
+obtains
+obviate
+obviated
+obviates
+obviating
+obviation
+obviations
+obvious
+obviously
+obviousness
+occasion
+occasional
+occasionally
+occasioned
+occasioning
+occasionings
+occasions
+occipital
+occlude
+occluded
+occludes
+occlusion
+occlusions
+occult
+occupancies
+occupancy
+occupant
+occupants
+occupation
+occupational
+occupationally
+occupations
+occupied
+occupier
+occupies
+occupy
+occupying
+occur
+occurred
+occurrence
+occurrences
+occurring
+occurs
+ocean
+oceanic
+oceanography
+oceans
+octagon
+octagonal
+octahedra
+octahedral
+octahedron
+octal
+octane
+octave
+octaves
+octet
+octets
+octogenarian
+octopus
+odd
+odder
+oddest
+oddities
+oddity
+oddly
+oddness
+odds
+ode
+odes
+odious
+odiously
+odiousness
+odium
+odor
+odorous
+odorously
+odorousness
+odors
+of
+off
+offend
+offended
+offender
+offenders
+offending
+offends
+offense
+offenses
+offensive
+offensively
+offensiveness
+offer
+offered
+offerer
+offerers
+offering
+offerings
+offers
+offhand
+office
+officemate
+officer
+officers
+offices
+official
+officialdom
+officially
+officials
+officiate
+officio
+officious
+officiously
+officiousness
+offing
+offload
+offs
+offset
+offsets
+offsetting
+offshore
+offspring
+oft
+often
+oftentimes
+oh
+ohm
+ohmmeter
+oil
+oilcloth
+oiled
+oiler
+oilers
+oilier
+oiliest
+oiling
+oils
+oily
+ointment
+okay
+old
+olden
+older
+oldest
+oldness
+oldy
+oleander
+oleomargarine
+oligarchy
+olive
+olives
+omega
+omelet
+omen
+omens
+omicron
+ominous
+ominously
+ominousness
+omission
+omissions
+omit
+omits
+omitted
+omitting
+omnibus
+omnidirectional
+omnipotent
+omnipresent
+omniscient
+omnisciently
+omnivore
+on
+onanism
+once
+oncology
+one
+oneness
+onerous
+ones
+oneself
+onetime
+ongoing
+onion
+onions
+online
+onlooker
+only
+onrush
+onset
+onsets
+onslaught
+onto
+ontology
+onus
+onward
+onwards
+onyx
+ooze
+oozed
+opacity
+opal
+opals
+opaque
+opaquely
+opaqueness
+opcode
+open
+opened
+opener
+openers
+opening
+openings
+openly
+openness
+opens
+opera
+operable
+operand
+operandi
+operands
+operas
+operate
+operated
+operates
+operating
+operation
+operational
+operationally
+operations
+operative
+operatives
+operator
+operators
+operetta
+opiate
+opinion
+opinions
+opium
+opossum
+opponent
+opponents
+opportune
+opportunely
+opportunism
+opportunistic
+opportunities
+opportunity
+opposable
+oppose
+opposed
+opposes
+opposing
+opposite
+oppositely
+oppositeness
+opposites
+opposition
+oppress
+oppressed
+oppresses
+oppressing
+oppression
+oppressive
+oppressor
+oppressors
+opprobrium
+opt
+opted
+opthalmic
+optic
+optical
+optically
+optics
+optima
+optimal
+optimality
+optimally
+optimism
+optimist
+optimistic
+optimistically
+optimization
+optimizations
+optimize
+optimized
+optimizer
+optimizers
+optimizes
+optimizing
+optimum
+opting
+option
+optional
+optionally
+options
+optoacoustic
+optometrist
+optometry
+opts
+opulence
+opulent
+opus
+or
+oracle
+oracles
+oral
+orally
+orange
+oranges
+orangutan
+oration
+orations
+orator
+oratories
+orators
+oratory
+orb
+orbit
+orbital
+orbitally
+orbited
+orbiter
+orbiters
+orbiting
+orbits
+orchard
+orchards
+orchestra
+orchestral
+orchestras
+orchestrate
+orchid
+orchids
+ordain
+ordained
+ordaining
+ordains
+ordeal
+order
+ordered
+ordering
+orderings
+orderlies
+orderly
+orders
+ordinal
+ordinance
+ordinances
+ordinarily
+ordinariness
+ordinary
+ordinate
+ordinates
+ordination
+ore
+oregano
+ores
+organ
+organic
+organism
+organisms
+organist
+organists
+organizable
+organization
+organizational
+organizationally
+organizations
+organize
+organized
+organizer
+organizers
+organizes
+organizing
+organs
+orgasm
+orgiastic
+orgies
+orgy
+orientation
+orientations
+oriented
+orienting
+orients
+orifice
+orifices
+origin
+original
+originality
+originally
+originals
+originate
+originated
+originates
+originating
+origination
+originator
+originators
+origins
+oriole
+ornament
+ornamental
+ornamentally
+ornamentation
+ornamented
+ornamenting
+ornaments
+ornate
+ornery
+orphan
+orphanage
+orphaned
+orphans
+orthant
+orthodontist
+orthodox
+orthodoxy
+orthogonal
+orthogonality
+orthogonally
+orthopedic
+oscillate
+oscillated
+oscillates
+oscillating
+oscillation
+oscillations
+oscillator
+oscillators
+oscillatory
+oscilloscope
+oscilloscopes
+osmosis
+osmotic
+ossify
+ostensible
+ostensibly
+ostentatious
+osteopath
+osteopathic
+osteopathy
+osteoporosis
+ostracism
+ostrich
+ostriches
+other
+others
+otherwise
+otherworldly
+otter
+otters
+ouch
+ought
+ounce
+ounces
+our
+ours
+ourself
+ourselves
+oust
+out
+outbound
+outbreak
+outbreaks
+outburst
+outbursts
+outcast
+outcasts
+outcome
+outcomes
+outcries
+outcry
+outdated
+outdo
+outdoor
+outdoors
+outer
+outermost
+outfit
+outfits
+outfitted
+outgoing
+outgrew
+outgrow
+outgrowing
+outgrown
+outgrows
+outgrowth
+outing
+outlandish
+outlast
+outlasts
+outlaw
+outlawed
+outlawing
+outlaws
+outlay
+outlays
+outlet
+outlets
+outline
+outlined
+outlines
+outlining
+outlive
+outlived
+outlives
+outliving
+outlook
+outlying
+outnumbered
+outperform
+outperformed
+outperforming
+outperforms
+outpost
+outposts
+output
+outputs
+outputting
+outrage
+outraged
+outrageous
+outrageously
+outrages
+outright
+outrun
+outruns
+outs
+outset
+outside
+outsider
+outsiders
+outskirts
+outstanding
+outstandingly
+outstretched
+outstrip
+outstripped
+outstripping
+outstrips
+outvote
+outvoted
+outvotes
+outvoting
+outward
+outwardly
+outweigh
+outweighed
+outweighing
+outweighs
+outwit
+outwits
+outwitted
+outwitting
+oval
+ovals
+ovaries
+ovary
+oven
+ovens
+over
+overall
+overalls
+overboard
+overcame
+overcoat
+overcoats
+overcome
+overcomes
+overcoming
+overcrowd
+overcrowded
+overcrowding
+overcrowds
+overdone
+overdose
+overdraft
+overdrafts
+overdue
+overemphasis
+overemphasized
+overestimate
+overestimated
+overestimates
+overestimating
+overestimation
+overflow
+overflowed
+overflowing
+overflows
+overgrown
+overhang
+overhanging
+overhangs
+overhaul
+overhauling
+overhead
+overheads
+overhear
+overheard
+overhearing
+overhears
+overjoy
+overjoyed
+overkill
+overland
+overlap
+overlapped
+overlapping
+overlaps
+overlay
+overlaying
+overlays
+overload
+overloaded
+overloading
+overloads
+overlook
+overlooked
+overlooking
+overlooks
+overly
+overnight
+overnighter
+overnighters
+overpower
+overpowered
+overpowering
+overpowers
+overprint
+overprinted
+overprinting
+overprints
+overproduction
+overridden
+override
+overrides
+overriding
+overrode
+overrule
+overruled
+overrules
+overrun
+overrunning
+overruns
+overseas
+oversee
+overseeing
+overseer
+overseers
+oversees
+overshadow
+overshadowed
+overshadowing
+overshadows
+overshoot
+overshot
+oversight
+oversights
+oversimplified
+oversimplifies
+oversimplify
+oversimplifying
+oversized
+overstate
+overstated
+overstatement
+overstatements
+overstates
+overstating
+overstocks
+oversubscribed
+overt
+overtake
+overtaken
+overtaker
+overtakers
+overtakes
+overtaking
+overthrew
+overthrow
+overthrown
+overtime
+overtly
+overtone
+overtones
+overtook
+overture
+overtures
+overturn
+overturned
+overturning
+overturns
+overuse
+overview
+overviews
+overwhelm
+overwhelmed
+overwhelming
+overwhelmingly
+overwhelms
+overwork
+overworked
+overworking
+overworks
+overwrite
+overwrites
+overwriting
+overwritten
+overzealous
+owe
+owed
+owes
+owing
+owl
+owls
+own
+owned
+owner
+owners
+ownership
+ownerships
+owning
+owns
+ox
+oxen
+oxide
+oxides
+oxidize
+oxidized
+oxygen
+oyster
+oysters
+ozone
+pace
+paced
+pacemaker
+pacer
+pacers
+paces
+pacific
+pacification
+pacified
+pacifier
+pacifies
+pacifism
+pacifist
+pacify
+pacing
+pack
+package
+packaged
+packager
+packagers
+packages
+packaging
+packagings
+packed
+packer
+packers
+packet
+packets
+packing
+packs
+pact
+pacts
+pad
+padded
+padding
+paddle
+paddock
+paddy
+padlock
+pads
+pagan
+pagans
+page
+pageant
+pageantry
+pageants
+paged
+pager
+pagers
+pages
+paginate
+paginated
+paginates
+paginating
+pagination
+paging
+pagoda
+paid
+pail
+pails
+pain
+pained
+painful
+painfully
+painless
+pains
+painstaking
+painstakingly
+paint
+painted
+painter
+painters
+painting
+paintings
+paints
+pair
+paired
+pairing
+pairings
+pairs
+pairwise
+pajama
+pajamas
+pal
+palace
+palaces
+palate
+palates
+pale
+paled
+palely
+paleness
+paler
+pales
+palest
+palfrey
+palindrome
+palindromic
+paling
+pall
+palladium
+palliate
+palliative
+pallid
+palm
+palmed
+palmer
+palming
+palms
+palpable
+pals
+palsy
+pamper
+pamphlet
+pamphlets
+pan
+panacea
+panaceas
+panama
+pancake
+pancakes
+panda
+pandas
+pandemic
+pandemonium
+pander
+pane
+panel
+paneled
+paneling
+panelist
+panelists
+panels
+panes
+pang
+pangs
+panic
+panicked
+panicking
+panicky
+panics
+panned
+panning
+panorama
+panoramic
+pans
+pansies
+pansy
+pant
+panted
+pantheism
+pantheist
+pantheon
+panther
+panthers
+panties
+panting
+pantomime
+pantries
+pantry
+pants
+panty
+pantyhose
+papa
+papal
+paper
+paperback
+paperbacks
+papered
+paperer
+paperers
+papering
+paperings
+papers
+paperweight
+paperwork
+papoose
+papyrus
+par
+parabola
+parabolic
+paraboloid
+paraboloidal
+parachute
+parachuted
+parachutes
+parade
+paraded
+parades
+paradigm
+paradigms
+parading
+paradise
+paradox
+paradoxes
+paradoxical
+paradoxically
+paraffin
+paragon
+paragons
+paragraph
+paragraphing
+paragraphs
+parakeet
+parallax
+parallel
+paralleled
+paralleling
+parallelism
+parallelize
+parallelized
+parallelizes
+parallelizing
+parallelogram
+parallelograms
+parallels
+paralysis
+paralyze
+paralyzed
+paralyzes
+paralyzing
+parameter
+parameterizable
+parameterization
+parameterizations
+parameterize
+parameterized
+parameterizes
+parameterizing
+parameterless
+parameters
+parametric
+parametrized
+paramilitary
+paramount
+paranoia
+paranoiac
+paranoid
+paranormal
+parapet
+parapets
+paraphernalia
+paraphrase
+paraphrased
+paraphrases
+paraphrasing
+parapsychology
+parasite
+parasites
+parasitic
+parasitics
+parasol
+parboil
+parcel
+parceled
+parceling
+parcels
+parch
+parched
+parchment
+pardon
+pardonable
+pardonably
+pardoned
+pardoner
+pardoners
+pardoning
+pardons
+pare
+paregoric
+parent
+parentage
+parental
+parentheses
+parenthesis
+parenthesized
+parenthesizes
+parenthesizing
+parenthetic
+parenthetical
+parenthetically
+parenthood
+parents
+pares
+pariah
+parimutuel
+paring
+parings
+parish
+parishes
+parishioner
+parity
+park
+parked
+parker
+parkers
+parking
+parkland
+parklike
+parkway
+parlay
+parley
+parliament
+parliamentarian
+parliamentary
+parliaments
+parlor
+parlors
+parochial
+parody
+parole
+paroled
+paroles
+paroling
+parried
+parrot
+parroting
+parrots
+parry
+pars
+parse
+parsed
+parser
+parsers
+parses
+parsimony
+parsing
+parsings
+parsley
+parson
+part
+partake
+partaker
+partakes
+partaking
+parted
+parter
+parters
+partial
+partiality
+partially
+participant
+participants
+participate
+participated
+participates
+participating
+participation
+participle
+particle
+particles
+particular
+particularly
+particulars
+particulate
+parties
+parting
+partings
+partisan
+partisans
+partition
+partitioned
+partitioning
+partitions
+partly
+partner
+partnered
+partners
+partnership
+partook
+partridge
+partridges
+parts
+party
+pass
+passage
+passages
+passageway
+passe
+passed
+passenger
+passengers
+passer
+passers
+passes
+passing
+passion
+passionate
+passionately
+passions
+passivate
+passive
+passively
+passiveness
+passivity
+passport
+passports
+password
+passwords
+past
+paste
+pasted
+pastel
+pastes
+pastime
+pastimes
+pasting
+pastness
+pastor
+pastoral
+pastors
+pastry
+pasts
+pasture
+pastures
+pat
+patch
+patched
+patches
+patching
+patchwork
+patchy
+pate
+paten
+patent
+patentable
+patented
+patenter
+patenters
+patenting
+patently
+patents
+paternal
+paternally
+paternoster
+path
+pathetic
+pathname
+pathnames
+pathogen
+pathogenesis
+pathological
+pathology
+pathos
+paths
+pathway
+pathways
+patience
+patient
+patiently
+patients
+patina
+patio
+patriarch
+patriarchal
+patriarchs
+patriarchy
+patrician
+patricians
+patrimonial
+patrimony
+patriot
+patriotic
+patriotism
+patriots
+patrol
+patrolled
+patrolling
+patrolman
+patrolmen
+patrols
+patron
+patronage
+patronize
+patronized
+patronizes
+patronizing
+patrons
+pats
+patter
+pattered
+pattering
+patterings
+pattern
+patterned
+patterning
+patterns
+patters
+patties
+patty
+paucity
+paunch
+paunchy
+pauper
+pause
+paused
+pauses
+pausing
+pave
+paved
+pavement
+pavements
+paves
+pavilion
+pavilions
+paving
+paw
+pawing
+pawn
+pawns
+pawnshop
+paws
+pay
+payable
+paycheck
+paychecks
+payed
+payer
+payers
+paying
+payment
+payments
+payoff
+payoffs
+payroll
+pays
+pea
+peace
+peaceable
+peaceful
+peacefully
+peacefulness
+peacetime
+peach
+peaches
+peacock
+peacocks
+peak
+peaked
+peaks
+peal
+pealed
+pealing
+peals
+peanut
+peanuts
+pear
+pearl
+pearls
+pearly
+pears
+peas
+peasant
+peasantry
+peasants
+peat
+pebble
+pebbles
+peccary
+peck
+pecked
+pecking
+pecks
+pectoral
+peculiar
+peculiarities
+peculiarity
+peculiarly
+pecuniary
+pedagogic
+pedagogical
+pedagogically
+pedagogy
+pedal
+pedant
+pedantic
+pedantry
+peddle
+peddler
+peddlers
+pedestal
+pedestrian
+pedestrians
+pediatric
+pediatrician
+pediatrics
+pedigree
+peek
+peeked
+peeking
+peeks
+peel
+peeled
+peeling
+peels
+peep
+peeped
+peeper
+peephole
+peeping
+peeps
+peer
+peered
+peering
+peerless
+peers
+peg
+pegboard
+pegs
+pejorative
+pelican
+pellagra
+pelt
+pelting
+pelts
+pelvic
+pelvis
+pen
+penal
+penalize
+penalized
+penalizes
+penalizing
+penalties
+penalty
+penance
+pence
+penchant
+pencil
+penciled
+pencils
+pend
+pendant
+pended
+pending
+pends
+pendulum
+pendulums
+penetrable
+penetrate
+penetrated
+penetrates
+penetrating
+penetratingly
+penetration
+penetrations
+penetrative
+penetrator
+penetrators
+penguin
+penguins
+penicillin
+peninsula
+peninsulas
+penis
+penises
+penitent
+penitentiary
+penned
+pennies
+penniless
+penning
+penny
+pens
+pension
+pensioner
+pensions
+pensive
+pent
+pentagon
+pentagons
+pentecostal
+penthouse
+penultimate
+penumbra
+peony
+people
+peopled
+peoples
+pep
+pepper
+peppered
+peppering
+peppermint
+pepperoni
+peppers
+peppery
+peppy
+peptide
+per
+perceivable
+perceivably
+perceive
+perceived
+perceiver
+perceivers
+perceives
+perceiving
+percent
+percentage
+percentages
+percentile
+percentiles
+percents
+perceptible
+perceptibly
+perception
+perceptions
+perceptive
+perceptively
+perceptual
+perceptually
+perch
+perchance
+perched
+perches
+perching
+percussion
+percutaneous
+peremptory
+perennial
+perennially
+perfect
+perfected
+perfectible
+perfecting
+perfection
+perfectionist
+perfectionists
+perfectly
+perfectness
+perfects
+perforce
+perform
+performance
+performances
+performed
+performer
+performers
+performing
+performs
+perfume
+perfumed
+perfumes
+perfuming
+perfunctory
+perhaps
+perihelion
+peril
+perilous
+perilously
+perils
+perimeter
+period
+periodic
+periodical
+periodically
+periodicals
+periods
+peripheral
+peripherally
+peripherals
+peripheries
+periphery
+periscope
+perish
+perishable
+perishables
+perished
+perisher
+perishers
+perishes
+perishing
+perjure
+perjury
+perk
+perky
+permanence
+permanent
+permanently
+permeable
+permeate
+permeated
+permeates
+permeating
+permeation
+permissibility
+permissible
+permissibly
+permission
+permissions
+permissive
+permissively
+permit
+permits
+permitted
+permitting
+permutation
+permutations
+permute
+permuted
+permutes
+permuting
+pernicious
+peroxide
+perpendicular
+perpendicularly
+perpendiculars
+perpetrate
+perpetrated
+perpetrates
+perpetrating
+perpetration
+perpetrations
+perpetrator
+perpetrators
+perpetual
+perpetually
+perpetuate
+perpetuated
+perpetuates
+perpetuating
+perpetuation
+perpetuity
+perplex
+perplexed
+perplexing
+perplexity
+persecute
+persecuted
+persecutes
+persecuting
+persecution
+persecutor
+persecutors
+perseverance
+persevere
+persevered
+perseveres
+persevering
+persist
+persisted
+persistence
+persistent
+persistently
+persisting
+persists
+person
+personage
+personages
+personal
+personalities
+personality
+personalization
+personalize
+personalized
+personalizes
+personalizing
+personally
+personification
+personified
+personifies
+personify
+personifying
+personnel
+persons
+perspective
+perspectives
+perspicuous
+perspicuously
+perspiration
+perspire
+persuadable
+persuade
+persuaded
+persuader
+persuaders
+persuades
+persuading
+persuasion
+persuasions
+persuasive
+persuasively
+persuasiveness
+pertain
+pertained
+pertaining
+pertains
+pertinent
+perturb
+perturbation
+perturbations
+perturbed
+perusal
+peruse
+perused
+peruser
+perusers
+peruses
+perusing
+pervade
+pervaded
+pervades
+pervading
+pervasive
+pervasively
+perversion
+pervert
+perverted
+perverts
+pessimism
+pessimist
+pessimistic
+pest
+pester
+pesticide
+pestilence
+pestilent
+pests
+pet
+petal
+petals
+petition
+petitioned
+petitioner
+petitioning
+petitions
+petri
+petroleum
+pets
+petted
+petter
+petters
+petticoat
+petticoats
+pettiness
+petting
+petty
+petulance
+petulant
+pew
+pews
+pewter
+phantom
+phantoms
+pharmaceutic
+pharmacist
+pharmacology
+pharmacopoeia
+pharmacy
+phase
+phased
+phaser
+phasers
+phases
+phasing
+pheasant
+pheasants
+phenomena
+phenomenal
+phenomenally
+phenomenological
+phenomenologically
+phenomenologies
+phenomenology
+phenomenon
+phi
+philanthropy
+philharmonic
+philosopher
+philosophers
+philosophic
+philosophical
+philosophically
+philosophies
+philosophize
+philosophized
+philosophizer
+philosophizers
+philosophizes
+philosophizing
+philosophy
+phoenix
+phone
+phoned
+phoneme
+phonemes
+phonemic
+phones
+phonetic
+phonetics
+phoning
+phonograph
+phonographs
+phony
+phosgene
+phosphate
+phosphates
+phosphor
+phosphorescent
+phosphoric
+phosphorus
+photo
+photocopied
+photocopier
+photocopiers
+photocopies
+photocopy
+photocopying
+photodiode
+photodiodes
+photogenic
+photograph
+photographed
+photographer
+photographers
+photographic
+photographing
+photographs
+photography
+photon
+photos
+photosensitive
+phototypesetter
+phototypesetters
+phrase
+phrased
+phraseology
+phrases
+phrasing
+phrasings
+phyla
+phylum
+physic
+physical
+physically
+physicalness
+physicals
+physician
+physicians
+physicist
+physicists
+physics
+physiological
+physiologically
+physiology
+physiotherapist
+physiotherapy
+physique
+phytoplankton
+pi
+pianist
+piano
+pianos
+pica
+picas
+picayune
+piccolo
+pick
+pickaxe
+picked
+picker
+pickers
+picket
+picketed
+picketer
+picketers
+picketing
+pickets
+picking
+pickings
+pickle
+pickled
+pickles
+pickling
+picks
+pickup
+pickups
+picky
+picnic
+picnicked
+picnicking
+picnics
+picofarad
+picojoule
+picosecond
+pictorial
+pictorially
+picture
+pictured
+pictures
+picturesque
+picturesqueness
+picturing
+piddle
+pidgin
+pie
+piece
+pieced
+piecemeal
+pieces
+piecewise
+piecing
+pier
+pierce
+pierced
+pierces
+piercing
+piers
+pies
+piety
+piezoelectric
+pig
+pigeon
+pigeonhole
+pigeons
+piggish
+piggy
+piggyback
+piggybacked
+piggybacking
+piggybacks
+pigment
+pigmentation
+pigmented
+pigments
+pigpen
+pigs
+pigskin
+pigtail
+pike
+piker
+pikes
+pile
+piled
+pilers
+piles
+pilfer
+pilferage
+pilgrim
+pilgrimage
+pilgrimages
+pilgrims
+piling
+pilings
+pill
+pillage
+pillaged
+pillar
+pillared
+pillars
+pillory
+pillow
+pillows
+pills
+pilot
+piloting
+pilots
+pimp
+pimple
+pin
+pinafore
+pinball
+pinch
+pinched
+pinches
+pinching
+pincushion
+pine
+pineapple
+pineapples
+pined
+pines
+ping
+pinhead
+pinhole
+pining
+pinion
+pink
+pinker
+pinkest
+pinkie
+pinkish
+pinkly
+pinkness
+pinks
+pinnacle
+pinnacles
+pinned
+pinning
+pinnings
+pinochle
+pinpoint
+pinpointing
+pinpoints
+pins
+pinscher
+pint
+pinto
+pints
+pinwheel
+pion
+pioneer
+pioneered
+pioneering
+pioneers
+pious
+piously
+pip
+pipe
+piped
+pipeline
+pipelined
+pipelines
+pipelining
+pipers
+pipes
+pipette
+piping
+pique
+piracy
+pirate
+pirates
+piss
+pistachio
+pistil
+pistils
+pistol
+pistols
+piston
+pistons
+pit
+pitch
+pitched
+pitcher
+pitchers
+pitches
+pitchfork
+pitching
+piteous
+piteously
+pitfall
+pitfalls
+pith
+pithed
+pithes
+pithier
+pithiest
+pithiness
+pithing
+pithy
+pitiable
+pitied
+pitier
+pitiers
+pities
+pitiful
+pitifully
+pitiless
+pitilessly
+pits
+pitted
+pituitary
+pity
+pitying
+pityingly
+pivot
+pivotal
+pivoting
+pivots
+pixel
+pixels
+pizza
+placard
+placards
+placate
+place
+placebo
+placed
+placeholder
+placement
+placements
+placenta
+placental
+placer
+places
+placid
+placidly
+placing
+plagiarism
+plagiarist
+plague
+plagued
+plagues
+plaguing
+plaid
+plaids
+plain
+plainer
+plainest
+plainly
+plainness
+plains
+plaintext
+plaintexts
+plaintiff
+plaintiffs
+plaintive
+plaintively
+plaintiveness
+plait
+plaits
+plan
+planar
+planarity
+plane
+planed
+planeload
+planer
+planers
+planes
+planet
+planetaria
+planetarium
+planetary
+planetesimal
+planetoid
+planets
+planing
+plank
+planking
+planks
+plankton
+planned
+planner
+planners
+planning
+planoconcave
+planoconvex
+plans
+plant
+plantation
+plantations
+planted
+planter
+planters
+planting
+plantings
+plants
+plaque
+plasma
+plaster
+plastered
+plasterer
+plastering
+plasters
+plastic
+plasticity
+plastics
+plate
+plateau
+plateaus
+plated
+platelet
+platelets
+platen
+platens
+plates
+platform
+platforms
+plating
+platinum
+platitude
+platonic
+platoon
+platter
+platters
+plausibility
+plausible
+play
+playable
+playback
+playboy
+played
+player
+players
+playful
+playfully
+playfulness
+playground
+playgrounds
+playhouse
+playing
+playmate
+playmates
+playoff
+playroom
+plays
+plaything
+playthings
+playtime
+playwright
+playwrights
+playwriting
+plaza
+plea
+plead
+pleaded
+pleader
+pleading
+pleads
+pleas
+pleasant
+pleasantly
+pleasantness
+please
+pleased
+pleases
+pleasing
+pleasingly
+pleasure
+pleasures
+pleat
+plebeian
+plebian
+plebiscite
+plebiscites
+pledge
+pledged
+pledges
+plenary
+plenipotentiary
+plenteous
+plentiful
+plentifully
+plenty
+plethora
+pleurisy
+pliable
+pliant
+plied
+pliers
+plies
+plight
+plod
+plodding
+plot
+plots
+plotted
+plotter
+plotters
+plotting
+plow
+plowed
+plower
+plowing
+plowman
+plows
+plowshare
+ploy
+ploys
+pluck
+plucked
+plucking
+plucks
+plucky
+plug
+pluggable
+plugged
+plugging
+plugs
+plum
+plumage
+plumb
+plumbed
+plumbing
+plumbs
+plume
+plumed
+plumes
+plummet
+plummeting
+plump
+plumped
+plumpness
+plums
+plunder
+plundered
+plunderer
+plunderers
+plundering
+plunders
+plunge
+plunged
+plunger
+plungers
+plunges
+plunging
+plunk
+plural
+plurality
+plurals
+plus
+pluses
+plush
+plutonium
+ply
+plywood
+pneumatic
+pneumonia
+poach
+poacher
+poaches
+pocket
+pocketbook
+pocketbooks
+pocketed
+pocketful
+pocketing
+pockets
+pod
+podia
+podium
+pods
+poem
+poems
+poet
+poetic
+poetical
+poetically
+poetics
+poetries
+poetry
+poets
+pogo
+pogrom
+poignancy
+poignant
+point
+pointed
+pointedly
+pointer
+pointers
+pointing
+pointless
+points
+pointy
+poise
+poised
+poises
+poison
+poisoned
+poisoner
+poisoning
+poisonous
+poisonousness
+poisons
+poke
+poked
+poker
+pokerface
+pokes
+poking
+polar
+polarities
+polarity
+pole
+polecat
+poled
+polemic
+polemics
+poles
+police
+policed
+policeman
+policemen
+polices
+policies
+policing
+policy
+poling
+polio
+polish
+polished
+polisher
+polishers
+polishes
+polishing
+polite
+politely
+politeness
+politer
+politest
+politic
+political
+politically
+politician
+politicians
+politicking
+politics
+polka
+poll
+polled
+pollen
+polling
+polloi
+polls
+pollutant
+pollute
+polluted
+pollutes
+polluting
+pollution
+polo
+polyalphabetic
+polygon
+polygons
+polymer
+polymers
+polymorphic
+polynomial
+polynomials
+polytechnic
+polytheist
+pomp
+pompadour
+pomposity
+pompous
+pompously
+pompousness
+poncho
+pond
+ponder
+pondered
+pondering
+ponderous
+ponders
+ponds
+pong
+ponies
+pontiff
+pontific
+pontificate
+pony
+pooch
+poodle
+pool
+pooled
+pooling
+pools
+poor
+poorer
+poorest
+poorly
+poorness
+pop
+popcorn
+popish
+poplar
+poplin
+popped
+poppies
+popping
+poppy
+pops
+populace
+popular
+popularity
+popularization
+popularize
+popularized
+popularizes
+popularizing
+popularly
+populate
+populated
+populates
+populating
+population
+populations
+populous
+populousness
+porcelain
+porch
+porches
+porcine
+porcupine
+porcupines
+pore
+pored
+pores
+poring
+pork
+porker
+pornographer
+pornographic
+pornography
+porous
+porpoise
+porridge
+port
+portability
+portable
+portage
+portal
+portals
+ported
+portend
+portended
+portending
+portends
+portent
+portentous
+porter
+porterhouse
+porters
+portfolio
+portfolios
+portico
+porting
+portion
+portions
+portly
+portmanteau
+portrait
+portraits
+portray
+portrayal
+portrayed
+portraying
+portrays
+ports
+pose
+posed
+poser
+posers
+poses
+posh
+posing
+posit
+posited
+positing
+position
+positional
+positioned
+positioning
+positions
+positive
+positively
+positiveness
+positives
+positron
+posits
+posse
+possess
+possessed
+possesses
+possessing
+possession
+possessional
+possessions
+possessive
+possessively
+possessiveness
+possessor
+possessors
+possibilities
+possibility
+possible
+possibly
+possum
+possums
+post
+postage
+postal
+postcard
+postcondition
+postdoctoral
+posted
+poster
+posterior
+posteriori
+posterity
+posters
+postfix
+postgraduate
+posting
+postlude
+postman
+postmark
+postmaster
+postmasters
+postmortem
+postoperative
+postorder
+postpone
+postponed
+postponing
+postprocess
+postprocessor
+posts
+postscript
+postscripts
+postulate
+postulated
+postulates
+postulating
+postulation
+postulations
+posture
+postures
+pot
+potable
+potash
+potassium
+potato
+potatoes
+potbelly
+potent
+potentate
+potentates
+potential
+potentialities
+potentiality
+potentially
+potentials
+potentiating
+potentiometer
+potentiometers
+pothole
+potion
+potlatch
+potpourri
+pots
+potted
+potter
+potters
+pottery
+potting
+pouch
+pouches
+poultice
+poultry
+pounce
+pounced
+pounces
+pouncing
+pound
+pounded
+pounder
+pounders
+pounding
+pounds
+pour
+poured
+pourer
+pourers
+pouring
+pours
+pout
+pouted
+pouting
+pouts
+poverty
+powder
+powdered
+powdering
+powderpuff
+powders
+powdery
+power
+powered
+powerful
+powerfully
+powerfulness
+powering
+powerless
+powerlessly
+powerlessness
+pox
+practicable
+practicably
+practical
+practicality
+practically
+practice
+practiced
+practices
+practicing
+practitioner
+practitioners
+pragmatic
+pragmatically
+pragmatics
+pragmatism
+pragmatist
+prairie
+praise
+praised
+praiser
+praisers
+praises
+praiseworthy
+praising
+praisingly
+prance
+pranced
+prancer
+prancing
+prank
+pranks
+prate
+pray
+prayed
+prayer
+prayers
+praying
+preach
+preached
+preacher
+preachers
+preaches
+preaching
+preallocate
+preallocated
+preallocating
+preamble
+preambles
+preassign
+preassigned
+preassigning
+preassigns
+precarious
+precariously
+precariousness
+precaution
+precautions
+precede
+preceded
+precedence
+precedences
+precedent
+precedented
+precedents
+precedes
+preceding
+precept
+precepts
+precess
+precession
+precinct
+precincts
+precious
+preciously
+preciousness
+precipice
+precipitable
+precipitate
+precipitated
+precipitately
+precipitateness
+precipitates
+precipitating
+precipitation
+precipitous
+precipitously
+precise
+precisely
+preciseness
+precision
+precisions
+preclude
+precluded
+precludes
+precluding
+precocious
+precociously
+precocity
+precompute
+precomputed
+precomputing
+preconceive
+preconceived
+preconception
+preconceptions
+precondition
+preconditioned
+preconditions
+precursor
+precursors
+predate
+predated
+predates
+predating
+predatory
+predecessor
+predecessors
+predefine
+predefined
+predefines
+predefining
+predefinition
+predefinitions
+predetermination
+predetermine
+predetermined
+predetermines
+predetermining
+predicament
+predicate
+predicated
+predicates
+predicating
+predication
+predications
+predict
+predictability
+predictable
+predictably
+predicted
+predicting
+prediction
+predictions
+predictive
+predictor
+predicts
+predilection
+predilections
+predisposition
+predominant
+predominantly
+predominate
+predominated
+predominately
+predominates
+predominating
+predomination
+preeminence
+preeminent
+preempt
+preempted
+preempting
+preemption
+preemptive
+preemptor
+preempts
+preen
+preexisting
+prefab
+prefabricate
+preface
+prefaced
+prefaces
+prefacing
+prefer
+preferable
+preferably
+preference
+preferences
+preferential
+preferentially
+preferred
+preferring
+prefers
+prefix
+prefixed
+prefixes
+prefixing
+pregnancy
+pregnant
+prehistoric
+preinitialize
+preinitialized
+preinitializes
+preinitializing
+prejudge
+prejudged
+prejudice
+prejudiced
+prejudices
+prejudicial
+prelate
+preliminaries
+preliminary
+prelude
+preludes
+premature
+prematurely
+prematurity
+premeditated
+premeditation
+premier
+premiers
+premise
+premises
+premium
+premiums
+premonition
+prenatal
+preoccupation
+preoccupied
+preoccupies
+preoccupy
+prep
+preparation
+preparations
+preparative
+preparatives
+preparatory
+prepare
+prepared
+prepares
+preparing
+prepend
+prepended
+prepending
+preposition
+prepositional
+prepositions
+preposterous
+preposterously
+preprocessed
+preprocessing
+preprocessor
+preprocessors
+preproduction
+preprogrammed
+prerequisite
+prerequisites
+prerogative
+prerogatives
+prescribe
+prescribed
+prescribes
+prescription
+prescriptions
+prescriptive
+preselect
+preselected
+preselecting
+preselects
+presence
+presences
+present
+presentation
+presentations
+presented
+presenter
+presenting
+presently
+presentness
+presents
+preservation
+preservations
+preserve
+preserved
+preserver
+preservers
+preserves
+preserving
+preset
+preside
+presided
+presidency
+president
+presidential
+presidents
+presides
+presiding
+press
+pressed
+presser
+presses
+pressing
+pressings
+pressure
+pressured
+pressures
+pressuring
+pressurize
+pressurized
+prestidigitate
+prestige
+prestigious
+presumably
+presume
+presumed
+presumes
+presuming
+presumption
+presumptions
+presumptive
+presumptuous
+presumptuousness
+presuppose
+presupposed
+presupposes
+presupposing
+presupposition
+pretend
+pretended
+pretender
+pretenders
+pretending
+pretends
+pretense
+pretenses
+pretension
+pretensions
+pretentious
+pretentiously
+pretentiousness
+pretext
+pretexts
+prettier
+prettiest
+prettily
+prettiness
+pretty
+prevail
+prevailed
+prevailing
+prevailingly
+prevails
+prevalence
+prevalent
+prevalently
+prevent
+preventable
+preventably
+prevented
+preventing
+prevention
+preventive
+preventives
+prevents
+preview
+previewed
+previewing
+previews
+previous
+previously
+prey
+preyed
+preying
+preys
+price
+priced
+priceless
+pricer
+pricers
+prices
+pricing
+prick
+pricked
+pricking
+prickly
+pricks
+pride
+prided
+prides
+priding
+priest
+priggish
+prim
+prima
+primacy
+primal
+primaries
+primarily
+primary
+primate
+prime
+primed
+primeness
+primer
+primers
+primes
+primeval
+priming
+primitive
+primitively
+primitiveness
+primitives
+primrose
+prince
+princely
+princes
+princess
+princesses
+principal
+principalities
+principality
+principally
+principals
+principle
+principled
+principles
+print
+printable
+printably
+printed
+printer
+printers
+printing
+printout
+prints
+prior
+priori
+priorities
+priority
+priory
+prism
+prisms
+prison
+prisoner
+prisoners
+prisons
+pristine
+privacies
+privacy
+private
+privately
+privates
+privation
+privations
+privies
+privilege
+privileged
+privileges
+privy
+prize
+prized
+prizer
+prizers
+prizes
+prizewinning
+prizing
+pro
+probabilistic
+probabilistically
+probabilities
+probability
+probable
+probably
+probate
+probated
+probates
+probating
+probation
+probative
+probe
+probed
+probes
+probing
+probings
+probity
+problem
+problematic
+problematical
+problematically
+problems
+procaine
+procedural
+procedurally
+procedure
+procedures
+proceed
+proceeded
+proceeding
+proceedings
+proceeds
+process
+processed
+processes
+processing
+procession
+processor
+processors
+proclaim
+proclaimed
+proclaimer
+proclaimers
+proclaiming
+proclaims
+proclamation
+proclamations
+proclivities
+proclivity
+procotols
+procrastinate
+procrastinated
+procrastinates
+procrastinating
+procrastination
+procreate
+procure
+procured
+procurement
+procurements
+procurer
+procurers
+procures
+procuring
+prod
+prodigal
+prodigally
+prodigious
+prodigy
+produce
+produced
+producer
+producers
+produces
+producible
+producing
+product
+production
+productions
+productive
+productively
+productivity
+products
+profane
+profanely
+profess
+professed
+professes
+professing
+profession
+professional
+professionalism
+professionally
+professionals
+professions
+professor
+professorial
+professors
+proffer
+proffered
+proffers
+proficiency
+proficient
+proficiently
+profile
+profiled
+profiles
+profiling
+profit
+profitability
+profitable
+profitably
+profited
+profiteer
+profiteers
+profiting
+profits
+profitted
+profligate
+profound
+profoundest
+profoundly
+profundity
+profuse
+profusion
+progenitor
+progeny
+prognosis
+prognosticate
+program
+programmability
+programmable
+programmed
+programmer
+programmers
+programming
+programs
+progress
+progressed
+progresses
+progressing
+progression
+progressions
+progressive
+progressively
+prohibit
+prohibited
+prohibiting
+prohibition
+prohibitions
+prohibitive
+prohibitively
+prohibitory
+prohibits
+project
+projected
+projectile
+projecting
+projection
+projections
+projective
+projectively
+projector
+projectors
+projects
+prolate
+prolegomena
+proletariat
+proliferate
+proliferated
+proliferates
+proliferating
+proliferation
+prolific
+prolix
+prolog
+prologue
+prolong
+prolongate
+prolonged
+prolonging
+prolongs
+promenade
+promenades
+prominence
+prominent
+prominently
+promiscuous
+promise
+promised
+promises
+promising
+promontory
+promote
+promoted
+promoter
+promoters
+promotes
+promoting
+promotion
+promotional
+promotions
+prompt
+prompted
+prompter
+promptest
+prompting
+promptings
+promptly
+promptness
+prompts
+promulgate
+promulgated
+promulgates
+promulgating
+promulgation
+prone
+proneness
+prong
+pronged
+prongs
+pronoun
+pronounce
+pronounceable
+pronounced
+pronouncement
+pronouncements
+pronounces
+pronouncing
+pronouns
+pronunciation
+pronunciations
+proof
+proofread
+proofreader
+proofs
+prop
+propaganda
+propagandist
+propagate
+propagated
+propagates
+propagating
+propagation
+propagations
+propane
+propel
+propellant
+propelled
+propeller
+propellers
+propelling
+propels
+propensity
+proper
+properly
+properness
+propertied
+properties
+property
+prophecies
+prophecy
+prophesied
+prophesier
+prophesies
+prophesy
+prophet
+prophetic
+prophets
+propitious
+proponent
+proponents
+proportion
+proportional
+proportionally
+proportionately
+proportioned
+proportioning
+proportionment
+proportions
+propos
+proposal
+proposals
+propose
+proposed
+proposer
+proposes
+proposing
+proposition
+propositional
+propositionally
+propositioned
+propositioning
+propositions
+propound
+propounded
+propounding
+propounds
+proprietary
+proprietor
+proprietors
+propriety
+props
+propulsion
+propulsions
+prorate
+prorated
+prorates
+pros
+proscenium
+proscribe
+proscription
+prose
+prosecute
+prosecuted
+prosecutes
+prosecuting
+prosecution
+prosecutions
+prosecutor
+proselytize
+proselytized
+proselytizes
+proselytizing
+prosodic
+prosodics
+prospect
+prospected
+prospecting
+prospection
+prospections
+prospective
+prospectively
+prospectives
+prospector
+prospectors
+prospects
+prospectus
+prosper
+prospered
+prospering
+prosperity
+prosperous
+prospers
+prostate
+prosthetic
+prostitute
+prostitution
+prostrate
+prostration
+protagonist
+protean
+protect
+protected
+protecting
+protection
+protections
+protective
+protectively
+protectiveness
+protector
+protectorate
+protectors
+protects
+protege
+proteges
+protein
+proteins
+protest
+protestant
+protestation
+protestations
+protested
+protesting
+protestingly
+protestor
+protests
+protocol
+protocols
+proton
+protons
+protoplasm
+prototype
+prototyped
+prototypes
+prototypical
+prototypically
+prototyping
+protozoan
+protract
+protrude
+protruded
+protrudes
+protruding
+protrusion
+protrusions
+protuberant
+proud
+prouder
+proudest
+proudly
+provability
+provable
+provably
+prove
+proved
+proven
+provenance
+prover
+proverb
+proverbial
+proverbs
+provers
+proves
+provide
+provided
+providence
+provident
+provider
+providers
+provides
+providing
+province
+provinces
+provincial
+proving
+provision
+provisional
+provisionally
+provisioned
+provisioning
+provisions
+proviso
+provocation
+provoke
+provoked
+provokes
+provost
+prow
+prowess
+prowl
+prowled
+prowler
+prowlers
+prowling
+prows
+proximal
+proximate
+proximity
+proxy
+prudence
+prudent
+prudential
+prudently
+prune
+pruned
+pruner
+pruners
+prunes
+pruning
+prurient
+pry
+prying
+psalm
+psalms
+pseudo
+pseudofiles
+pseudoinstruction
+pseudoinstructions
+pseudonym
+pseudoparallelism
+psilocybin
+psych
+psyche
+psychedelic
+psyches
+psychiatric
+psychiatrist
+psychiatrists
+psychiatry
+psychic
+psycho
+psychoanalysis
+psychoanalyst
+psychoanalytic
+psychobiology
+psychological
+psychologically
+psychologist
+psychologists
+psychology
+psychopath
+psychopathic
+psychophysic
+psychoses
+psychosis
+psychosocial
+psychosomatic
+psychotherapeutic
+psychotherapist
+psychotherapy
+psychotic
+pub
+puberty
+public
+publication
+publications
+publicity
+publicize
+publicized
+publicizes
+publicizing
+publicly
+publish
+published
+publisher
+publishers
+publishes
+publishing
+pubs
+pucker
+puckered
+puckering
+puckers
+pudding
+puddings
+puddle
+puddles
+puddling
+puff
+puffed
+puffin
+puffing
+puffs
+puke
+pull
+pulled
+puller
+pulley
+pulleys
+pulling
+pullings
+pullover
+pulls
+pulmonary
+pulp
+pulping
+pulpit
+pulpits
+pulsar
+pulsate
+pulsation
+pulsations
+pulse
+pulsed
+pulses
+pulsing
+puma
+pumice
+pummel
+pump
+pumped
+pumping
+pumpkin
+pumpkins
+pumps
+pun
+punch
+punched
+puncher
+punches
+punching
+punctual
+punctually
+punctuation
+puncture
+punctured
+punctures
+puncturing
+pundit
+pungent
+punish
+punishable
+punished
+punishes
+punishing
+punishment
+punishments
+punitive
+puns
+punt
+punted
+punting
+punts
+puny
+pup
+pupa
+pupil
+pupils
+puppet
+puppeteer
+puppets
+puppies
+puppy
+pups
+purchase
+purchased
+purchaser
+purchasers
+purchases
+purchasing
+pure
+purely
+purer
+purest
+purgatory
+purge
+purged
+purges
+purging
+purification
+purifications
+purified
+purifier
+purifiers
+purifies
+purify
+purifying
+purist
+puritanic
+purity
+purple
+purpler
+purplest
+purport
+purported
+purportedly
+purporter
+purporters
+purporting
+purports
+purpose
+purposed
+purposeful
+purposefully
+purposely
+purposes
+purposive
+purr
+purred
+purring
+purrs
+purse
+pursed
+purser
+purses
+pursuant
+pursue
+pursued
+pursuer
+pursuers
+pursues
+pursuing
+pursuit
+pursuits
+purveyor
+purview
+pus
+push
+pushbutton
+pushdown
+pushed
+pusher
+pushers
+pushes
+pushing
+puss
+pussy
+pussycat
+put
+puts
+putt
+putter
+puttering
+putters
+putting
+putty
+puzzle
+puzzled
+puzzlement
+puzzler
+puzzlers
+puzzles
+puzzling
+puzzlings
+pygmies
+pygmy
+pyramid
+pyramids
+pyre
+python
+qua
+quack
+quacked
+quackery
+quacks
+quad
+quadrangle
+quadrangular
+quadrant
+quadrants
+quadratic
+quadratical
+quadratically
+quadratics
+quadrature
+quadratures
+quadrennial
+quadrilateral
+quadrillion
+quadruple
+quadrupled
+quadruples
+quadrupling
+quadrupole
+quaff
+quagmire
+quagmires
+quahog
+quail
+quails
+quaint
+quaintly
+quaintness
+quake
+quaked
+quaker
+quakers
+quakes
+quaking
+qualification
+qualifications
+qualified
+qualifier
+qualifiers
+qualifies
+qualify
+qualifying
+qualitative
+qualitatively
+qualities
+quality
+qualm
+quandaries
+quandary
+quanta
+quantifiable
+quantification
+quantifications
+quantified
+quantifier
+quantifiers
+quantifies
+quantify
+quantifying
+quantile
+quantitative
+quantitatively
+quantities
+quantity
+quantization
+quantize
+quantized
+quantizes
+quantizing
+quantum
+quarantine
+quarantines
+quarantining
+quark
+quarrel
+quarreled
+quarreling
+quarrels
+quarrelsome
+quarries
+quarry
+quart
+quarter
+quarterback
+quartered
+quartering
+quarterly
+quartermaster
+quarters
+quartet
+quartets
+quartile
+quarts
+quartz
+quartzite
+quasar
+quash
+quashed
+quashes
+quashing
+quasi
+quaternary
+quaver
+quavered
+quavering
+quavers
+quay
+queasy
+queen
+queenly
+queens
+queer
+queerer
+queerest
+queerly
+queerness
+quell
+quelling
+quench
+quenched
+quenches
+quenching
+queried
+queries
+query
+querying
+quest
+quested
+quester
+questers
+questing
+question
+questionable
+questionably
+questioned
+questioner
+questioners
+questioning
+questioningly
+questionings
+questionnaire
+questionnaires
+questions
+quests
+queue
+queued
+queueing
+queuer
+queuers
+queues
+queuing
+quibble
+quick
+quicken
+quickened
+quickening
+quickens
+quicker
+quickest
+quickie
+quicklime
+quickly
+quickness
+quicksand
+quicksilver
+quiescent
+quiet
+quieted
+quieter
+quietest
+quieting
+quietly
+quietness
+quiets
+quietude
+quill
+quilt
+quilted
+quilting
+quilts
+quince
+quinine
+quint
+quintet
+quintillion
+quip
+quirk
+quirky
+quit
+quite
+quits
+quitter
+quitters
+quitting
+quiver
+quivered
+quivering
+quivers
+quixotic
+quiz
+quizzed
+quizzes
+quizzical
+quizzing
+quo
+quonset
+quorum
+quota
+quotas
+quotation
+quotations
+quote
+quoted
+quotes
+quoth
+quotient
+quotients
+quoting
+rabbi
+rabbit
+rabbits
+rabble
+rabid
+rabies
+raccoon
+raccoons
+race
+raced
+racer
+racers
+races
+racetrack
+racial
+racially
+racing
+rack
+racked
+racket
+racketeer
+racketeering
+racketeers
+rackets
+racking
+racks
+radar
+radars
+radial
+radially
+radian
+radiance
+radiant
+radiantly
+radiate
+radiated
+radiates
+radiating
+radiation
+radiations
+radiator
+radiators
+radical
+radically
+radicals
+radices
+radii
+radio
+radioactive
+radioastronomy
+radioed
+radiography
+radioing
+radiology
+radios
+radish
+radishes
+radium
+radius
+radix
+radon
+raft
+rafter
+rafters
+rafts
+rag
+rage
+raged
+rages
+ragged
+raggedly
+raggedness
+raging
+rags
+ragweed
+raid
+raided
+raider
+raiders
+raiding
+raids
+rail
+railed
+railer
+railers
+railing
+railroad
+railroaded
+railroader
+railroaders
+railroading
+railroads
+rails
+railway
+railways
+raiment
+rain
+rainbow
+raincoat
+raincoats
+raindrop
+raindrops
+rained
+rainfall
+rainier
+rainiest
+raining
+rains
+rainstorm
+rainy
+raise
+raised
+raiser
+raisers
+raises
+raisin
+raising
+rake
+raked
+rakes
+raking
+rallied
+rallies
+rally
+rallying
+ram
+ramble
+rambler
+rambles
+rambling
+ramblings
+ramification
+ramifications
+ramp
+rampage
+rampant
+rampart
+ramps
+ramrod
+rams
+ran
+ranch
+ranched
+rancher
+ranchers
+ranches
+ranching
+rancid
+random
+randomization
+randomize
+randomized
+randomizes
+randomly
+randomness
+randy
+rang
+range
+ranged
+rangeland
+ranger
+rangers
+ranges
+ranging
+rangy
+rank
+ranked
+ranker
+rankers
+rankest
+ranking
+rankings
+rankle
+rankly
+rankness
+ranks
+ransack
+ransacked
+ransacking
+ransacks
+ransom
+ransomer
+ransoming
+ransoms
+rant
+ranted
+ranter
+ranters
+ranting
+rants
+rap
+rapacious
+rape
+raped
+raper
+rapes
+rapid
+rapidity
+rapidly
+rapids
+rapier
+raping
+rapport
+rapprochement
+raps
+rapt
+raptly
+rapture
+raptures
+rapturous
+rare
+rarely
+rareness
+rarer
+rarest
+rarity
+rascal
+rascally
+rascals
+rash
+rasher
+rashly
+rashness
+rasp
+raspberry
+rasped
+rasping
+rasps
+raster
+rat
+rate
+rated
+rater
+raters
+rates
+rather
+ratification
+ratified
+ratifies
+ratify
+ratifying
+rating
+ratings
+ratio
+ration
+rational
+rationale
+rationales
+rationalities
+rationality
+rationalization
+rationalizations
+rationalize
+rationalized
+rationalizes
+rationalizing
+rationally
+rationals
+rationing
+rations
+ratios
+rats
+rattle
+rattled
+rattler
+rattlers
+rattles
+rattlesnake
+rattlesnakes
+rattling
+raucous
+ravage
+ravaged
+ravager
+ravagers
+ravages
+ravaging
+rave
+raved
+raven
+ravening
+ravenous
+ravenously
+ravens
+raves
+ravine
+ravines
+raving
+ravings
+raw
+rawer
+rawest
+rawly
+rawness
+ray
+rays
+raze
+razor
+razors
+re
+reabbreviate
+reabbreviated
+reabbreviates
+reabbreviating
+reach
+reachability
+reachable
+reachably
+reached
+reacher
+reaches
+reaching
+reacquired
+react
+reacted
+reacting
+reaction
+reactionaries
+reactionary
+reactions
+reactivate
+reactivated
+reactivates
+reactivating
+reactivation
+reactive
+reactively
+reactivity
+reactor
+reactors
+reacts
+read
+readability
+readable
+reader
+readers
+readied
+readier
+readies
+readiest
+readily
+readiness
+reading
+readings
+readjusted
+readout
+readouts
+reads
+ready
+readying
+real
+realest
+realign
+realigned
+realigning
+realigns
+realism
+realist
+realistic
+realistically
+realists
+realities
+reality
+realizable
+realizably
+realization
+realizations
+realize
+realized
+realizes
+realizing
+reallocate
+really
+realm
+realms
+realness
+reals
+realtor
+ream
+reanalyze
+reanalyzes
+reanalyzing
+reap
+reaped
+reaper
+reaping
+reappear
+reappeared
+reappearing
+reappears
+reappraisal
+reappraisals
+reaps
+rear
+reared
+rearing
+rearrange
+rearrangeable
+rearranged
+rearrangement
+rearrangements
+rearranges
+rearranging
+rearrest
+rearrested
+rears
+reason
+reasonable
+reasonableness
+reasonably
+reasoned
+reasoner
+reasoning
+reasonings
+reasons
+reassemble
+reassembled
+reassembles
+reassembling
+reassembly
+reassessment
+reassessments
+reassign
+reassigned
+reassigning
+reassignment
+reassignments
+reassigns
+reassure
+reassured
+reassures
+reassuring
+reawaken
+reawakened
+reawakening
+reawakens
+rebate
+rebates
+rebel
+rebelled
+rebelling
+rebellion
+rebellions
+rebellious
+rebelliously
+rebelliousness
+rebels
+rebind
+rebinding
+rebinds
+reboot
+rebooted
+rebooting
+reboots
+rebound
+rebounded
+rebounding
+rebounds
+rebroadcast
+rebroadcasting
+rebroadcasts
+rebuff
+rebuffed
+rebuild
+rebuilding
+rebuilds
+rebuilt
+rebuke
+rebuked
+rebukes
+rebuking
+rebuttal
+rebutted
+rebutting
+recalcitrant
+recalculate
+recalculated
+recalculates
+recalculating
+recalculation
+recalculations
+recalibrate
+recalibrated
+recalibrates
+recalibrating
+recall
+recalled
+recalling
+recalls
+recant
+recapitulate
+recapitulated
+recapitulates
+recapitulation
+recapture
+recaptured
+recaptures
+recapturing
+recast
+recasting
+recasts
+recede
+receded
+recedes
+receding
+receipt
+receipts
+receivable
+receive
+received
+receiver
+receivers
+receives
+receiving
+recent
+recently
+recentness
+receptacle
+receptacles
+reception
+receptionist
+receptions
+receptive
+receptively
+receptiveness
+receptivity
+receptor
+recess
+recessed
+recesses
+recession
+recessive
+recipe
+recipes
+recipient
+recipients
+reciprocal
+reciprocally
+reciprocate
+reciprocated
+reciprocates
+reciprocating
+reciprocation
+reciprocity
+recirculate
+recirculated
+recirculates
+recirculating
+recital
+recitals
+recitation
+recitations
+recite
+recited
+reciter
+recites
+reciting
+reckless
+recklessly
+recklessness
+reckon
+reckoned
+reckoner
+reckoning
+reckonings
+reckons
+reclaim
+reclaimable
+reclaimed
+reclaimer
+reclaimers
+reclaiming
+reclaims
+reclamation
+reclamations
+reclassification
+reclassified
+reclassifies
+reclassify
+reclassifying
+recline
+reclining
+recode
+recoded
+recodes
+recoding
+recognition
+recognitions
+recognizability
+recognizable
+recognizably
+recognize
+recognized
+recognizer
+recognizers
+recognizes
+recognizing
+recoil
+recoiled
+recoiling
+recoils
+recollect
+recollected
+recollecting
+recollection
+recollections
+recombination
+recombine
+recombined
+recombines
+recombining
+recommend
+recommendation
+recommendations
+recommended
+recommender
+recommending
+recommends
+recompense
+recompile
+recompiled
+recompiles
+recompiling
+recompute
+recomputed
+recomputes
+recomputing
+reconcile
+reconciled
+reconciler
+reconciles
+reconciliation
+reconciling
+reconfigurable
+reconfiguration
+reconfigurations
+reconfigure
+reconfigured
+reconfigurer
+reconfigures
+reconfiguring
+reconnect
+reconnected
+reconnecting
+reconnection
+reconnects
+reconsider
+reconsideration
+reconsidered
+reconsidering
+reconsiders
+reconstituted
+reconstruct
+reconstructed
+reconstructing
+reconstruction
+reconstructs
+reconverted
+reconverts
+record
+recorded
+recorder
+recorders
+recording
+recordings
+records
+recount
+recounted
+recounting
+recounts
+recourse
+recover
+recoverable
+recovered
+recoveries
+recovering
+recovers
+recovery
+recreate
+recreated
+recreates
+recreating
+recreation
+recreational
+recreations
+recreative
+recruit
+recruited
+recruiter
+recruiting
+recruits
+recta
+rectangle
+rectangles
+rectangular
+rectify
+rector
+rectors
+rectum
+rectums
+recuperate
+recur
+recurrence
+recurrences
+recurrent
+recurrently
+recurring
+recurs
+recurse
+recursed
+recurses
+recursing
+recursion
+recursions
+recursive
+recursively
+recyclable
+recycle
+recycled
+recycles
+recycling
+red
+redbreast
+redcoat
+redden
+reddened
+redder
+reddest
+reddish
+reddishness
+redeclare
+redeclared
+redeclares
+redeclaring
+redeem
+redeemed
+redeemer
+redeemers
+redeeming
+redeems
+redefine
+redefined
+redefines
+redefining
+redefinition
+redefinitions
+redemption
+redesign
+redesigned
+redesigning
+redesigns
+redevelopment
+redhead
+redirect
+redirected
+redirecting
+redirection
+redirections
+redisplay
+redisplayed
+redisplaying
+redisplays
+redistribute
+redistributed
+redistributes
+redistributing
+redly
+redneck
+redness
+redo
+redone
+redouble
+redoubled
+redraw
+redrawn
+redress
+redressed
+redresses
+redressing
+reds
+reduce
+reduced
+reducer
+reducers
+reduces
+reducibility
+reducible
+reducibly
+reducing
+reduction
+reductions
+redundancies
+redundancy
+redundant
+redundantly
+redwood
+reed
+reeds
+reeducation
+reef
+reefer
+reefs
+reel
+reelect
+reelected
+reelecting
+reelects
+reeled
+reeler
+reeling
+reels
+reemphasize
+reemphasized
+reemphasizes
+reemphasizing
+reenabled
+reenforcement
+reenter
+reentered
+reentering
+reenters
+reentrant
+reestablish
+reestablished
+reestablishes
+reestablishing
+reevaluate
+reevaluated
+reevaluates
+reevaluating
+reevaluation
+reexamine
+reexamined
+reexamines
+reexamining
+reexecuted
+refer
+referee
+refereed
+refereeing
+referees
+reference
+referenced
+referencer
+references
+referencing
+referenda
+referendum
+referendums
+referent
+referential
+referentiality
+referentially
+referents
+referral
+referrals
+referred
+referring
+refers
+refill
+refillable
+refilled
+refilling
+refills
+refine
+refined
+refinement
+refinements
+refiner
+refinery
+refines
+refining
+reflect
+reflected
+reflecting
+reflection
+reflections
+reflective
+reflectively
+reflectivity
+reflector
+reflectors
+reflects
+reflex
+reflexes
+reflexive
+reflexively
+reflexiveness
+reflexivity
+reforestation
+reform
+reformable
+reformat
+reformation
+reformatory
+reformats
+reformatted
+reformatting
+reformed
+reformer
+reformers
+reforming
+reforms
+reformulate
+reformulated
+reformulates
+reformulating
+reformulation
+refract
+refracted
+refraction
+refractory
+refragment
+refrain
+refrained
+refraining
+refrains
+refresh
+refreshed
+refresher
+refreshers
+refreshes
+refreshing
+refreshingly
+refreshment
+refreshments
+refrigerate
+refrigerator
+refrigerators
+refuel
+refueled
+refueling
+refuels
+refuge
+refugee
+refugees
+refusal
+refuse
+refused
+refuses
+refusing
+refutable
+refutation
+refute
+refuted
+refuter
+refutes
+refuting
+regain
+regained
+regaining
+regains
+regal
+regaled
+regally
+regard
+regarded
+regarding
+regardless
+regards
+regatta
+regenerate
+regenerated
+regenerates
+regenerating
+regeneration
+regenerative
+regenerator
+regenerators
+regent
+regents
+regime
+regimen
+regiment
+regimentation
+regimented
+regiments
+regimes
+region
+regional
+regionally
+regions
+register
+registered
+registering
+registers
+registrar
+registration
+registrations
+registry
+regress
+regressed
+regresses
+regressing
+regression
+regressions
+regressive
+regret
+regretful
+regretfully
+regrets
+regrettable
+regrettably
+regretted
+regretting
+regroup
+regrouped
+regrouping
+regular
+regularities
+regularity
+regularly
+regulars
+regulate
+regulated
+regulates
+regulating
+regulation
+regulations
+regulative
+regulator
+regulators
+regulatory
+rehabilitate
+rehearsal
+rehearsals
+rehearse
+rehearsed
+rehearser
+rehearses
+rehearsing
+reign
+reigned
+reigning
+reigns
+reimbursable
+reimburse
+reimbursed
+reimbursement
+reimbursements
+rein
+reincarnate
+reincarnated
+reincarnation
+reindeer
+reined
+reinforce
+reinforced
+reinforcement
+reinforcements
+reinforcer
+reinforces
+reinforcing
+reinitialize
+reinitialized
+reinitializing
+reins
+reinsert
+reinserted
+reinserting
+reinserts
+reinstate
+reinstated
+reinstatement
+reinstates
+reinstating
+reinterpret
+reinterpreted
+reinterpreting
+reinterprets
+reintroduce
+reintroduced
+reintroduces
+reintroducing
+reinvent
+reinvented
+reinventing
+reinvents
+reiterate
+reiterated
+reiterates
+reiterating
+reiteration
+reject
+rejected
+rejecting
+rejection
+rejections
+rejector
+rejectors
+rejects
+rejoice
+rejoiced
+rejoicer
+rejoices
+rejoicing
+rejoin
+rejoinder
+rejoined
+rejoining
+rejoins
+relabel
+relabeled
+relabeling
+relabelled
+relabelling
+relabels
+relapse
+relate
+related
+relater
+relates
+relating
+relation
+relational
+relationally
+relations
+relationship
+relationships
+relative
+relatively
+relativeness
+relatives
+relativism
+relativistic
+relativistically
+relativity
+relax
+relaxation
+relaxations
+relaxed
+relaxer
+relaxes
+relaxing
+relay
+relayed
+relaying
+relays
+release
+released
+releases
+releasing
+relegate
+relegated
+relegates
+relegating
+relent
+relented
+relenting
+relentless
+relentlessly
+relentlessness
+relents
+relevance
+relevances
+relevant
+relevantly
+reliability
+reliable
+reliably
+reliance
+reliant
+relic
+relics
+relied
+relief
+relies
+relieve
+relieved
+reliever
+relievers
+relieves
+relieving
+religion
+religions
+religious
+religiously
+religiousness
+relink
+relinquish
+relinquished
+relinquishes
+relinquishing
+relish
+relished
+relishes
+relishing
+relive
+relives
+reliving
+reload
+reloaded
+reloader
+reloading
+reloads
+relocatable
+relocate
+relocated
+relocates
+relocating
+relocation
+relocations
+reluctance
+reluctant
+reluctantly
+rely
+relying
+remain
+remainder
+remainders
+remained
+remaining
+remains
+remark
+remarkable
+remarkableness
+remarkably
+remarked
+remarking
+remarks
+remedial
+remedied
+remedies
+remedy
+remedying
+remember
+remembered
+remembering
+remembers
+remembrance
+remembrances
+remind
+reminded
+reminder
+reminders
+reminding
+reminds
+reminiscence
+reminiscences
+reminiscent
+reminiscently
+remiss
+remission
+remit
+remittance
+remnant
+remnants
+remodel
+remodeled
+remodeling
+remodels
+remonstrate
+remonstrated
+remonstrates
+remonstrating
+remonstration
+remonstrative
+remorse
+remorseful
+remote
+remotely
+remoteness
+remotest
+removable
+removal
+removals
+remove
+removed
+remover
+removes
+removing
+remunerate
+remuneration
+renaissance
+renal
+rename
+renamed
+renames
+renaming
+rend
+render
+rendered
+rendering
+renderings
+renders
+rendezvous
+rending
+rendition
+renditions
+rends
+renegade
+renegotiable
+renew
+renewable
+renewal
+renewed
+renewer
+renewing
+renews
+renounce
+renounces
+renouncing
+renovate
+renovated
+renovation
+renown
+renowned
+rent
+rental
+rentals
+rented
+renting
+rents
+renumber
+renumbering
+renumbers
+renunciate
+renunciation
+reoccur
+reopen
+reopened
+reopening
+reopens
+reorder
+reordered
+reordering
+reorders
+reorganization
+reorganizations
+reorganize
+reorganized
+reorganizes
+reorganizing
+repackage
+repaid
+repair
+repaired
+repairer
+repairing
+repairman
+repairmen
+repairs
+reparation
+reparations
+repartee
+repartition
+repast
+repasts
+repay
+repaying
+repays
+repeal
+repealed
+repealer
+repealing
+repeals
+repeat
+repeatable
+repeated
+repeatedly
+repeater
+repeaters
+repeating
+repeats
+repel
+repelled
+repellent
+repels
+repent
+repentance
+repented
+repenting
+repents
+repercussion
+repercussions
+repertoire
+repertory
+repetition
+repetitions
+repetitious
+repetitive
+repetitively
+repetitiveness
+rephrase
+rephrased
+rephrases
+rephrasing
+repine
+replace
+replaceable
+replaced
+replacement
+replacements
+replacer
+replaces
+replacing
+replay
+replayed
+replaying
+replays
+replenish
+replenished
+replenishes
+replenishing
+replete
+repleteness
+repletion
+replica
+replicas
+replicate
+replicated
+replicates
+replicating
+replication
+replications
+replied
+replies
+reply
+replying
+report
+reported
+reportedly
+reporter
+reporters
+reporting
+reports
+repose
+reposed
+reposes
+reposing
+reposition
+repositioned
+repositioning
+repositions
+repositories
+repository
+reprehensible
+represent
+representable
+representably
+representation
+representational
+representationally
+representations
+representative
+representatively
+representativeness
+representatives
+represented
+representing
+represents
+repress
+repressed
+represses
+repressing
+repression
+repressions
+repressive
+reprieve
+reprieved
+reprieves
+reprieving
+reprimand
+reprint
+reprinted
+reprinting
+reprints
+reprisal
+reprisals
+reproach
+reproached
+reproaches
+reproaching
+reprobate
+reproduce
+reproduced
+reproducer
+reproducers
+reproduces
+reproducibilities
+reproducibility
+reproducible
+reproducibly
+reproducing
+reproduction
+reproductions
+reprogram
+reprogrammed
+reprogramming
+reprograms
+reproof
+reprove
+reprover
+reptile
+reptiles
+reptilian
+republic
+republican
+republicans
+republics
+repudiate
+repudiated
+repudiates
+repudiating
+repudiation
+repudiations
+repugnant
+repulse
+repulsed
+repulses
+repulsing
+repulsion
+repulsions
+repulsive
+reputable
+reputably
+reputation
+reputations
+repute
+reputed
+reputedly
+reputes
+request
+requested
+requester
+requesters
+requesting
+requests
+require
+required
+requirement
+requirements
+requires
+requiring
+requisite
+requisites
+requisition
+requisitioned
+requisitioning
+requisitions
+reread
+reregister
+reroute
+rerouted
+reroutes
+rerouting
+rerun
+reruns
+reschedule
+rescind
+rescue
+rescued
+rescuer
+rescuers
+rescues
+rescuing
+research
+researched
+researcher
+researchers
+researches
+researching
+reselect
+reselected
+reselecting
+reselects
+resell
+reselling
+resemblance
+resemblances
+resemble
+resembled
+resembles
+resembling
+resent
+resented
+resentful
+resentfully
+resenting
+resentment
+resents
+reserpine
+reservation
+reservations
+reserve
+reserved
+reserver
+reserves
+reserving
+reservoir
+reservoirs
+reset
+resets
+resetting
+resettings
+reside
+resided
+residence
+residences
+resident
+residential
+residentially
+residents
+resides
+residing
+residual
+residue
+residues
+resign
+resignation
+resignations
+resigned
+resigning
+resigns
+resilient
+resin
+resins
+resist
+resistable
+resistance
+resistances
+resistant
+resistantly
+resisted
+resistible
+resisting
+resistive
+resistivity
+resistor
+resistors
+resists
+resolute
+resolutely
+resoluteness
+resolution
+resolutions
+resolvable
+resolve
+resolved
+resolver
+resolvers
+resolves
+resolving
+resonance
+resonances
+resonant
+resonate
+resort
+resorted
+resorting
+resorts
+resound
+resounding
+resounds
+resource
+resourceful
+resourcefully
+resourcefulness
+resources
+respect
+respectability
+respectable
+respectably
+respected
+respecter
+respectful
+respectfully
+respectfulness
+respecting
+respective
+respectively
+respects
+respiration
+respirator
+respiratory
+respite
+resplendent
+resplendently
+respond
+responded
+respondent
+respondents
+responder
+responding
+responds
+response
+responses
+responsibilities
+responsibility
+responsible
+responsibleness
+responsibly
+responsive
+responsively
+responsiveness
+rest
+restart
+restarted
+restarting
+restarts
+restate
+restated
+restatement
+restates
+restating
+restaurant
+restaurants
+restaurateur
+rested
+restful
+restfully
+restfulness
+resting
+restitution
+restive
+restless
+restlessly
+restlessness
+restoration
+restorations
+restore
+restored
+restorer
+restorers
+restores
+restoring
+restrain
+restrained
+restrainer
+restrainers
+restraining
+restrains
+restraint
+restraints
+restrict
+restricted
+restricting
+restriction
+restrictions
+restrictive
+restrictively
+restricts
+restroom
+restructure
+restructured
+restructures
+restructuring
+rests
+result
+resultant
+resultantly
+resultants
+resulted
+resulting
+results
+resumable
+resume
+resumed
+resumes
+resuming
+resumption
+resumptions
+resurgent
+resurrect
+resurrected
+resurrecting
+resurrection
+resurrections
+resurrector
+resurrectors
+resurrects
+resuscitate
+resynchronization
+resynchronize
+resynchronized
+resynchronizing
+retail
+retailer
+retailers
+retailing
+retain
+retained
+retainer
+retainers
+retaining
+retainment
+retains
+retaliate
+retaliation
+retaliatory
+retard
+retarded
+retarder
+retarding
+retch
+retention
+retentions
+retentive
+retentively
+retentiveness
+reticle
+reticles
+reticular
+reticulate
+reticulated
+reticulately
+reticulates
+reticulating
+reticulation
+retina
+retinal
+retinas
+retinue
+retire
+retired
+retiree
+retirement
+retirements
+retires
+retiring
+retort
+retorted
+retorts
+retrace
+retraced
+retraces
+retracing
+retract
+retracted
+retracting
+retraction
+retractions
+retracts
+retrain
+retrained
+retraining
+retrains
+retranslate
+retranslated
+retransmission
+retransmissions
+retransmit
+retransmits
+retransmitted
+retransmitting
+retreat
+retreated
+retreating
+retreats
+retribution
+retried
+retrier
+retriers
+retries
+retrievable
+retrieval
+retrievals
+retrieve
+retrieved
+retriever
+retrievers
+retrieves
+retrieving
+retroactive
+retroactively
+retrofit
+retrofitting
+retrograde
+retrospect
+retrospection
+retrospective
+retry
+retrying
+return
+returnable
+returned
+returner
+returning
+returns
+retype
+retyped
+retypes
+retyping
+reunion
+reunions
+reunite
+reunited
+reuniting
+reusable
+reuse
+reused
+reuses
+reusing
+revamp
+revamped
+revamping
+revamps
+reveal
+revealed
+revealing
+reveals
+revel
+revelation
+revelations
+reveled
+reveler
+reveling
+revelry
+revels
+revenge
+revenger
+revenue
+revenuers
+revenues
+reverberate
+revere
+revered
+reverence
+reverend
+reverends
+reverent
+reverently
+reveres
+reverie
+reverified
+reverifies
+reverify
+reverifying
+revering
+reversal
+reversals
+reverse
+reversed
+reversely
+reverser
+reverses
+reversible
+reversing
+reversion
+revert
+reverted
+reverting
+reverts
+review
+reviewed
+reviewer
+reviewers
+reviewing
+reviews
+revile
+reviled
+reviler
+reviling
+revise
+revised
+reviser
+revises
+revising
+revision
+revisionary
+revisions
+revisit
+revisited
+revisiting
+revisits
+revival
+revivals
+revive
+revived
+reviver
+revives
+reviving
+revocable
+revocation
+revoke
+revoked
+revoker
+revokes
+revoking
+revolt
+revolted
+revolter
+revolting
+revoltingly
+revolts
+revolution
+revolutionaries
+revolutionary
+revolutionize
+revolutionized
+revolutionizer
+revolutions
+revolve
+revolved
+revolver
+revolvers
+revolves
+revolving
+revulsion
+reward
+rewarded
+rewarding
+rewardingly
+rewards
+rewind
+rewinding
+rewinds
+rewire
+rework
+reworked
+reworking
+reworks
+rewound
+rewrite
+rewrites
+rewriting
+rewritten
+rhapsody
+rhesus
+rhetoric
+rheumatic
+rheumatism
+rhinestone
+rhino
+rhinoceros
+rho
+rhododendron
+rhombic
+rhombus
+rhubarb
+rhyme
+rhymed
+rhymes
+rhyming
+rhythm
+rhythmic
+rhythmically
+rhythms
+rib
+ribald
+ribbed
+ribbing
+ribbon
+ribbons
+riboflavin
+ribonucleic
+ribs
+rice
+rich
+richer
+riches
+richest
+richly
+richness
+rickets
+rickety
+rickshaw
+rickshaws
+ricochet
+rid
+riddance
+ridden
+ridding
+riddle
+riddled
+riddles
+riddling
+ride
+rider
+riders
+rides
+ridge
+ridgepole
+ridges
+ridicule
+ridiculed
+ridicules
+ridiculing
+ridiculous
+ridiculously
+ridiculousness
+riding
+rids
+rifle
+rifled
+rifleman
+rifler
+rifles
+rifling
+rift
+rig
+rigging
+right
+righted
+righteous
+righteously
+righteousness
+righter
+rightful
+rightfully
+rightfulness
+righting
+rightly
+rightmost
+rightness
+rights
+rightward
+rigid
+rigidity
+rigidly
+rigor
+rigorous
+rigorously
+rigors
+rigs
+rill
+rim
+rime
+rims
+rind
+rinds
+ring
+ringed
+ringer
+ringers
+ringing
+ringingly
+ringings
+rings
+ringside
+rink
+rinse
+rinsed
+rinser
+rinses
+rinsing
+riot
+rioted
+rioter
+rioters
+rioting
+riotous
+riots
+rip
+ripe
+ripely
+ripen
+ripeness
+ripoff
+ripped
+ripping
+ripple
+rippled
+ripples
+rippling
+rips
+rise
+risen
+riser
+risers
+rises
+rising
+risings
+risk
+risked
+risking
+risks
+risky
+rite
+rites
+ritual
+ritually
+rituals
+rival
+rivaled
+rivalled
+rivalling
+rivalries
+rivalry
+rivals
+river
+riverbank
+riverfront
+rivers
+riverside
+rivet
+riveter
+rivets
+rivulet
+rivulets
+roach
+road
+roadbed
+roadblock
+roads
+roadside
+roadster
+roadsters
+roadway
+roadways
+roam
+roamed
+roaming
+roams
+roar
+roared
+roarer
+roaring
+roars
+roast
+roasted
+roaster
+roasting
+roasts
+rob
+robbed
+robber
+robberies
+robbers
+robbery
+robbing
+robe
+robed
+robes
+robin
+robing
+robins
+robot
+robotic
+robotics
+robots
+robs
+robust
+robustly
+robustness
+rock
+rockabye
+rocked
+rocker
+rockers
+rocket
+rocketed
+rocketing
+rockets
+rocking
+rocks
+rocky
+rod
+rode
+rodent
+rodents
+rodeo
+rods
+roe
+rogue
+rogues
+role
+roles
+roll
+rollback
+rolled
+roller
+rollers
+rolling
+rolls
+romance
+romancer
+romancers
+romances
+romancing
+romantic
+romantics
+romp
+romped
+romper
+romping
+romps
+roof
+roofed
+roofer
+roofing
+roofs
+rooftop
+rook
+rookie
+room
+roomed
+roomer
+roomers
+roomful
+rooming
+roommate
+rooms
+roomy
+roost
+rooster
+roosters
+root
+rooted
+rooter
+rooting
+roots
+rope
+roped
+roper
+ropers
+ropes
+roping
+rosary
+rosebud
+rosebuds
+rosebush
+rosemary
+roses
+rosette
+rosiness
+roster
+rostrum
+rosy
+rot
+rotary
+rotate
+rotated
+rotates
+rotating
+rotation
+rotational
+rotations
+rotator
+rotor
+rots
+rotten
+rottenness
+rotting
+rotund
+rotunda
+rouge
+rough
+roughed
+roughen
+rougher
+roughest
+roughly
+roughneck
+roughness
+roulette
+round
+roundabout
+rounded
+roundedness
+rounder
+roundest
+roundhead
+roundhouse
+rounding
+roundly
+roundness
+roundoff
+rounds
+roundtable
+roundup
+roundworm
+rouse
+roused
+rouses
+rousing
+roustabout
+rout
+route
+routed
+router
+routers
+routes
+routine
+routinely
+routines
+routing
+routings
+rove
+roved
+rover
+roves
+roving
+row
+rowboat
+rowdy
+rowed
+rower
+rowing
+rows
+royal
+royalist
+royalists
+royally
+royalties
+royalty
+rub
+rubbed
+rubber
+rubbers
+rubbery
+rubbing
+rubbish
+rubble
+rubdown
+rubies
+ruble
+rubles
+rubout
+rubs
+ruby
+rudder
+rudders
+ruddiness
+ruddy
+rude
+rudely
+rudeness
+rudiment
+rudimentary
+rudiments
+rue
+ruefully
+ruffian
+ruffianly
+ruffians
+ruffle
+ruffled
+ruffles
+rug
+rugged
+ruggedly
+ruggedness
+rugs
+ruin
+ruination
+ruinations
+ruined
+ruining
+ruinous
+ruinously
+ruins
+rule
+ruled
+ruler
+rulers
+rules
+ruling
+rulings
+rum
+rumble
+rumbled
+rumbler
+rumbles
+rumbling
+rumen
+rummage
+rummy
+rumor
+rumored
+rumors
+rump
+rumple
+rumpled
+rumply
+rumpus
+run
+runaway
+rundown
+rung
+rungs
+runnable
+runner
+runners
+running
+runoff
+runs
+runt
+runtime
+rupee
+rupture
+ruptured
+ruptures
+rupturing
+rural
+rurally
+rush
+rushed
+rusher
+rushes
+rushing
+russet
+rust
+rusted
+rustic
+rusticate
+rusticated
+rusticates
+rusticating
+rustication
+rusting
+rustle
+rustled
+rustler
+rustlers
+rustling
+rusts
+rusty
+rut
+ruthless
+ruthlessly
+ruthlessness
+ruts
+rye
+sabbath
+sabbatical
+saber
+sabers
+sable
+sables
+sabotage
+sack
+sacker
+sacking
+sacks
+sacrament
+sacred
+sacredly
+sacredness
+sacrifice
+sacrificed
+sacrificer
+sacrificers
+sacrifices
+sacrificial
+sacrificially
+sacrificing
+sacrilege
+sacrilegious
+sacrosanct
+sad
+sadden
+saddened
+saddens
+sadder
+saddest
+saddle
+saddlebag
+saddled
+saddles
+sadism
+sadist
+sadistic
+sadistically
+sadists
+sadly
+sadness
+safari
+safe
+safeguard
+safeguarded
+safeguarding
+safeguards
+safekeeping
+safely
+safeness
+safer
+safes
+safest
+safeties
+safety
+saffron
+sag
+saga
+sagacious
+sagacity
+sage
+sagebrush
+sagely
+sages
+sagging
+sagittal
+sags
+saguaro
+said
+sail
+sailboat
+sailed
+sailfish
+sailing
+sailor
+sailorly
+sailors
+sails
+saint
+sainted
+sainthood
+saintly
+saints
+sake
+sakes
+salable
+salad
+salads
+salamander
+salami
+salaried
+salaries
+salary
+sale
+sales
+salesgirl
+saleslady
+salesman
+salesmen
+salesperson
+salient
+saline
+saliva
+salivary
+salivate
+sallies
+sallow
+sallying
+salmon
+salon
+salons
+saloon
+saloons
+salt
+salted
+salter
+salters
+saltier
+saltiest
+saltiness
+salting
+salts
+salty
+salutary
+salutation
+salutations
+salute
+saluted
+salutes
+saluting
+salvage
+salvaged
+salvager
+salvages
+salvaging
+salvation
+salve
+salver
+salves
+same
+sameness
+sample
+sampled
+sampler
+samplers
+samples
+sampling
+samplings
+sanatoria
+sanatorium
+sanctification
+sanctified
+sanctify
+sanctimonious
+sanction
+sanctioned
+sanctioning
+sanctions
+sanctity
+sanctuaries
+sanctuary
+sanctum
+sand
+sandal
+sandals
+sandbag
+sanded
+sander
+sanding
+sandman
+sandpaper
+sands
+sandstone
+sandwich
+sandwiches
+sandy
+sane
+sanely
+saner
+sanest
+sang
+sanguine
+sanitarium
+sanitary
+sanitation
+sanity
+sank
+sap
+sapiens
+sapling
+saplings
+sapphire
+saps
+sapsucker
+sarcasm
+sarcasms
+sarcastic
+sardine
+sardonic
+sari
+sash
+sat
+satanic
+satchel
+satchels
+sate
+sated
+satellite
+satellites
+sates
+satin
+sating
+satire
+satires
+satiric
+satisfaction
+satisfactions
+satisfactorily
+satisfactory
+satisfiability
+satisfiable
+satisfied
+satisfies
+satisfy
+satisfying
+saturate
+saturated
+saturates
+saturating
+saturation
+satyr
+sauce
+saucepan
+saucepans
+saucer
+saucers
+sauces
+saucy
+saunter
+sausage
+sausages
+savage
+savaged
+savagely
+savageness
+savager
+savagers
+savages
+savaging
+save
+saved
+saver
+savers
+saves
+saving
+savings
+savior
+saviors
+savor
+savored
+savoring
+savors
+savory
+saw
+sawdust
+sawed
+sawfish
+sawing
+sawmill
+sawmills
+saws
+sawtooth
+sax
+saxophone
+say
+sayer
+sayers
+saying
+sayings
+says
+scab
+scabbard
+scabbards
+scabrous
+scaffold
+scaffolding
+scaffoldings
+scaffolds
+scalable
+scalar
+scalars
+scald
+scalded
+scalding
+scale
+scaled
+scales
+scaling
+scalings
+scallop
+scalloped
+scallops
+scalp
+scalps
+scaly
+scamper
+scampering
+scampers
+scan
+scandal
+scandalous
+scandals
+scanned
+scanner
+scanners
+scanning
+scans
+scant
+scantier
+scantiest
+scantily
+scantiness
+scantly
+scanty
+scapegoat
+scar
+scarce
+scarcely
+scarceness
+scarcer
+scarcity
+scare
+scarecrow
+scared
+scares
+scarf
+scaring
+scarlet
+scars
+scarves
+scary
+scatter
+scatterbrain
+scattered
+scattering
+scatters
+scenario
+scenarios
+scene
+scenery
+scenes
+scenic
+scent
+scented
+scents
+scepter
+scepters
+schedulable
+schedule
+scheduled
+scheduler
+schedulers
+schedules
+scheduling
+schema
+schemas
+schemata
+schematic
+schematically
+schematics
+scheme
+schemed
+schemer
+schemers
+schemes
+scheming
+schism
+schizophrenia
+scholar
+scholarly
+scholars
+scholarship
+scholarships
+scholastic
+scholastically
+scholastics
+school
+schoolboy
+schoolboys
+schooled
+schooler
+schoolers
+schoolhouse
+schoolhouses
+schooling
+schoolmaster
+schoolmasters
+schoolroom
+schoolrooms
+schools
+schooner
+science
+sciences
+scientific
+scientifically
+scientist
+scientists
+scissor
+scissored
+scissoring
+scissors
+sclerosis
+sclerotic
+scoff
+scoffed
+scoffer
+scoffing
+scoffs
+scold
+scolded
+scolding
+scolds
+scoop
+scooped
+scooping
+scoops
+scoot
+scope
+scoped
+scopes
+scoping
+scorch
+scorched
+scorcher
+scorches
+scorching
+score
+scoreboard
+scorecard
+scored
+scorer
+scorers
+scores
+scoring
+scorings
+scorn
+scorned
+scorner
+scornful
+scornfully
+scorning
+scorns
+scorpion
+scorpions
+scotch
+scoundrel
+scoundrels
+scour
+scoured
+scourge
+scouring
+scours
+scout
+scouted
+scouting
+scouts
+scow
+scowl
+scowled
+scowling
+scowls
+scram
+scramble
+scrambled
+scrambler
+scrambles
+scrambling
+scrap
+scrape
+scraped
+scraper
+scrapers
+scrapes
+scraping
+scrapings
+scrapped
+scraps
+scratch
+scratched
+scratcher
+scratchers
+scratches
+scratching
+scratchy
+scrawl
+scrawled
+scrawling
+scrawls
+scrawny
+scream
+screamed
+screamer
+screamers
+screaming
+screams
+screech
+screeched
+screeches
+screeching
+screen
+screened
+screening
+screenings
+screenplay
+screens
+screw
+screwball
+screwdriver
+screwed
+screwing
+screws
+scribble
+scribbled
+scribbler
+scribbles
+scribe
+scribes
+scribing
+scrimmage
+script
+scripts
+scripture
+scriptures
+scroll
+scrolled
+scrolling
+scrolls
+scrounge
+scrub
+scrumptious
+scruple
+scrupulous
+scrupulously
+scrutinize
+scrutinized
+scrutinizing
+scrutiny
+scuba
+scud
+scuffle
+scuffled
+scuffles
+scuffling
+sculpt
+sculpted
+sculptor
+sculptors
+sculpts
+sculpture
+sculptured
+sculptures
+scurried
+scurry
+scurvy
+scuttle
+scuttled
+scuttles
+scuttling
+scythe
+scythes
+sea
+seaboard
+seacoast
+seacoasts
+seafood
+seagull
+seahorse
+seal
+sealed
+sealer
+sealing
+seals
+sealy
+seam
+seaman
+seamed
+seamen
+seaming
+seams
+seamy
+seaport
+seaports
+sear
+search
+searched
+searcher
+searchers
+searches
+searching
+searchingly
+searchings
+searchlight
+seared
+searing
+searingly
+seas
+seashore
+seashores
+seaside
+season
+seasonable
+seasonably
+seasonal
+seasonally
+seasoned
+seasoner
+seasoners
+seasoning
+seasonings
+seasons
+seat
+seated
+seating
+seats
+seaward
+seaweed
+secant
+secede
+seceded
+secedes
+seceding
+secession
+seclude
+secluded
+seclusion
+second
+secondaries
+secondarily
+secondary
+seconded
+seconder
+seconders
+secondhand
+seconding
+secondly
+seconds
+secrecy
+secret
+secretarial
+secretariat
+secretaries
+secretary
+secrete
+secreted
+secretes
+secreting
+secretion
+secretions
+secretive
+secretively
+secretly
+secrets
+sect
+sectarian
+section
+sectional
+sectioned
+sectioning
+sections
+sector
+sectors
+sects
+secular
+secure
+secured
+securely
+secures
+securing
+securings
+securities
+security
+sedan
+sedate
+sedge
+sediment
+sedimentary
+sediments
+sedition
+seditious
+seduce
+seduced
+seducer
+seducers
+seduces
+seducing
+seduction
+seductive
+see
+seed
+seeded
+seeder
+seeders
+seeding
+seedings
+seedling
+seedlings
+seeds
+seedy
+seeing
+seek
+seeker
+seekers
+seeking
+seeks
+seem
+seemed
+seeming
+seemingly
+seemly
+seems
+seen
+seep
+seepage
+seeped
+seeping
+seeps
+seer
+seers
+seersucker
+sees
+seethe
+seethed
+seethes
+seething
+segment
+segmentation
+segmentations
+segmented
+segmenting
+segments
+segregate
+segregated
+segregates
+segregating
+segregation
+seismic
+seismograph
+seismology
+seize
+seized
+seizes
+seizing
+seizure
+seizures
+seldom
+select
+selected
+selecting
+selection
+selections
+selective
+selectively
+selectivity
+selectman
+selectmen
+selector
+selectors
+selects
+selenium
+self
+selfish
+selfishly
+selfishness
+selfsame
+sell
+seller
+sellers
+selling
+sellout
+sells
+seltzer
+selves
+semantic
+semantical
+semantically
+semanticist
+semanticists
+semantics
+semaphore
+semaphores
+semblance
+semester
+semesters
+semi
+semiautomated
+semicolon
+semicolons
+semiconductor
+semiconductors
+seminal
+seminar
+seminarian
+seminaries
+seminars
+seminary
+semipermanent
+semipermanently
+senate
+senates
+senator
+senatorial
+senators
+send
+sender
+senders
+sending
+sends
+senile
+senior
+seniority
+seniors
+sensation
+sensational
+sensationally
+sensations
+sense
+sensed
+senseless
+senselessly
+senselessness
+senses
+sensibilities
+sensibility
+sensible
+sensibly
+sensing
+sensitive
+sensitively
+sensitiveness
+sensitives
+sensitivities
+sensitivity
+sensor
+sensors
+sensory
+sensual
+sensuous
+sent
+sentence
+sentenced
+sentences
+sentencing
+sentential
+sentiment
+sentimental
+sentimentally
+sentiments
+sentinel
+sentinels
+sentries
+sentry
+separable
+separate
+separated
+separately
+separateness
+separates
+separating
+separation
+separations
+separator
+separators
+sepia
+sept
+sepulcher
+sepulchers
+sequel
+sequels
+sequence
+sequenced
+sequencer
+sequencers
+sequences
+sequencing
+sequencings
+sequential
+sequentiality
+sequentialize
+sequentialized
+sequentializes
+sequentializing
+sequentially
+sequester
+serendipitous
+serendipity
+serene
+serenely
+serenity
+serf
+serfs
+sergeant
+sergeants
+serial
+serializability
+serializable
+serialization
+serializations
+serialize
+serialized
+serializes
+serializing
+serially
+serials
+series
+serif
+serious
+seriously
+seriousness
+sermon
+sermons
+serpent
+serpentine
+serpents
+serum
+serums
+servant
+servants
+serve
+served
+server
+servers
+serves
+service
+serviceability
+serviceable
+serviced
+serviceman
+servicemen
+services
+servicing
+servile
+serving
+servings
+servitude
+servo
+servomechanism
+sesame
+session
+sessions
+set
+setback
+sets
+settable
+setter
+setters
+setting
+settings
+settle
+settled
+settlement
+settlements
+settler
+settlers
+settles
+settling
+setup
+setups
+seven
+sevenfold
+sevens
+seventeen
+seventeens
+seventeenth
+seventh
+seventies
+seventieth
+seventy
+sever
+several
+severalfold
+severally
+severance
+severe
+severed
+severely
+severer
+severest
+severing
+severities
+severity
+severs
+sew
+sewage
+sewed
+sewer
+sewers
+sewing
+sews
+sex
+sexed
+sexes
+sexist
+sextet
+sextillion
+sexton
+sextuple
+sextuplet
+sexual
+sexuality
+sexually
+sexy
+shabby
+shack
+shacked
+shackle
+shackled
+shackles
+shackling
+shacks
+shade
+shaded
+shades
+shadier
+shadiest
+shadily
+shadiness
+shading
+shadings
+shadow
+shadowed
+shadowing
+shadows
+shadowy
+shady
+shaft
+shafts
+shaggy
+shakable
+shakably
+shake
+shakedown
+shaken
+shaker
+shakers
+shakes
+shakiness
+shaking
+shaky
+shale
+shall
+shallow
+shallower
+shallowly
+shallowness
+sham
+shambles
+shame
+shamed
+shameful
+shamefully
+shameless
+shamelessly
+shames
+shaming
+shampoo
+shamrock
+shams
+shanties
+shanty
+shape
+shaped
+shapeless
+shapelessly
+shapelessness
+shapely
+shaper
+shapers
+shapes
+shaping
+sharable
+shard
+share
+shareable
+sharecropper
+sharecroppers
+shared
+shareholder
+shareholders
+sharer
+sharers
+shares
+sharing
+shark
+sharks
+sharp
+sharpen
+sharpened
+sharpening
+sharpens
+sharper
+sharpest
+sharply
+sharpness
+sharpshoot
+shatter
+shattered
+shattering
+shatterproof
+shatters
+shave
+shaved
+shaven
+shaves
+shaving
+shavings
+shawl
+shawls
+she
+sheaf
+shear
+sheared
+shearing
+shears
+sheath
+sheathing
+sheaths
+sheaves
+shed
+shedding
+sheds
+sheen
+sheep
+sheepskin
+sheer
+sheered
+sheet
+sheeted
+sheeting
+sheets
+sheik
+shelf
+shell
+shelled
+sheller
+shelling
+shells
+shelter
+sheltered
+sheltering
+shelters
+shelve
+shelved
+shelves
+shelving
+shenanigan
+shepherd
+shepherds
+sherbet
+sheriff
+sheriffs
+sherry
+shibboleth
+shied
+shield
+shielded
+shielding
+shies
+shift
+shifted
+shifter
+shifters
+shiftier
+shiftiest
+shiftily
+shiftiness
+shifting
+shifts
+shifty
+shill
+shilling
+shillings
+shimmer
+shimmering
+shin
+shinbone
+shine
+shined
+shiner
+shiners
+shines
+shingle
+shingles
+shining
+shiningly
+shiny
+ship
+shipboard
+shipbuilding
+shipmate
+shipment
+shipments
+shipped
+shipper
+shippers
+shipping
+ships
+shipshape
+shipwreck
+shipwrecked
+shipwrecks
+shipyard
+shire
+shirk
+shirker
+shirking
+shirks
+shirt
+shirting
+shirts
+shit
+shiver
+shivered
+shiverer
+shivering
+shivers
+shoal
+shoals
+shock
+shocked
+shocker
+shockers
+shocking
+shockingly
+shocks
+shod
+shoddy
+shoe
+shoed
+shoehorn
+shoeing
+shoelace
+shoemaker
+shoes
+shoestring
+shone
+shook
+shoot
+shooter
+shooters
+shooting
+shootings
+shoots
+shop
+shopkeeper
+shopkeepers
+shopped
+shopper
+shoppers
+shopping
+shops
+shopworn
+shore
+shoreline
+shores
+shorn
+short
+shortage
+shortages
+shortcoming
+shortcomings
+shortcut
+shortcuts
+shorted
+shorten
+shortened
+shortening
+shortens
+shorter
+shortest
+shortfall
+shorthand
+shorthanded
+shorting
+shortish
+shortly
+shortness
+shorts
+shortsighted
+shortstop
+shot
+shotgun
+shotguns
+shots
+should
+shoulder
+shouldered
+shouldering
+shoulders
+shout
+shouted
+shouter
+shouters
+shouting
+shouts
+shove
+shoved
+shovel
+shoveled
+shovels
+shoves
+shoving
+show
+showboat
+showcase
+showdown
+showed
+shower
+showered
+showering
+showers
+showing
+showings
+shown
+showpiece
+showroom
+shows
+showy
+shrank
+shrapnel
+shred
+shredder
+shredding
+shreds
+shrew
+shrewd
+shrewdest
+shrewdly
+shrewdness
+shrews
+shriek
+shrieked
+shrieking
+shrieks
+shrill
+shrilled
+shrilling
+shrillness
+shrilly
+shrimp
+shrine
+shrines
+shrink
+shrinkable
+shrinkage
+shrinking
+shrinks
+shrivel
+shriveled
+shroud
+shrouded
+shrub
+shrubbery
+shrubs
+shrug
+shrugs
+shrunk
+shrunken
+shudder
+shuddered
+shuddering
+shudders
+shuffle
+shuffleboard
+shuffled
+shuffles
+shuffling
+shun
+shuns
+shunt
+shut
+shutdown
+shutdowns
+shutoff
+shutout
+shuts
+shutter
+shuttered
+shutters
+shutting
+shuttle
+shuttlecock
+shuttled
+shuttles
+shuttling
+shy
+shyly
+shyness
+sibling
+siblings
+sick
+sicken
+sicker
+sickest
+sickle
+sickly
+sickness
+sicknesses
+sickroom
+side
+sidearm
+sideband
+sideboard
+sideboards
+sideburns
+sidecar
+sided
+sidelight
+sidelights
+sideline
+sidereal
+sides
+sidesaddle
+sideshow
+sidestep
+sidetrack
+sidewalk
+sidewalks
+sideways
+sidewise
+siding
+sidings
+siege
+sieges
+sierra
+sieve
+sieves
+sift
+sifted
+sifter
+sifting
+sigh
+sighed
+sighing
+sighs
+sight
+sighted
+sighting
+sightings
+sightly
+sights
+sightseeing
+sigma
+sign
+signal
+signaled
+signaling
+signalled
+signalling
+signally
+signals
+signature
+signatures
+signed
+signer
+signers
+signet
+significance
+significant
+significantly
+significants
+signification
+signified
+signifies
+signify
+signifying
+signing
+signs
+silence
+silenced
+silencer
+silencers
+silences
+silencing
+silent
+silently
+silhouette
+silhouetted
+silhouettes
+silica
+silicate
+silicon
+silicone
+silk
+silken
+silkier
+silkiest
+silkily
+silks
+silky
+sill
+silliest
+silliness
+sills
+silly
+silo
+silt
+silted
+silting
+silts
+silver
+silvered
+silvering
+silvers
+silversmith
+silverware
+silvery
+similar
+similarities
+similarity
+similarly
+simile
+similitude
+simmer
+simmered
+simmering
+simmers
+simple
+simpleminded
+simpleness
+simpler
+simplest
+simpleton
+simplex
+simplicities
+simplicity
+simplification
+simplifications
+simplified
+simplifier
+simplifiers
+simplifies
+simplify
+simplifying
+simplistic
+simply
+simulate
+simulated
+simulates
+simulating
+simulation
+simulations
+simulator
+simulators
+simulcast
+simultaneity
+simultaneous
+simultaneously
+since
+sincere
+sincerely
+sincerest
+sincerity
+sine
+sines
+sinew
+sinews
+sinewy
+sinful
+sinfully
+sinfulness
+sing
+singable
+singe
+singed
+singer
+singers
+singing
+singingly
+single
+singled
+singlehanded
+singleness
+singles
+singlet
+singleton
+singletons
+singling
+singly
+sings
+singsong
+singular
+singularities
+singularity
+singularly
+sinister
+sink
+sinked
+sinker
+sinkers
+sinkhole
+sinking
+sinks
+sinned
+sinner
+sinners
+sinning
+sins
+sinuous
+sinus
+sinusoid
+sinusoidal
+sinusoids
+sip
+siphon
+siphoning
+sipping
+sips
+sir
+sire
+sired
+siren
+sirens
+sires
+sirs
+sirup
+sister
+sisterly
+sisters
+sit
+site
+sited
+sites
+siting
+sits
+sitter
+sitters
+sitting
+sittings
+situ
+situate
+situated
+situates
+situating
+situation
+situational
+situationally
+situations
+six
+sixes
+sixfold
+sixgun
+sixpence
+sixteen
+sixteens
+sixteenth
+sixth
+sixties
+sixtieth
+sixty
+sizable
+size
+sized
+sizes
+sizing
+sizings
+sizzle
+skate
+skated
+skater
+skaters
+skates
+skating
+skeletal
+skeleton
+skeletons
+skeptic
+skeptical
+skeptically
+skepticism
+skeptics
+sketch
+sketchbook
+sketched
+sketches
+sketchily
+sketching
+sketchpad
+sketchy
+skew
+skewed
+skewer
+skewers
+skewing
+skews
+ski
+skid
+skidding
+skied
+skies
+skiff
+skiing
+skill
+skilled
+skillet
+skillful
+skillfully
+skillfulness
+skills
+skim
+skimmed
+skimming
+skimp
+skimped
+skimping
+skimps
+skimpy
+skims
+skin
+skindive
+skinned
+skinner
+skinners
+skinning
+skinny
+skins
+skip
+skipped
+skipper
+skippers
+skipping
+skips
+skirmish
+skirmished
+skirmisher
+skirmishers
+skirmishes
+skirmishing
+skirt
+skirted
+skirting
+skirts
+skis
+skit
+skulk
+skulked
+skulker
+skulking
+skulks
+skull
+skullcap
+skullduggery
+skulls
+skunk
+skunks
+sky
+skyhook
+skyjack
+skylark
+skylarking
+skylarks
+skylight
+skylights
+skyline
+skyrockets
+skyscraper
+skyscrapers
+slab
+slack
+slacken
+slacker
+slacking
+slackly
+slackness
+slacks
+slain
+slam
+slammed
+slamming
+slams
+slander
+slanderer
+slanderous
+slanders
+slang
+slant
+slanted
+slanting
+slants
+slap
+slapped
+slapping
+slaps
+slapstick
+slash
+slashed
+slashes
+slashing
+slat
+slate
+slated
+slater
+slates
+slats
+slaughter
+slaughtered
+slaughterhouse
+slaughtering
+slaughters
+slave
+slaver
+slavery
+slaves
+slavish
+slay
+slayer
+slayers
+slaying
+slays
+sled
+sledding
+sledge
+sledgehammer
+sledges
+sleds
+sleek
+sleep
+sleeper
+sleepers
+sleepily
+sleepiness
+sleeping
+sleepless
+sleeplessly
+sleeplessness
+sleeps
+sleepwalk
+sleepy
+sleet
+sleeve
+sleeves
+sleigh
+sleighs
+sleight
+slender
+slenderer
+slept
+sleuth
+slew
+slewing
+slice
+sliced
+slicer
+slicers
+slices
+slicing
+slick
+slicker
+slickers
+slicks
+slid
+slide
+slider
+sliders
+slides
+sliding
+slight
+slighted
+slighter
+slightest
+slighting
+slightly
+slightness
+slights
+slim
+slime
+slimed
+slimly
+slimy
+sling
+slinging
+slings
+slingshot
+slip
+slippage
+slipped
+slipper
+slipperiness
+slippers
+slippery
+slipping
+slips
+slit
+slither
+slits
+sliver
+slob
+slogan
+slogans
+sloop
+slop
+slope
+sloped
+sloper
+slopers
+slopes
+sloping
+slopped
+sloppiness
+slopping
+sloppy
+slops
+slot
+sloth
+slothful
+sloths
+slots
+slotted
+slotting
+slouch
+slouched
+slouches
+slouching
+slow
+slowdown
+slowed
+slower
+slowest
+slowing
+slowly
+slowness
+slows
+sludge
+slug
+sluggish
+sluggishly
+sluggishness
+slugs
+sluice
+slum
+slumber
+slumbered
+slumming
+slump
+slumped
+slumps
+slums
+slung
+slur
+slurp
+slurring
+slurry
+slurs
+sly
+slyly
+smack
+smacked
+smacking
+smacks
+small
+smaller
+smallest
+smallish
+smallness
+smallpox
+smalltime
+smart
+smarted
+smarter
+smartest
+smartly
+smartness
+smash
+smashed
+smasher
+smashers
+smashes
+smashing
+smashingly
+smattering
+smear
+smeared
+smearing
+smears
+smell
+smelled
+smelling
+smells
+smelly
+smelt
+smelter
+smelts
+smile
+smiled
+smiles
+smiling
+smilingly
+smirk
+smite
+smith
+smithereens
+smiths
+smithy
+smitten
+smock
+smocking
+smocks
+smog
+smokable
+smoke
+smoked
+smoker
+smokers
+smokes
+smokescreen
+smokestack
+smokies
+smoking
+smoky
+smolder
+smoldered
+smoldering
+smolders
+smooch
+smooth
+smoothbore
+smoothed
+smoother
+smoothes
+smoothest
+smoothing
+smoothly
+smoothness
+smote
+smother
+smothered
+smothering
+smothers
+smudge
+smug
+smuggle
+smuggled
+smuggler
+smugglers
+smuggles
+smuggling
+smut
+smutty
+snack
+snafu
+snag
+snail
+snails
+snake
+snaked
+snakelike
+snakes
+snap
+snapdragon
+snapped
+snapper
+snappers
+snappily
+snapping
+snappy
+snaps
+snapshot
+snapshots
+snare
+snared
+snares
+snaring
+snark
+snarl
+snarled
+snarling
+snatch
+snatched
+snatches
+snatching
+snazzy
+sneak
+sneaked
+sneaker
+sneakers
+sneakier
+sneakiest
+sneakily
+sneakiness
+sneaking
+sneaks
+sneaky
+sneer
+sneered
+sneering
+sneers
+sneeze
+sneezed
+sneezes
+sneezing
+sniff
+sniffed
+sniffing
+sniffle
+sniffs
+snifter
+snigger
+snip
+snipe
+snippet
+snivel
+snob
+snobbery
+snobbish
+snoop
+snooped
+snooping
+snoops
+snoopy
+snore
+snored
+snores
+snoring
+snorkel
+snort
+snorted
+snorting
+snorts
+snotty
+snout
+snouts
+snow
+snowball
+snowed
+snowfall
+snowflake
+snowier
+snowiest
+snowily
+snowing
+snowman
+snowmen
+snows
+snowshoe
+snowshoes
+snowstorm
+snowy
+snub
+snuff
+snuffed
+snuffer
+snuffing
+snuffs
+snug
+snuggle
+snuggled
+snuggles
+snuggling
+snugly
+snugness
+so
+soak
+soaked
+soaking
+soaks
+soap
+soaped
+soaping
+soaps
+soapy
+soar
+soared
+soaring
+soars
+sob
+sobbing
+sober
+sobered
+sobering
+soberly
+soberness
+sobers
+sobriety
+sobs
+soccer
+sociability
+sociable
+sociably
+social
+socialism
+socialist
+socialists
+socialize
+socialized
+socializes
+socializing
+socially
+societal
+societies
+society
+socioeconomic
+sociological
+sociologically
+sociologist
+sociologists
+sociology
+sock
+socked
+socket
+sockets
+socking
+socks
+sod
+soda
+sodium
+sodomy
+sods
+sofa
+sofas
+soft
+softball
+soften
+softened
+softening
+softens
+softer
+softest
+softly
+softness
+software
+softwares
+soggy
+soil
+soiled
+soiling
+soils
+soiree
+sojourn
+sojourner
+sojourners
+solace
+solaced
+solar
+sold
+solder
+soldered
+soldier
+soldiering
+soldierly
+soldiers
+sole
+solely
+solemn
+solemnity
+solemnly
+solemnness
+solenoid
+soles
+solicit
+solicitation
+solicited
+soliciting
+solicitor
+solicitous
+solicits
+solicitude
+solid
+solidarity
+solidification
+solidified
+solidifies
+solidify
+solidifying
+solidity
+solidly
+solidness
+solids
+soliloquy
+solitaire
+solitary
+solitude
+solitudes
+solo
+solos
+solstice
+solubility
+soluble
+solution
+solutions
+solvable
+solve
+solved
+solvent
+solvents
+solver
+solvers
+solves
+solving
+somatic
+somber
+somberly
+some
+somebody
+someday
+somehow
+someone
+someplace
+somersault
+something
+sometime
+sometimes
+somewhat
+somewhere
+sommelier
+somnolent
+son
+sonar
+sonata
+song
+songbook
+songs
+sonic
+sonnet
+sonnets
+sonny
+sons
+soon
+sooner
+soonest
+soot
+sooth
+soothe
+soothed
+soother
+soothes
+soothing
+soothsayer
+sophisticated
+sophistication
+sophistry
+sophomore
+sophomores
+soprano
+sorcerer
+sorcerers
+sorcery
+sordid
+sordidly
+sordidness
+sore
+sorely
+soreness
+sorer
+sores
+sorest
+sorghum
+sorority
+sorrel
+sorrier
+sorriest
+sorrow
+sorrowful
+sorrowfully
+sorrows
+sorry
+sort
+sorted
+sorter
+sorters
+sortie
+sorting
+sorts
+sought
+soul
+soulful
+souls
+sound
+sounded
+sounder
+soundest
+sounding
+soundings
+soundly
+soundness
+soundproof
+sounds
+soup
+souped
+soups
+sour
+source
+sources
+sourdough
+soured
+sourer
+sourest
+souring
+sourly
+sourness
+sours
+south
+southbound
+southeast
+southeastern
+southern
+southerner
+southerners
+southernmost
+southland
+southpaw
+southward
+southwest
+southwestern
+souvenir
+sovereign
+sovereigns
+sovereignty
+soviet
+soviets
+sow
+sown
+soy
+soya
+soybean
+spa
+space
+spacecraft
+spaced
+spacer
+spacers
+spaces
+spaceship
+spaceships
+spacesuit
+spacing
+spacings
+spacious
+spaded
+spades
+spading
+span
+spandrel
+spaniel
+spank
+spanked
+spanking
+spanks
+spanned
+spanner
+spanners
+spanning
+spans
+spare
+spared
+sparely
+spareness
+sparer
+spares
+sparest
+sparing
+sparingly
+spark
+sparked
+sparking
+sparkle
+sparkling
+sparks
+sparring
+sparrow
+sparrows
+sparse
+sparsely
+sparseness
+sparser
+sparsest
+spasm
+spastic
+spat
+spate
+spates
+spatial
+spatially
+spatter
+spattered
+spatula
+spawn
+spawned
+spawning
+spawns
+spayed
+speak
+speakable
+speakeasy
+speaker
+speakers
+speaking
+speaks
+spear
+speared
+spearmint
+spears
+spec
+special
+specialist
+specialists
+specialization
+specializations
+specialize
+specialized
+specializes
+specializing
+specially
+specials
+specialties
+specialty
+specie
+species
+specifiable
+specific
+specifically
+specification
+specifications
+specificity
+specifics
+specified
+specifier
+specifiers
+specifies
+specify
+specifying
+specimen
+specimens
+specious
+speck
+speckle
+speckled
+speckles
+specks
+spectacle
+spectacled
+spectacles
+spectacular
+spectacularly
+spectator
+spectators
+specter
+specters
+spectra
+spectral
+spectrogram
+spectrograms
+spectrograph
+spectrographic
+spectrography
+spectrometer
+spectrophotometer
+spectrophotometry
+spectroscope
+spectroscopic
+spectroscopy
+spectrum
+speculate
+speculated
+speculates
+speculating
+speculation
+speculations
+speculative
+speculator
+speculators
+sped
+speech
+speeches
+speechless
+speechlessness
+speed
+speedboat
+speeded
+speeder
+speeders
+speedily
+speeding
+speedometer
+speeds
+speedup
+speedups
+speedy
+spell
+spellbound
+spelled
+speller
+spellers
+spelling
+spellings
+spells
+spend
+spender
+spenders
+spending
+spends
+spent
+sperm
+sphere
+spheres
+spherical
+spherically
+spheroid
+spheroidal
+sphinx
+spice
+spiced
+spices
+spiciness
+spicy
+spider
+spiders
+spidery
+spies
+spigot
+spike
+spiked
+spikes
+spill
+spilled
+spiller
+spilling
+spills
+spilt
+spin
+spinach
+spinal
+spinally
+spindle
+spindled
+spindling
+spine
+spinnaker
+spinner
+spinners
+spinning
+spinoff
+spins
+spinster
+spiny
+spiral
+spiraled
+spiraling
+spirally
+spire
+spires
+spirit
+spirited
+spiritedly
+spiriting
+spirits
+spiritual
+spiritually
+spirituals
+spit
+spite
+spited
+spiteful
+spitefully
+spitefulness
+spites
+spitfire
+spiting
+spits
+spitting
+spittle
+splash
+splashed
+splashes
+splashing
+splashy
+spleen
+splendid
+splendidly
+splendor
+splenetic
+splice
+spliced
+splicer
+splicers
+splices
+splicing
+splicings
+spline
+splines
+splint
+splinter
+splintered
+splinters
+splintery
+split
+splits
+splitter
+splitters
+splitting
+splurge
+spoil
+spoilage
+spoiled
+spoiler
+spoilers
+spoiling
+spoils
+spoke
+spoked
+spoken
+spokes
+spokesman
+spokesmen
+sponge
+sponged
+sponger
+spongers
+sponges
+sponging
+spongy
+sponsor
+sponsored
+sponsoring
+sponsors
+sponsorship
+spontaneity
+spontaneous
+spontaneously
+spoof
+spook
+spooky
+spool
+spooled
+spooler
+spoolers
+spooling
+spools
+spoon
+spooned
+spoonful
+spooning
+spoons
+sporadic
+spore
+spores
+sport
+sported
+sporting
+sportingly
+sportive
+sports
+sportsman
+sportsmen
+sportswear
+sportswriter
+sportswriting
+sporty
+spot
+spotless
+spotlessly
+spotlight
+spots
+spotted
+spotter
+spotters
+spotting
+spotty
+spouse
+spouses
+spout
+spouted
+spouting
+spouts
+sprain
+sprang
+sprawl
+sprawled
+sprawling
+sprawls
+spray
+sprayed
+sprayer
+spraying
+sprays
+spread
+spreader
+spreaders
+spreading
+spreadings
+spreads
+spreadsheet
+spree
+sprees
+sprig
+sprightly
+spring
+springboard
+springer
+springers
+springier
+springiest
+springiness
+springing
+springs
+springtime
+springy
+sprinkle
+sprinkled
+sprinkler
+sprinkles
+sprinkling
+sprint
+sprinted
+sprinter
+sprinters
+sprinting
+sprints
+sprite
+sprocket
+sprout
+sprouted
+sprouting
+spruce
+spruced
+sprung
+spun
+spunk
+spur
+spurious
+spurn
+spurned
+spurning
+spurns
+spurs
+spurt
+spurted
+spurting
+spurts
+sputter
+sputtered
+spy
+spyglass
+spying
+squabble
+squabbled
+squabbles
+squabbling
+squad
+squadron
+squadrons
+squads
+squalid
+squall
+squalls
+squander
+square
+squared
+squarely
+squareness
+squarer
+squares
+squarest
+squaring
+squash
+squashed
+squashing
+squat
+squats
+squatting
+squaw
+squawk
+squawked
+squawking
+squawks
+squeak
+squeaked
+squeaking
+squeaks
+squeaky
+squeal
+squealed
+squealing
+squeals
+squeamish
+squeeze
+squeezed
+squeezer
+squeezes
+squeezing
+squelch
+squid
+squint
+squinted
+squinting
+squire
+squires
+squirm
+squirmed
+squirms
+squirmy
+squirrel
+squirreled
+squirreling
+squirrels
+squirt
+squishy
+stab
+stabbed
+stabbing
+stabile
+stabilities
+stability
+stabilize
+stabilized
+stabilizer
+stabilizers
+stabilizes
+stabilizing
+stable
+stabled
+stabler
+stables
+stabling
+stably
+stabs
+stack
+stacked
+stacking
+stacks
+stadia
+stadium
+staff
+staffed
+staffer
+staffers
+staffing
+staffs
+stag
+stage
+stagecoach
+stagecoaches
+staged
+stager
+stagers
+stages
+stagger
+staggered
+staggering
+staggers
+staging
+stagnant
+stagnate
+stagnation
+stags
+staid
+stain
+stained
+staining
+stainless
+stains
+stair
+staircase
+staircases
+stairs
+stairway
+stairways
+stairwell
+stake
+staked
+stakes
+stalactite
+stale
+stalemate
+stalk
+stalked
+stalking
+stall
+stalled
+stalling
+stallings
+stallion
+stalls
+stalwart
+stalwartly
+stamen
+stamens
+stamina
+stammer
+stammered
+stammerer
+stammering
+stammers
+stamp
+stamped
+stampede
+stampeded
+stampedes
+stampeding
+stamper
+stampers
+stamping
+stamps
+stanch
+stanchest
+stanchion
+stand
+standard
+standardization
+standardize
+standardized
+standardizes
+standardizing
+standardly
+standards
+standby
+standing
+standings
+standoff
+standpoint
+standpoints
+stands
+standstill
+stanza
+stanzas
+staphylococcus
+staple
+stapler
+staples
+stapling
+star
+starboard
+starch
+starched
+stardom
+stare
+stared
+starer
+stares
+starfish
+staring
+stark
+starkly
+starlet
+starlight
+starling
+starred
+starring
+starry
+stars
+start
+started
+starter
+starters
+starting
+startle
+startled
+startles
+startling
+starts
+startup
+startups
+starvation
+starve
+starved
+starves
+starving
+state
+stated
+stately
+statement
+statements
+states
+statesman
+statesmanlike
+statesmen
+statewide
+static
+statically
+stating
+station
+stationary
+stationed
+stationer
+stationery
+stationing
+stationmaster
+stations
+statistic
+statistical
+statistically
+statistician
+statisticians
+statistics
+statue
+statues
+statuesque
+statuesquely
+statuesqueness
+statuette
+stature
+status
+statuses
+statute
+statutes
+statutorily
+statutoriness
+statutory
+staunch
+staunchest
+staunchly
+stave
+staved
+staves
+stay
+stayed
+staying
+stays
+stead
+steadfast
+steadfastly
+steadfastness
+steadied
+steadier
+steadies
+steadiest
+steadily
+steadiness
+steady
+steadying
+steak
+steaks
+steal
+stealer
+stealing
+steals
+stealth
+stealthily
+stealthy
+steam
+steamboat
+steamboats
+steamed
+steamer
+steamers
+steaming
+steams
+steamship
+steamships
+steamy
+steed
+steel
+steeled
+steelers
+steeling
+steelmaker
+steels
+steely
+steep
+steeped
+steeper
+steepest
+steeping
+steeple
+steeples
+steeply
+steepness
+steeps
+steer
+steerable
+steered
+steering
+steers
+stellar
+stem
+stemmed
+stemming
+stems
+stench
+stenches
+stencil
+stencils
+stenographer
+stenographers
+stenotype
+step
+stepchild
+stepmother
+stepmothers
+stepped
+stepper
+stepping
+steps
+stepson
+stepwise
+stereo
+stereos
+stereoscopic
+stereotype
+stereotyped
+stereotypes
+stereotypical
+sterile
+sterilization
+sterilizations
+sterilize
+sterilized
+sterilizer
+sterilizes
+sterilizing
+sterling
+stern
+sternly
+sternness
+sterns
+stethoscope
+stevedore
+stew
+steward
+stewardess
+stewards
+stewed
+stews
+stick
+sticker
+stickers
+stickier
+stickiest
+stickily
+stickiness
+sticking
+stickleback
+sticks
+sticky
+stiff
+stiffen
+stiffens
+stiffer
+stiffest
+stiffly
+stiffness
+stiffs
+stifle
+stifled
+stifles
+stifling
+stigma
+stigmata
+stile
+stiles
+stiletto
+still
+stillbirth
+stillborn
+stilled
+stiller
+stillest
+stilling
+stillness
+stills
+stilt
+stilts
+stimulant
+stimulants
+stimulate
+stimulated
+stimulates
+stimulating
+stimulation
+stimulations
+stimulative
+stimuli
+stimulus
+sting
+stinging
+stings
+stingy
+stink
+stinker
+stinkers
+stinking
+stinks
+stint
+stipend
+stipends
+stipulate
+stipulated
+stipulates
+stipulating
+stipulation
+stipulations
+stir
+stirred
+stirrer
+stirrers
+stirring
+stirringly
+stirrings
+stirrup
+stirs
+stitch
+stitched
+stitches
+stitching
+stochastic
+stochastically
+stock
+stockade
+stockades
+stockbroker
+stocked
+stocker
+stockers
+stockholder
+stockholders
+stocking
+stockings
+stockpile
+stockroom
+stocks
+stocky
+stodgy
+stoichiometry
+stoke
+stole
+stolen
+stoles
+stolid
+stomach
+stomached
+stomacher
+stomaches
+stomaching
+stomp
+stoned
+stones
+stoning
+stony
+stood
+stooge
+stool
+stoop
+stooped
+stooping
+stoops
+stop
+stopcock
+stopcocks
+stopgap
+stopover
+stoppable
+stoppage
+stopped
+stopper
+stoppers
+stopping
+stops
+stopwatch
+storage
+storages
+store
+stored
+storehouse
+storehouses
+storekeeper
+storeroom
+stores
+storied
+stories
+storing
+stork
+storks
+storm
+stormed
+stormier
+stormiest
+storminess
+storming
+storms
+stormy
+story
+storyboard
+storyteller
+stout
+stouter
+stoutest
+stoutly
+stoutness
+stove
+stoves
+stow
+stowed
+straddle
+strafe
+straggle
+straggled
+straggler
+stragglers
+straggles
+straggling
+straight
+straightaway
+straighten
+straightened
+straightens
+straighter
+straightest
+straightforward
+straightforwardly
+straightforwardness
+straightness
+straightway
+strain
+strained
+strainer
+strainers
+straining
+strains
+strait
+straiten
+straits
+strand
+stranded
+stranding
+strands
+strange
+strangely
+strangeness
+stranger
+strangers
+strangest
+strangle
+strangled
+strangler
+stranglers
+strangles
+strangling
+stranglings
+strangulation
+strangulations
+strap
+straps
+stratagem
+stratagems
+strategic
+strategies
+strategist
+strategy
+stratification
+stratifications
+stratified
+stratifies
+stratify
+stratosphere
+stratospheric
+stratum
+straw
+strawberries
+strawberry
+straws
+stray
+strayed
+strays
+streak
+streaked
+streaks
+stream
+streamed
+streamer
+streamers
+streaming
+streamline
+streamlined
+streamliner
+streamlines
+streamlining
+streams
+street
+streetcar
+streetcars
+streeters
+streets
+strength
+strengthen
+strengthened
+strengthener
+strengthening
+strengthens
+strengths
+strenuous
+strenuously
+streptococcus
+stress
+stressed
+stresses
+stressful
+stressing
+stretch
+stretched
+stretcher
+stretchers
+stretches
+stretching
+strew
+strewn
+strews
+stricken
+strict
+stricter
+strictest
+strictly
+strictness
+stricture
+stride
+strider
+strides
+striding
+strife
+strike
+strikebreaker
+striker
+strikers
+strikes
+striking
+strikingly
+string
+stringed
+stringent
+stringently
+stringer
+stringers
+stringier
+stringiest
+stringiness
+stringing
+strings
+stringy
+strip
+stripe
+striped
+stripes
+stripped
+stripper
+strippers
+stripping
+strips
+striptease
+strive
+striven
+strives
+striving
+strivings
+strobe
+strobed
+strobes
+stroboscopic
+strode
+stroke
+stroked
+stroker
+strokers
+strokes
+stroking
+stroll
+strolled
+stroller
+strolling
+strolls
+strong
+stronger
+strongest
+stronghold
+strongly
+strontium
+strove
+struck
+structural
+structurally
+structure
+structured
+structurer
+structures
+structuring
+struggle
+struggled
+struggles
+struggling
+strung
+strut
+struts
+strutting
+strychnine
+stub
+stubble
+stubborn
+stubbornly
+stubbornness
+stubby
+stubs
+stucco
+stuck
+stud
+student
+students
+studied
+studies
+studio
+studios
+studious
+studiously
+studs
+study
+studying
+stuff
+stuffed
+stuffier
+stuffiest
+stuffing
+stuffs
+stuffy
+stumble
+stumbled
+stumbles
+stumbling
+stump
+stumped
+stumping
+stumps
+stun
+stung
+stunning
+stunningly
+stunt
+stunts
+stupefy
+stupefying
+stupendous
+stupendously
+stupid
+stupidest
+stupidities
+stupidity
+stupidly
+stupor
+sturdiness
+sturdy
+sturgeon
+stutter
+style
+styled
+styler
+stylers
+styles
+styli
+styling
+stylish
+stylishly
+stylishness
+stylistic
+stylistically
+stylized
+stylus
+suave
+sub
+subatomic
+subchannel
+subchannels
+subclass
+subclasses
+subcommittees
+subcomponent
+subcomponents
+subcomputation
+subcomputations
+subconscious
+subconsciously
+subculture
+subcultures
+subcycle
+subcycles
+subdirectories
+subdirectory
+subdivide
+subdivided
+subdivides
+subdividing
+subdivision
+subdivisions
+subdomains
+subdue
+subdued
+subdues
+subduing
+subexpression
+subexpressions
+subfield
+subfields
+subfile
+subfiles
+subgoal
+subgoals
+subgraph
+subgraphs
+subgroup
+subgroups
+subinterval
+subintervals
+subject
+subjected
+subjecting
+subjection
+subjective
+subjectively
+subjectivity
+subjects
+sublanguage
+sublanguages
+sublayer
+sublayers
+sublimation
+sublimations
+sublime
+sublimed
+sublist
+sublists
+submarine
+submariner
+submariners
+submarines
+submerge
+submerged
+submerges
+submerging
+submission
+submissions
+submissive
+submit
+submits
+submittal
+submitted
+submitting
+submode
+submodes
+submodule
+submodules
+submultiplexed
+subnet
+subnets
+subnetwork
+subnetworks
+suboptimal
+subordinate
+subordinated
+subordinates
+subordination
+subparts
+subphases
+subpoena
+subproblem
+subproblems
+subprocesses
+subprogram
+subprograms
+subproject
+subproof
+subproofs
+subrange
+subranges
+subroutine
+subroutines
+subs
+subschema
+subschemas
+subscribe
+subscribed
+subscriber
+subscribers
+subscribes
+subscribing
+subscript
+subscripted
+subscripting
+subscription
+subscriptions
+subscripts
+subsection
+subsections
+subsegment
+subsegments
+subsequence
+subsequences
+subsequent
+subsequently
+subservient
+subset
+subsets
+subside
+subsided
+subsides
+subsidiaries
+subsidiary
+subsidies
+subsiding
+subsidize
+subsidized
+subsidizes
+subsidizing
+subsidy
+subsist
+subsisted
+subsistence
+subsistent
+subsisting
+subsists
+subslot
+subslots
+subspace
+subspaces
+substance
+substances
+substantial
+substantially
+substantiate
+substantiated
+substantiates
+substantiating
+substantiation
+substantiations
+substantive
+substantively
+substantivity
+substation
+substations
+substitutability
+substitutable
+substitute
+substituted
+substitutes
+substituting
+substitution
+substitutions
+substrate
+substrates
+substring
+substrings
+substructure
+substructures
+subsume
+subsumed
+subsumes
+subsuming
+subsystem
+subsystems
+subtask
+subtasks
+subterfuge
+subterranean
+subtitle
+subtitled
+subtitles
+subtle
+subtleness
+subtler
+subtlest
+subtleties
+subtlety
+subtly
+subtotal
+subtract
+subtracted
+subtracting
+subtraction
+subtractions
+subtractor
+subtractors
+subtracts
+subtrahend
+subtrahends
+subtree
+subtrees
+subunit
+subunits
+suburb
+suburban
+suburbia
+suburbs
+subversion
+subversive
+subvert
+subverted
+subverter
+subverting
+subverts
+subway
+subways
+succeed
+succeeded
+succeeding
+succeeds
+success
+successes
+successful
+successfully
+succession
+successions
+successive
+successively
+successor
+successors
+succinct
+succinctly
+succinctness
+succor
+succumb
+succumbed
+succumbing
+succumbs
+such
+suck
+sucked
+sucker
+suckers
+sucking
+suckle
+suckling
+sucks
+suction
+sudden
+suddenly
+suddenness
+suds
+sudsing
+sue
+sued
+sues
+suffer
+sufferance
+suffered
+sufferer
+sufferers
+suffering
+sufferings
+suffers
+suffice
+sufficed
+suffices
+sufficiency
+sufficient
+sufficiently
+sufficing
+suffix
+suffixed
+suffixer
+suffixes
+suffixing
+suffocate
+suffocated
+suffocates
+suffocating
+suffocation
+suffrage
+suffragette
+sugar
+sugared
+sugaring
+sugarings
+sugars
+suggest
+suggested
+suggestible
+suggesting
+suggestion
+suggestions
+suggestive
+suggestively
+suggests
+suicidal
+suicidally
+suicide
+suicides
+suing
+suit
+suitability
+suitable
+suitableness
+suitably
+suitcase
+suitcases
+suite
+suited
+suiters
+suites
+suiting
+suitor
+suitors
+suits
+sulfa
+sulfur
+sulfuric
+sulfurous
+sulk
+sulked
+sulkiness
+sulking
+sulks
+sulky
+sullen
+sullenly
+sullenness
+sulphate
+sulphur
+sulphured
+sulphuric
+sultan
+sultans
+sultry
+sum
+sumac
+summand
+summands
+summaries
+summarily
+summarization
+summarizations
+summarize
+summarized
+summarizes
+summarizing
+summary
+summation
+summations
+summed
+summertime
+summing
+summit
+summitry
+summon
+summoned
+summoner
+summoners
+summoning
+summons
+summonses
+sumptuous
+sums
+sun
+sunbeam
+sunbeams
+sunbonnet
+sunburn
+sunburnt
+sunder
+sundial
+sundown
+sundries
+sundry
+sunflower
+sung
+sunglass
+sunglasses
+sunk
+sunken
+sunlight
+sunlit
+sunned
+sunning
+sunny
+sunrise
+suns
+sunset
+sunshine
+sunspot
+suntan
+suntanned
+suntanning
+super
+superb
+superblock
+superbly
+supercomputer
+supercomputers
+superego
+superegos
+superficial
+superficially
+superfluities
+superfluity
+superfluous
+superfluously
+supergroup
+supergroups
+superhuman
+superhumanly
+superimpose
+superimposed
+superimposes
+superimposing
+superintend
+superintendent
+superintendents
+superior
+superiority
+superiors
+superlative
+superlatively
+superlatives
+supermarket
+supermarkets
+supermini
+superminis
+supernatural
+superpose
+superposed
+superposes
+superposing
+superposition
+superscript
+superscripted
+superscripting
+superscripts
+supersede
+superseded
+supersedes
+superseding
+superset
+supersets
+superstition
+superstitions
+superstitious
+superuser
+supervise
+supervised
+supervises
+supervising
+supervision
+supervisor
+supervisors
+supervisory
+supine
+supper
+suppers
+supplant
+supplanted
+supplanting
+supplants
+supple
+supplement
+supplemental
+supplementary
+supplemented
+supplementing
+supplements
+suppleness
+supplication
+supplied
+supplier
+suppliers
+supplies
+supply
+supplying
+support
+supportable
+supported
+supporter
+supporters
+supporting
+supportingly
+supportive
+supportively
+supports
+suppose
+supposed
+supposedly
+supposes
+supposing
+supposition
+suppositions
+suppress
+suppressed
+suppresses
+suppressing
+suppression
+suppressor
+suppressors
+supranational
+supremacy
+supreme
+supremely
+surcharge
+sure
+surely
+sureness
+sureties
+surety
+surf
+surface
+surfaced
+surfaceness
+surfaces
+surfacing
+surge
+surged
+surgeon
+surgeons
+surgery
+surges
+surgical
+surgically
+surging
+surliness
+surly
+surmise
+surmised
+surmises
+surmount
+surmounted
+surmounting
+surmounts
+surname
+surnames
+surpass
+surpassed
+surpasses
+surpassing
+surplus
+surpluses
+surprise
+surprised
+surprises
+surprising
+surprisingly
+surreal
+surrender
+surrendered
+surrendering
+surrenders
+surreptitious
+surrey
+surrogate
+surrogates
+surround
+surrounded
+surrounding
+surroundings
+surrounds
+surtax
+survey
+surveyed
+surveying
+surveyor
+surveyors
+surveys
+survival
+survivals
+survive
+survived
+survives
+surviving
+survivor
+survivors
+susceptible
+suspect
+suspected
+suspecting
+suspects
+suspend
+suspended
+suspender
+suspenders
+suspending
+suspends
+suspense
+suspenses
+suspension
+suspensions
+suspicion
+suspicions
+suspicious
+suspiciously
+sustain
+sustained
+sustaining
+sustains
+sustenance
+suture
+sutures
+suzerainty
+svelte
+swab
+swabbing
+swagger
+swaggered
+swaggering
+swain
+swains
+swallow
+swallowed
+swallowing
+swallows
+swallowtail
+swam
+swami
+swamp
+swamped
+swamping
+swamps
+swampy
+swan
+swank
+swanky
+swanlike
+swans
+swap
+swapped
+swapping
+swaps
+swarm
+swarmed
+swarming
+swarms
+swarthy
+swastika
+swat
+swatted
+sway
+swayed
+swaying
+swear
+swearer
+swearing
+swears
+sweat
+sweated
+sweater
+sweaters
+sweating
+sweats
+sweatshirt
+sweaty
+sweep
+sweeper
+sweepers
+sweeping
+sweepings
+sweeps
+sweepstakes
+sweet
+sweeten
+sweetened
+sweetener
+sweeteners
+sweetening
+sweetenings
+sweetens
+sweeter
+sweetest
+sweetheart
+sweethearts
+sweetish
+sweetly
+sweetness
+sweets
+swell
+swelled
+swelling
+swellings
+swells
+swelter
+swept
+swerve
+swerved
+swerves
+swerving
+swift
+swifter
+swiftest
+swiftly
+swiftness
+swim
+swimmer
+swimmers
+swimming
+swimmingly
+swims
+swimsuit
+swindle
+swine
+swing
+swinger
+swingers
+swinging
+swings
+swipe
+swirl
+swirled
+swirling
+swish
+swished
+swiss
+switch
+switchblade
+switchboard
+switchboards
+switched
+switcher
+switchers
+switches
+switching
+switchings
+switchman
+swivel
+swizzle
+swollen
+swoon
+swoop
+swooped
+swooping
+swoops
+sword
+swordfish
+swords
+swore
+sworn
+swum
+swung
+sycamore
+sycophant
+sycophantic
+syllable
+syllables
+syllogism
+syllogisms
+syllogistic
+sylvan
+symbiosis
+symbiotic
+symbol
+symbolic
+symbolically
+symbolics
+symbolism
+symbolization
+symbolize
+symbolized
+symbolizes
+symbolizing
+symbols
+symmetric
+symmetrical
+symmetrically
+symmetries
+symmetry
+sympathetic
+sympathies
+sympathize
+sympathized
+sympathizer
+sympathizers
+sympathizes
+sympathizing
+sympathizingly
+sympathy
+symphonic
+symphonies
+symphony
+symposia
+symposium
+symposiums
+symptom
+symptomatic
+symptoms
+synagogue
+synapse
+synapses
+synaptic
+synchronism
+synchronization
+synchronize
+synchronized
+synchronizer
+synchronizers
+synchronizes
+synchronizing
+synchronous
+synchronously
+synchrony
+synchrotron
+syncopate
+syndicate
+syndicated
+syndicates
+syndication
+syndrome
+syndromes
+synergism
+synergistic
+synergy
+synod
+synonym
+synonymous
+synonymously
+synonyms
+synopses
+synopsis
+syntactic
+syntactical
+syntactically
+syntax
+syntaxes
+synthesis
+synthesize
+synthesized
+synthesizer
+synthesizers
+synthesizes
+synthesizing
+synthetic
+synthetics
+syringe
+syringes
+syrup
+syrupy
+system
+systematic
+systematically
+systematize
+systematized
+systematizes
+systematizing
+systemic
+systems
+systemwide
+tab
+tabernacle
+tabernacles
+table
+tableau
+tableaus
+tablecloth
+tablecloths
+tabled
+tables
+tablespoon
+tablespoonful
+tablespoonfuls
+tablespoons
+tablet
+tablets
+tabling
+taboo
+taboos
+tabs
+tabular
+tabulate
+tabulated
+tabulates
+tabulating
+tabulation
+tabulations
+tabulator
+tabulators
+tachometer
+tachometers
+tacit
+tacitly
+tack
+tacked
+tacking
+tackle
+tackles
+tact
+tactic
+tactics
+tactile
+tag
+tagged
+tagging
+tags
+tail
+tailed
+tailing
+tailor
+tailored
+tailoring
+tailors
+tails
+taint
+tainted
+take
+taken
+taker
+takers
+takes
+taking
+takings
+tale
+talent
+talented
+talents
+tales
+talk
+talkative
+talkatively
+talkativeness
+talked
+talker
+talkers
+talkie
+talking
+talks
+tall
+taller
+tallest
+tallness
+tallow
+tally
+tame
+tamed
+tamely
+tameness
+tamer
+tames
+taming
+tamper
+tampered
+tampering
+tampers
+tan
+tandem
+tang
+tangent
+tangential
+tangents
+tangible
+tangibly
+tangle
+tangled
+tangy
+tank
+tanker
+tankers
+tanks
+tanner
+tanners
+tantalizing
+tantalizingly
+tantamount
+tantrum
+tantrums
+tap
+tape
+taped
+taper
+tapered
+tapering
+tapers
+tapes
+tapestries
+tapestry
+taping
+tapings
+tapped
+tapper
+tappers
+tapping
+taproot
+taproots
+taps
+tar
+tardiness
+tardy
+target
+targeted
+targeting
+targets
+tariff
+tariffs
+tarry
+tart
+tartly
+tartness
+task
+tasked
+tasking
+tasks
+tassel
+tassels
+taste
+tasted
+tasteful
+tastefully
+tastefulness
+tasteless
+tastelessly
+taster
+tasters
+tastes
+tasting
+tatter
+tattered
+tattoo
+tattooed
+tattoos
+tau
+taught
+taunt
+taunted
+taunter
+taunting
+taunts
+taut
+tautly
+tautness
+tautological
+tautologically
+tautologies
+tautology
+tavern
+taverns
+tawny
+tax
+taxable
+taxation
+taxed
+taxes
+taxi
+taxicab
+taxicabs
+taxied
+taxiing
+taxing
+taxis
+taxonomic
+taxonomically
+taxonomy
+taxpayer
+taxpayers
+tea
+teach
+teachable
+teacher
+teachers
+teaches
+teaching
+teachings
+teacup
+team
+teamed
+teaming
+teams
+tear
+teared
+tearful
+tearfully
+tearing
+tears
+teas
+tease
+teased
+teases
+teasing
+teaspoon
+teaspoonful
+teaspoonfuls
+teaspoons
+technical
+technicalities
+technicality
+technically
+technician
+technicians
+technique
+techniques
+technological
+technologically
+technologies
+technologist
+technologists
+technology
+tedious
+tediously
+tediousness
+tedium
+teem
+teemed
+teeming
+teems
+teen
+teenage
+teenaged
+teenager
+teenagers
+teens
+teeth
+teethe
+teethed
+teethes
+teething
+telecommunication
+telecommunications
+telegram
+telegrams
+telegraph
+telegraphed
+telegrapher
+telegraphers
+telegraphic
+telegraphing
+telegraphs
+telemetry
+teleological
+teleologically
+teleology
+telepathy
+telephone
+telephoned
+telephoner
+telephoners
+telephones
+telephonic
+telephoning
+telephony
+teleprocessing
+telescope
+telescoped
+telescopes
+telescoping
+teletype
+teletypes
+televise
+televised
+televises
+televising
+television
+televisions
+televisor
+televisors
+tell
+teller
+tellers
+telling
+tells
+temper
+temperament
+temperamental
+temperaments
+temperance
+temperate
+temperately
+temperateness
+temperature
+temperatures
+tempered
+tempering
+tempers
+tempest
+tempestuous
+tempestuously
+template
+templates
+temple
+temples
+temporal
+temporally
+temporaries
+temporarily
+temporary
+tempt
+temptation
+temptations
+tempted
+tempter
+tempters
+tempting
+temptingly
+tempts
+ten
+tenacious
+tenaciously
+tenant
+tenants
+tend
+tended
+tendencies
+tendency
+tender
+tenderly
+tenderness
+tenders
+tending
+tends
+tenement
+tenements
+tenfold
+tennis
+tenor
+tenors
+tens
+tense
+tensed
+tensely
+tenseness
+tenser
+tenses
+tensest
+tensing
+tension
+tensions
+tent
+tentacle
+tentacled
+tentacles
+tentative
+tentatively
+tented
+tenth
+tenting
+tents
+tenure
+term
+termed
+terminal
+terminally
+terminals
+terminate
+terminated
+terminates
+terminating
+termination
+terminations
+terminator
+terminators
+terming
+terminologies
+terminology
+terminus
+terms
+termwise
+ternary
+terrace
+terraced
+terraces
+terrain
+terrains
+terrestrial
+terrestrials
+terrible
+terribly
+terrier
+terriers
+terrific
+terrified
+terrifies
+terrify
+terrifying
+territorial
+territories
+territory
+terror
+terrorism
+terrorist
+terroristic
+terrorists
+terrorize
+terrorized
+terrorizes
+terrorizing
+terrors
+tertiary
+test
+testability
+testable
+testament
+testaments
+tested
+tester
+testers
+testicle
+testicles
+testified
+testifier
+testifiers
+testifies
+testify
+testifying
+testimonies
+testimony
+testing
+testings
+tests
+text
+textbook
+textbooks
+textile
+textiles
+texts
+textual
+textually
+texture
+textured
+textures
+than
+thank
+thanked
+thankful
+thankfully
+thankfulness
+thanking
+thankless
+thanklessly
+thanklessness
+thanks
+thanksgiving
+thanksgivings
+that
+thatch
+thatches
+thats
+thaw
+thawed
+thawing
+thaws
+the
+theater
+theaters
+theatrical
+theatrically
+theatricals
+theft
+thefts
+their
+theirs
+them
+thematic
+theme
+themes
+themselves
+then
+thence
+thenceforth
+theological
+theology
+theorem
+theorems
+theoretic
+theoretical
+theoretically
+theoreticians
+theories
+theorist
+theorists
+theorization
+theorizations
+theorize
+theorized
+theorizer
+theorizers
+theorizes
+theorizing
+theory
+therapeutic
+therapies
+therapist
+therapists
+therapy
+there
+thereabouts
+thereafter
+thereby
+therefore
+therein
+thereof
+thereon
+thereto
+thereupon
+therewith
+thermal
+thermodynamic
+thermodynamics
+thermometer
+thermometers
+thermostat
+thermostats
+these
+theses
+thesis
+they
+thick
+thicken
+thickens
+thicker
+thickest
+thicket
+thickets
+thickly
+thickness
+thief
+thieve
+thieves
+thieving
+thigh
+thighs
+thimble
+thimbles
+thin
+thing
+things
+think
+thinkable
+thinkably
+thinker
+thinkers
+thinking
+thinks
+thinly
+thinner
+thinness
+thinnest
+third
+thirdly
+thirds
+thirst
+thirsted
+thirsts
+thirsty
+thirteen
+thirteens
+thirteenth
+thirties
+thirtieth
+thirty
+this
+thistle
+thong
+thorn
+thorns
+thorny
+thorough
+thoroughfare
+thoroughfares
+thoroughly
+thoroughness
+those
+though
+thought
+thoughtful
+thoughtfully
+thoughtfulness
+thoughtless
+thoughtlessly
+thoughtlessness
+thoughts
+thousand
+thousands
+thousandth
+thrash
+thrashed
+thrasher
+thrashes
+thrashing
+thread
+threaded
+threader
+threaders
+threading
+threads
+threat
+threaten
+threatened
+threatening
+threatens
+threats
+three
+threefold
+threes
+threescore
+threshold
+thresholds
+threw
+thrice
+thrift
+thrifty
+thrill
+thrilled
+thriller
+thrillers
+thrilling
+thrillingly
+thrills
+thrive
+thrived
+thrives
+thriving
+throat
+throated
+throats
+throb
+throbbed
+throbbing
+throbs
+throne
+thrones
+throng
+throngs
+throttle
+throttled
+throttles
+throttling
+through
+throughout
+throughput
+throw
+thrower
+throwing
+thrown
+throws
+thrush
+thrust
+thruster
+thrusters
+thrusting
+thrusts
+thud
+thuds
+thug
+thugs
+thumb
+thumbed
+thumbing
+thumbs
+thump
+thumped
+thumping
+thunder
+thunderbolt
+thunderbolts
+thundered
+thunderer
+thunderers
+thundering
+thunders
+thunderstorm
+thunderstorms
+thus
+thusly
+thwart
+thwarted
+thwarting
+thwarts
+thyself
+tick
+ticked
+ticker
+tickers
+ticket
+tickets
+ticking
+tickle
+tickled
+tickles
+tickling
+ticklish
+ticks
+tidal
+tidally
+tide
+tided
+tides
+tidied
+tidiness
+tiding
+tidings
+tidy
+tidying
+tie
+tied
+tier
+tiers
+ties
+tiger
+tigers
+tight
+tighten
+tightened
+tightener
+tighteners
+tightening
+tightenings
+tightens
+tighter
+tightest
+tightly
+tightness
+tilde
+tile
+tiled
+tiles
+tiling
+till
+tillable
+tilled
+tiller
+tillers
+tilling
+tills
+tilt
+tilted
+tilting
+tilts
+timber
+timbered
+timbering
+timbers
+time
+timed
+timeless
+timelessly
+timelessness
+timely
+timeout
+timeouts
+timer
+timers
+times
+timeshare
+timeshares
+timesharing
+timestamp
+timestamps
+timetable
+timetables
+timid
+timidity
+timidly
+timing
+timings
+tin
+tincture
+tinge
+tinged
+tingle
+tingled
+tingles
+tingling
+tinier
+tiniest
+tinily
+tininess
+tinker
+tinkered
+tinkering
+tinkers
+tinkle
+tinkled
+tinkles
+tinkling
+tinnier
+tinniest
+tinnily
+tinniness
+tinny
+tins
+tint
+tinted
+tinting
+tints
+tiny
+tip
+tipped
+tipper
+tippers
+tipping
+tips
+tiptoe
+tire
+tired
+tiredly
+tireless
+tirelessly
+tirelessness
+tires
+tiresome
+tiresomely
+tiresomeness
+tiring
+tissue
+tissues
+tit
+tithe
+tither
+tithes
+tithing
+title
+titled
+titles
+tits
+titter
+titters
+to
+toad
+toads
+toast
+toasted
+toaster
+toasting
+toasts
+tobacco
+today
+todays
+toe
+toes
+together
+togetherness
+toggle
+toggled
+toggles
+toggling
+toil
+toiled
+toiler
+toilet
+toilets
+toiling
+toils
+token
+tokens
+told
+tolerability
+tolerable
+tolerably
+tolerance
+tolerances
+tolerant
+tolerantly
+tolerate
+tolerated
+tolerates
+tolerating
+toleration
+toll
+tolled
+tolls
+tomahawk
+tomahawks
+tomato
+tomatoes
+tomb
+tombs
+tomography
+tomorrow
+tomorrows
+ton
+tone
+toned
+toner
+tones
+tongs
+tongue
+tongued
+tongues
+tonic
+tonics
+tonight
+toning
+tonnage
+tons
+tonsil
+too
+took
+tool
+tooled
+tooler
+toolers
+tooling
+tools
+tooth
+toothbrush
+toothbrushes
+toothpaste
+toothpick
+toothpicks
+top
+toper
+topic
+topical
+topically
+topics
+topmost
+topography
+topological
+topologies
+topology
+topple
+toppled
+topples
+toppling
+tops
+torch
+torches
+tore
+torment
+tormented
+tormenter
+tormenters
+tormenting
+torn
+tornado
+tornadoes
+torpedo
+torpedoes
+torque
+torrent
+torrents
+torrid
+tortoise
+tortoises
+torture
+tortured
+torturer
+torturers
+tortures
+torturing
+torus
+toruses
+toss
+tossed
+tosses
+tossing
+total
+totaled
+totaling
+totalities
+totality
+totalled
+totaller
+totallers
+totalling
+totally
+totals
+totter
+tottered
+tottering
+totters
+touch
+touchable
+touched
+touches
+touchier
+touchiest
+touchily
+touchiness
+touching
+touchingly
+touchy
+tough
+toughen
+tougher
+toughest
+toughly
+toughness
+tour
+toured
+touring
+tourist
+tourists
+tournament
+tournaments
+tours
+tow
+toward
+towards
+towed
+towel
+toweling
+towelled
+towelling
+towels
+tower
+towered
+towering
+towers
+town
+towns
+township
+townships
+toy
+toyed
+toying
+toys
+trace
+traceable
+traced
+tracer
+tracers
+traces
+tracing
+tracings
+track
+tracked
+tracker
+trackers
+tracking
+tracks
+tract
+tractability
+tractable
+tractive
+tractor
+tractors
+tracts
+trade
+traded
+trademark
+trademarks
+tradeoff
+tradeoffs
+trader
+traders
+trades
+tradesman
+trading
+tradition
+traditional
+traditionally
+traditions
+traffic
+trafficked
+trafficker
+traffickers
+trafficking
+traffics
+tragedies
+tragedy
+tragic
+tragically
+trail
+trailed
+trailer
+trailers
+trailing
+trailings
+trails
+train
+trained
+trainee
+trainees
+trainer
+trainers
+training
+trains
+trait
+traitor
+traitors
+traits
+trajectories
+trajectory
+tramp
+tramped
+tramping
+trample
+trampled
+trampler
+tramples
+trampling
+tramps
+trance
+trances
+tranquil
+tranquility
+tranquilly
+transact
+transaction
+transactions
+transatlantic
+transceive
+transceiver
+transceivers
+transcend
+transcended
+transcendent
+transcending
+transcends
+transcontinental
+transcribe
+transcribed
+transcriber
+transcribers
+transcribes
+transcribing
+transcript
+transcription
+transcriptions
+transcripts
+transfer
+transferability
+transferable
+transferal
+transferals
+transference
+transferred
+transferrer
+transferrers
+transferring
+transfers
+transfinite
+transform
+transformable
+transformation
+transformational
+transformations
+transformed
+transformer
+transformers
+transforming
+transforms
+transgress
+transgressed
+transgression
+transgressions
+transience
+transiency
+transient
+transiently
+transients
+transistor
+transistorize
+transistorized
+transistorizing
+transistors
+transit
+transition
+transitional
+transitioned
+transitions
+transitive
+transitively
+transitiveness
+transitivity
+transitory
+translatability
+translatable
+translate
+translated
+translates
+translating
+translation
+translational
+translations
+translator
+translators
+translucent
+transmission
+transmissions
+transmit
+transmits
+transmittal
+transmitted
+transmitter
+transmitters
+transmitting
+transmogrification
+transmogrify
+transpacific
+transparencies
+transparency
+transparent
+transparently
+transpire
+transpired
+transpires
+transpiring
+transplant
+transplanted
+transplanting
+transplants
+transponder
+transponders
+transport
+transportability
+transportation
+transported
+transporter
+transporters
+transporting
+transports
+transpose
+transposed
+transposes
+transposing
+transposition
+trap
+trapezoid
+trapezoidal
+trapezoids
+trapped
+trapper
+trappers
+trapping
+trappings
+traps
+trash
+trauma
+traumatic
+travail
+travel
+traveled
+traveler
+travelers
+traveling
+travelings
+travels
+traversal
+traversals
+traverse
+traversed
+traverses
+traversing
+travesties
+travesty
+tray
+trays
+treacheries
+treacherous
+treacherously
+treachery
+tread
+treading
+treads
+treason
+treasure
+treasured
+treasurer
+treasures
+treasuries
+treasuring
+treasury
+treat
+treated
+treaties
+treating
+treatise
+treatises
+treatment
+treatments
+treats
+treaty
+treble
+tree
+trees
+treetop
+treetops
+trek
+treks
+tremble
+trembled
+trembles
+trembling
+tremendous
+tremendously
+tremor
+tremors
+trench
+trencher
+trenches
+trend
+trending
+trends
+trespass
+trespassed
+trespasser
+trespassers
+trespasses
+tress
+tresses
+trial
+trials
+triangle
+triangles
+triangular
+triangularly
+tribal
+tribe
+tribes
+tribunal
+tribunals
+tribune
+tribunes
+tributary
+tribute
+tributes
+trichotomy
+trick
+tricked
+trickier
+trickiest
+trickiness
+tricking
+trickle
+trickled
+trickles
+trickling
+tricks
+tricky
+tried
+trier
+triers
+tries
+trifle
+trifler
+trifles
+trifling
+trigger
+triggered
+triggering
+triggers
+trigonometric
+trigonometry
+trigram
+trigrams
+trihedral
+trilateral
+trill
+trilled
+trillion
+trillions
+trillionth
+trim
+trimly
+trimmed
+trimmer
+trimmest
+trimming
+trimmings
+trimness
+trims
+trinket
+trinkets
+trio
+trip
+triple
+tripled
+triples
+triplet
+triplets
+tripling
+tripod
+trips
+triumph
+triumphal
+triumphant
+triumphantly
+triumphed
+triumphing
+triumphs
+trivia
+trivial
+trivialities
+triviality
+trivially
+trod
+troll
+trolley
+trolleys
+trolls
+troop
+trooper
+troopers
+troops
+trophies
+trophy
+tropic
+tropical
+tropics
+trot
+trots
+trouble
+troubled
+troublemaker
+troublemakers
+troubles
+troubleshoot
+troubleshooter
+troubleshooters
+troubleshooting
+troubleshoots
+troublesome
+troublesomely
+troubling
+trough
+trouser
+trousers
+trout
+trowel
+trowels
+truant
+truants
+truce
+truck
+trucked
+trucker
+truckers
+trucking
+trucks
+trudge
+trudged
+true
+trued
+truer
+trues
+truest
+truing
+truism
+truisms
+truly
+trump
+trumped
+trumpet
+trumpeter
+trumps
+truncate
+truncated
+truncates
+truncating
+truncation
+truncations
+trunk
+trunks
+trust
+trusted
+trustee
+trustees
+trustful
+trustfully
+trustfulness
+trusting
+trustingly
+trusts
+trustworthiness
+trustworthy
+trusty
+truth
+truthful
+truthfully
+truthfulness
+truths
+try
+trying
+tub
+tube
+tuber
+tuberculosis
+tubers
+tubes
+tubing
+tubs
+tuck
+tucked
+tucking
+tucks
+tuft
+tufts
+tug
+tugs
+tuition
+tulip
+tulips
+tumble
+tumbled
+tumbler
+tumblers
+tumbles
+tumbling
+tumor
+tumors
+tumult
+tumults
+tumultuous
+tunable
+tune
+tuned
+tuner
+tuners
+tunes
+tunic
+tunics
+tuning
+tunnel
+tunneled
+tunnels
+tuple
+tuples
+turban
+turbans
+turbulence
+turbulent
+turbulently
+turf
+turgid
+turgidly
+turkey
+turkeys
+turmoil
+turmoils
+turn
+turnable
+turnaround
+turned
+turner
+turners
+turning
+turnings
+turnip
+turnips
+turnover
+turns
+turpentine
+turquoise
+turret
+turrets
+turtle
+turtleneck
+turtles
+tutor
+tutored
+tutorial
+tutorials
+tutoring
+tutors
+twain
+twang
+twas
+tweed
+twelfth
+twelve
+twelves
+twenties
+twentieth
+twenty
+twice
+twig
+twigs
+twilight
+twilights
+twill
+twin
+twine
+twined
+twiner
+twinkle
+twinkled
+twinkler
+twinkles
+twinkling
+twins
+twirl
+twirled
+twirler
+twirling
+twirls
+twist
+twisted
+twister
+twisters
+twisting
+twists
+twitch
+twitched
+twitching
+twitter
+twittered
+twittering
+two
+twofold
+twos
+tying
+type
+typed
+typeout
+types
+typesetter
+typewriter
+typewriters
+typhoid
+typical
+typically
+typicalness
+typified
+typifies
+typify
+typifying
+typing
+typist
+typists
+typo
+typographic
+typographical
+typographically
+typography
+tyrannical
+tyranny
+tyrant
+tyrants
+ubiquitous
+ubiquitously
+ubiquity
+ugh
+uglier
+ugliest
+ugliness
+ugly
+ulcer
+ulcers
+ultimate
+ultimately
+ultra
+ultrasonic
+umbrage
+umbrella
+umbrellas
+umpire
+umpires
+unabated
+unabbreviated
+unable
+unacceptability
+unacceptable
+unacceptably
+unaccountable
+unaccustomed
+unachievable
+unacknowledged
+unadulterated
+unaesthetically
+unaffected
+unaffectedly
+unaffectedness
+unaided
+unalienability
+unalienable
+unalterably
+unaltered
+unambiguous
+unambiguously
+unambitious
+unanalyzable
+unanimity
+unanimous
+unanimously
+unanswerable
+unanswered
+unanticipated
+unarmed
+unary
+unassailable
+unassigned
+unassisted
+unattainability
+unattainable
+unattended
+unattractive
+unattractively
+unauthorized
+unavailability
+unavailable
+unavoidable
+unavoidably
+unaware
+unawareness
+unawares
+unbalanced
+unbearable
+unbecoming
+unbelievable
+unbiased
+unbind
+unblock
+unblocked
+unblocking
+unblocks
+unborn
+unbound
+unbounded
+unbreakable
+unbridled
+unbroken
+unbuffered
+uncancelled
+uncanny
+uncapitalized
+uncaught
+uncertain
+uncertainly
+uncertainties
+uncertainty
+unchangeable
+unchanged
+unchanging
+unclaimed
+unclassified
+uncle
+unclean
+uncleanly
+uncleanness
+unclear
+uncleared
+uncles
+unclosed
+uncomfortable
+uncomfortably
+uncommitted
+uncommon
+uncommonly
+uncompromising
+uncomputable
+unconcerned
+unconcernedly
+unconditional
+unconditionally
+unconnected
+unconscionable
+unconscious
+unconsciously
+unconsciousness
+unconstitutional
+unconstrained
+uncontrollability
+uncontrollable
+uncontrollably
+uncontrolled
+unconventional
+unconventionally
+unconvinced
+unconvincing
+uncoordinated
+uncorrectable
+uncorrected
+uncountable
+uncountably
+uncouth
+uncover
+uncovered
+uncovering
+uncovers
+undamaged
+undaunted
+undauntedly
+undecidable
+undecided
+undeclared
+undecomposable
+undefinability
+undefined
+undeleted
+undeniable
+undeniably
+under
+underbrush
+underdone
+underestimate
+underestimated
+underestimates
+underestimating
+underestimation
+underflow
+underflowed
+underflowing
+underflows
+underfoot
+undergo
+undergoes
+undergoing
+undergone
+undergraduate
+undergraduates
+underground
+underlie
+underlies
+underline
+underlined
+underlines
+underling
+underlings
+underlining
+underlinings
+underloaded
+underlying
+undermine
+undermined
+undermines
+undermining
+underneath
+underpinning
+underpinnings
+underplay
+underplayed
+underplaying
+underplays
+underscore
+underscored
+underscores
+understand
+understandability
+understandable
+understandably
+understanding
+understandingly
+understandings
+understands
+understated
+understood
+undertake
+undertaken
+undertaker
+undertakers
+undertakes
+undertaking
+undertakings
+undertook
+underwater
+underway
+underwear
+underwent
+underworld
+underwrite
+underwriter
+underwriters
+underwrites
+underwriting
+undesirability
+undesirable
+undetectable
+undetected
+undetermined
+undeveloped
+undid
+undiminished
+undirected
+undisciplined
+undiscovered
+undisturbed
+undivided
+undo
+undocumented
+undoes
+undoing
+undoings
+undone
+undoubtedly
+undress
+undressed
+undresses
+undressing
+undue
+unduly
+uneasily
+uneasiness
+uneasy
+uneconomic
+uneconomical
+unembellished
+unemployed
+unemployment
+unencrypted
+unending
+unenlightening
+unequal
+unequaled
+unequally
+unequivocal
+unequivocally
+unessential
+unevaluated
+uneven
+unevenly
+unevenness
+uneventful
+unexcused
+unexpanded
+unexpected
+unexpectedly
+unexplained
+unexplored
+unextended
+unfair
+unfairly
+unfairness
+unfaithful
+unfaithfully
+unfaithfulness
+unfamiliar
+unfamiliarity
+unfamiliarly
+unfavorable
+unfettered
+unfinished
+unfit
+unfitness
+unflagging
+unfold
+unfolded
+unfolding
+unfolds
+unforeseen
+unforgeable
+unforgiving
+unformatted
+unfortunate
+unfortunately
+unfortunates
+unfounded
+unfriendliness
+unfriendly
+unfulfilled
+ungrammatical
+ungrateful
+ungratefully
+ungratefulness
+ungrounded
+unguarded
+unguided
+unhappier
+unhappiest
+unhappily
+unhappiness
+unhappy
+unharmed
+unhealthy
+unheard
+unheeded
+unicorn
+unicorns
+unicycle
+unidentified
+unidirectional
+unidirectionality
+unidirectionally
+unification
+unifications
+unified
+unifier
+unifiers
+unifies
+uniform
+uniformed
+uniformity
+uniformly
+uniforms
+unify
+unifying
+unilluminating
+unimaginable
+unimpeded
+unimplemented
+unimportant
+unindented
+uninitialized
+uninsulated
+unintelligible
+unintended
+unintentional
+unintentionally
+uninteresting
+uninterestingly
+uninterpreted
+uninterrupted
+uninterruptedly
+union
+unionization
+unionize
+unionized
+unionizer
+unionizers
+unionizes
+unionizing
+unions
+uniprocessor
+unique
+uniquely
+uniqueness
+unison
+unit
+unite
+united
+unites
+unities
+uniting
+units
+unity
+univalve
+univalves
+universal
+universality
+universally
+universals
+universe
+universes
+universities
+university
+unjust
+unjustifiable
+unjustified
+unjustly
+unkind
+unkindly
+unkindness
+unknowable
+unknowing
+unknowingly
+unknown
+unknowns
+unlabelled
+unlawful
+unlawfully
+unleash
+unleashed
+unleashes
+unleashing
+unless
+unlike
+unlikely
+unlikeness
+unlimited
+unlink
+unlinked
+unlinking
+unlinks
+unload
+unloaded
+unloading
+unloads
+unlock
+unlocked
+unlocking
+unlocks
+unlucky
+unmanageable
+unmanageably
+unmanned
+unmarked
+unmarried
+unmask
+unmasked
+unmatched
+unmentionable
+unmerciful
+unmercifully
+unmistakable
+unmistakably
+unmodified
+unmoved
+unnamed
+unnatural
+unnaturally
+unnaturalness
+unnecessarily
+unnecessary
+unneeded
+unnerve
+unnerved
+unnerves
+unnerving
+unnoticed
+unobservable
+unobserved
+unobtainable
+unoccupied
+unofficial
+unofficially
+unopened
+unordered
+unpack
+unpacked
+unpacking
+unpacks
+unpaid
+unparalleled
+unparsed
+unplanned
+unpleasant
+unpleasantly
+unpleasantness
+unplug
+unpopular
+unpopularity
+unprecedented
+unpredictable
+unpredictably
+unprescribed
+unpreserved
+unprimed
+unprofitable
+unprojected
+unprotected
+unprovability
+unprovable
+unproven
+unpublished
+unqualified
+unqualifiedly
+unquestionably
+unquestioned
+unquoted
+unravel
+unraveled
+unraveling
+unravels
+unreachable
+unreal
+unrealistic
+unrealistically
+unreasonable
+unreasonableness
+unreasonably
+unrecognizable
+unrecognized
+unregulated
+unrelated
+unreliability
+unreliable
+unreported
+unrepresentable
+unresolved
+unresponsive
+unrest
+unrestrained
+unrestricted
+unrestrictedly
+unrestrictive
+unroll
+unrolled
+unrolling
+unrolls
+unruly
+unsafe
+unsafely
+unsanitary
+unsatisfactory
+unsatisfiability
+unsatisfiable
+unsatisfied
+unsatisfying
+unscrupulous
+unseeded
+unseen
+unselected
+unselfish
+unselfishly
+unselfishness
+unsent
+unsettled
+unsettling
+unshaken
+unshared
+unsigned
+unskilled
+unslotted
+unsolvable
+unsolved
+unsophisticated
+unsound
+unspeakable
+unspecified
+unstable
+unsteadiness
+unsteady
+unstructured
+unsuccessful
+unsuccessfully
+unsuitable
+unsuited
+unsupported
+unsure
+unsurprising
+unsurprisingly
+unsynchronized
+untagged
+untapped
+untenable
+unterminated
+untested
+unthinkable
+unthinking
+untidiness
+untidy
+untie
+untied
+unties
+until
+untimely
+unto
+untold
+untouchable
+untouchables
+untouched
+untoward
+untrained
+untranslated
+untreated
+untried
+untrue
+untruthful
+untruthfulness
+untying
+unusable
+unused
+unusual
+unusually
+unvarying
+unveil
+unveiled
+unveiling
+unveils
+unwanted
+unwelcome
+unwholesome
+unwieldiness
+unwieldy
+unwilling
+unwillingly
+unwillingness
+unwind
+unwinder
+unwinders
+unwinding
+unwinds
+unwise
+unwisely
+unwiser
+unwisest
+unwitting
+unwittingly
+unworthiness
+unworthy
+unwound
+unwrap
+unwrapped
+unwrapping
+unwraps
+unwritten
+up
+upbraid
+upcoming
+update
+updated
+updater
+updates
+updating
+upgrade
+upgraded
+upgrades
+upgrading
+upheld
+uphill
+uphold
+upholder
+upholders
+upholding
+upholds
+upholster
+upholstered
+upholsterer
+upholstering
+upholsters
+upkeep
+upland
+uplands
+uplift
+uplink
+uplinks
+upload
+upon
+upper
+uppermost
+upright
+uprightly
+uprightness
+uprising
+uprisings
+uproar
+uproot
+uprooted
+uprooting
+uproots
+upset
+upsets
+upshot
+upshots
+upside
+upstairs
+upstream
+upturn
+upturned
+upturning
+upturns
+upward
+upwards
+urban
+urchin
+urchins
+urge
+urged
+urgent
+urgently
+urges
+urging
+urgings
+urinate
+urinated
+urinates
+urinating
+urination
+urine
+urn
+urns
+us
+usability
+usable
+usably
+usage
+usages
+use
+used
+useful
+usefully
+usefulness
+useless
+uselessly
+uselessness
+user
+users
+uses
+usher
+ushered
+ushering
+ushers
+using
+usual
+usually
+usurp
+usurped
+usurper
+utensil
+utensils
+utilities
+utility
+utilization
+utilizations
+utilize
+utilized
+utilizes
+utilizing
+utmost
+utopia
+utopian
+utopians
+utter
+utterance
+utterances
+uttered
+uttering
+utterly
+uttermost
+utters
+vacancies
+vacancy
+vacant
+vacantly
+vacate
+vacated
+vacates
+vacating
+vacation
+vacationed
+vacationer
+vacationers
+vacationing
+vacations
+vacuo
+vacuous
+vacuously
+vacuum
+vacuumed
+vacuuming
+vagabond
+vagabonds
+vagaries
+vagary
+vagina
+vaginas
+vagrant
+vagrantly
+vague
+vaguely
+vagueness
+vaguer
+vaguest
+vain
+vainly
+vale
+valence
+valences
+valentine
+valentines
+vales
+valet
+valets
+valiant
+valiantly
+valid
+validate
+validated
+validates
+validating
+validation
+validity
+validly
+validness
+valley
+valleys
+valor
+valuable
+valuables
+valuably
+valuation
+valuations
+value
+valued
+valuer
+valuers
+values
+valuing
+valve
+valves
+vampire
+van
+vandalize
+vandalized
+vandalizes
+vandalizing
+vane
+vanes
+vanguard
+vanilla
+vanish
+vanished
+vanisher
+vanishes
+vanishing
+vanishingly
+vanities
+vanity
+vanquish
+vanquished
+vanquishes
+vanquishing
+vans
+vantage
+vapor
+vaporing
+vapors
+variability
+variable
+variableness
+variables
+variably
+variance
+variances
+variant
+variantly
+variants
+variation
+variations
+varied
+varies
+varieties
+variety
+various
+variously
+varnish
+varnishes
+vary
+varying
+varyings
+vase
+vases
+vassal
+vast
+vaster
+vastest
+vastly
+vastness
+vat
+vats
+vaudeville
+vault
+vaulted
+vaulter
+vaulting
+vaults
+vaunt
+vaunted
+veal
+vector
+vectorization
+vectorizing
+vectors
+veer
+veered
+veering
+veers
+vegetable
+vegetables
+vegetarian
+vegetarians
+vegetate
+vegetated
+vegetates
+vegetating
+vegetation
+vegetative
+vehemence
+vehement
+vehemently
+vehicle
+vehicles
+vehicular
+veil
+veiled
+veiling
+veils
+vein
+veined
+veining
+veins
+velocities
+velocity
+velvet
+vendor
+vendors
+venerable
+veneration
+vengeance
+venial
+venison
+venom
+venomous
+venomously
+vent
+vented
+ventilate
+ventilated
+ventilates
+ventilating
+ventilation
+ventricle
+ventricles
+vents
+venture
+ventured
+venturer
+venturers
+ventures
+venturing
+venturings
+veracity
+veranda
+verandas
+verb
+verbal
+verbalize
+verbalized
+verbalizes
+verbalizing
+verbally
+verbose
+verbs
+verdict
+verdure
+verge
+verger
+verges
+verifiability
+verifiable
+verification
+verifications
+verified
+verifier
+verifiers
+verifies
+verify
+verifying
+verily
+veritable
+vermin
+vernacular
+versa
+versatile
+versatility
+verse
+versed
+verses
+versing
+version
+versions
+versus
+vertebrate
+vertebrates
+vertex
+vertical
+vertically
+verticalness
+vertices
+very
+vessel
+vessels
+vest
+vested
+vestige
+vestiges
+vestigial
+vests
+veteran
+veterans
+veterinarian
+veterinarians
+veterinary
+veto
+vetoed
+vetoer
+vetoes
+vex
+vexation
+vexed
+vexes
+vexing
+via
+viability
+viable
+viably
+vial
+vials
+vibrate
+vibrated
+vibrating
+vibration
+vibrations
+vibrator
+vice
+viceroy
+vices
+vicinity
+vicious
+viciously
+viciousness
+vicissitude
+vicissitudes
+victim
+victimize
+victimized
+victimizer
+victimizers
+victimizes
+victimizing
+victims
+victor
+victories
+victorious
+victoriously
+victors
+victory
+victual
+victualer
+victuals
+video
+videotape
+videotapes
+vie
+vied
+vier
+vies
+view
+viewable
+viewed
+viewer
+viewers
+viewing
+viewpoint
+viewpoints
+views
+vigilance
+vigilant
+vigilante
+vigilantes
+vigilantly
+vignette
+vignettes
+vigor
+vigorous
+vigorously
+vile
+vilely
+vileness
+vilification
+vilifications
+vilified
+vilifies
+vilify
+vilifying
+villa
+village
+villager
+villagers
+villages
+villain
+villainous
+villainously
+villainousness
+villains
+villainy
+villas
+vindicate
+vindicated
+vindication
+vindictive
+vindictively
+vindictiveness
+vine
+vinegar
+vines
+vineyard
+vineyards
+vintage
+violate
+violated
+violates
+violating
+violation
+violations
+violator
+violators
+violence
+violent
+violently
+violet
+violets
+violin
+violinist
+violinists
+violins
+viper
+vipers
+virgin
+virginity
+virgins
+virtual
+virtually
+virtue
+virtues
+virtuoso
+virtuosos
+virtuous
+virtuously
+virulent
+virus
+viruses
+visa
+visage
+visas
+viscount
+viscounts
+viscous
+visibility
+visible
+visibly
+vision
+visionary
+visions
+visit
+visitation
+visitations
+visited
+visiting
+visitor
+visitors
+visits
+visor
+visors
+vista
+vistas
+visual
+visualize
+visualized
+visualizer
+visualizes
+visualizing
+visually
+vita
+vitae
+vital
+vitality
+vitally
+vitals
+vivid
+vividly
+vividness
+vizier
+vocabularies
+vocabulary
+vocal
+vocally
+vocals
+vocation
+vocational
+vocationally
+vocations
+vogue
+voice
+voiced
+voicer
+voicers
+voices
+voicing
+void
+voided
+voider
+voiding
+voids
+volatile
+volatilities
+volatility
+volcanic
+volcano
+volcanos
+volition
+volley
+volleyball
+volleyballs
+volt
+voltage
+voltages
+volts
+volume
+volumes
+voluntarily
+voluntary
+volunteer
+volunteered
+volunteering
+volunteers
+vomit
+vomited
+vomiting
+vomits
+vortex
+vote
+voted
+voter
+voters
+votes
+voting
+votive
+vouch
+voucher
+vouchers
+vouches
+vouching
+vow
+vowed
+vowel
+vowels
+vower
+vowing
+vows
+voyage
+voyaged
+voyager
+voyagers
+voyages
+voyaging
+voyagings
+vulgar
+vulgarly
+vulnerabilities
+vulnerability
+vulnerable
+vulture
+vultures
+wacky
+wade
+waded
+wader
+wades
+wading
+wafer
+wafers
+waffle
+waffles
+waft
+wag
+wage
+waged
+wager
+wagers
+wages
+waging
+wagon
+wagoner
+wagons
+wags
+wail
+wailed
+wailing
+wails
+waist
+waistcoat
+waistcoats
+waists
+wait
+waited
+waiter
+waiters
+waiting
+waitress
+waitresses
+waits
+waive
+waived
+waiver
+waiverable
+waives
+waiving
+wake
+waked
+waken
+wakened
+wakening
+wakes
+wakeup
+waking
+wales
+walk
+walked
+walker
+walkers
+walking
+walks
+wall
+walled
+wallet
+wallets
+walling
+wallow
+wallowed
+wallowing
+wallows
+walnut
+walnuts
+walrus
+walruses
+waltz
+waltzed
+waltzes
+waltzing
+wan
+wand
+wander
+wandered
+wanderer
+wanderers
+wandering
+wanderings
+wanders
+wane
+waned
+wanes
+waning
+wanly
+want
+wanted
+wanting
+wanton
+wantonly
+wantonness
+wants
+war
+warble
+warbled
+warbler
+warbles
+warbling
+ward
+warden
+wardens
+warder
+wardrobe
+wardrobes
+wards
+ware
+warehouse
+warehouses
+warehousing
+wares
+warfare
+warily
+wariness
+warlike
+warm
+warmed
+warmer
+warmers
+warmest
+warming
+warmly
+warms
+warmth
+warn
+warned
+warner
+warning
+warningly
+warnings
+warns
+warp
+warped
+warping
+warps
+warrant
+warranted
+warranties
+warranting
+warrants
+warranty
+warred
+warring
+warrior
+warriors
+wars
+warship
+warships
+wart
+wartime
+warts
+wary
+was
+wash
+washed
+washer
+washers
+washes
+washing
+washings
+wasp
+wasps
+waste
+wasted
+wasteful
+wastefully
+wastefulness
+wastes
+wasting
+watch
+watched
+watcher
+watchers
+watches
+watchful
+watchfully
+watchfulness
+watching
+watchings
+watchman
+watchword
+watchwords
+water
+watered
+waterfall
+waterfalls
+watering
+waterings
+waterproof
+waterproofing
+waterway
+waterways
+watery
+wave
+waved
+waveform
+waveforms
+wavefront
+wavefronts
+waveguides
+wavelength
+wavelengths
+waver
+wavers
+waves
+waving
+wax
+waxed
+waxen
+waxer
+waxers
+waxes
+waxing
+waxy
+way
+ways
+wayside
+wayward
+we
+weak
+weaken
+weakened
+weakening
+weakens
+weaker
+weakest
+weakly
+weakness
+weaknesses
+wealth
+wealthiest
+wealths
+wealthy
+wean
+weaned
+weaning
+weapon
+weapons
+wear
+wearable
+wearer
+wearied
+wearier
+weariest
+wearily
+weariness
+wearing
+wearisome
+wearisomely
+wears
+weary
+wearying
+weasel
+weasels
+weather
+weathercock
+weathercocks
+weathered
+weathering
+weathers
+weave
+weaver
+weaves
+weaving
+web
+webs
+wedded
+wedding
+weddings
+wedge
+wedged
+wedges
+wedging
+wedlock
+weds
+wee
+weed
+weeds
+week
+weekend
+weekends
+weekly
+weep
+weeper
+weeping
+weeps
+weigh
+weighed
+weighing
+weighings
+weighs
+weight
+weighted
+weighting
+weights
+weighty
+weird
+weirdly
+welcome
+welcomed
+welcomes
+welcoming
+weld
+welded
+welder
+welding
+welds
+welfare
+well
+welled
+welling
+welsh
+wench
+wenches
+went
+wept
+were
+west
+westbound
+western
+westerner
+westerners
+westward
+westwards
+wet
+wetly
+wetness
+wets
+wetted
+wetter
+wettest
+wetting
+whack
+whacked
+whacking
+whacks
+whale
+whaler
+whales
+whaling
+wharf
+wharves
+what
+whatever
+whatsoever
+wheat
+wheaten
+wheel
+wheeled
+wheeler
+wheelers
+wheeling
+wheelings
+wheels
+whelp
+when
+whence
+whenever
+where
+whereabouts
+whereas
+whereby
+wherein
+whereupon
+wherever
+whether
+which
+whichever
+while
+whim
+whimper
+whimpered
+whimpering
+whimpers
+whims
+whimsical
+whimsically
+whimsies
+whimsy
+whine
+whined
+whines
+whining
+whip
+whipped
+whipper
+whippers
+whipping
+whippings
+whips
+whirl
+whirled
+whirling
+whirlpool
+whirlpools
+whirls
+whirlwind
+whirr
+whirring
+whisk
+whisked
+whisker
+whiskers
+whiskey
+whisking
+whisks
+whisper
+whispered
+whispering
+whisperings
+whispers
+whistle
+whistled
+whistler
+whistlers
+whistles
+whistling
+whit
+white
+whitely
+whiten
+whitened
+whitener
+whiteners
+whiteness
+whitening
+whitens
+whiter
+whites
+whitespace
+whitest
+whitewash
+whitewashed
+whiting
+whittle
+whittled
+whittles
+whittling
+whiz
+whizzed
+whizzes
+whizzing
+who
+whoever
+whole
+wholehearted
+wholeheartedly
+wholeness
+wholes
+wholesale
+wholesaler
+wholesalers
+wholesome
+wholesomeness
+wholly
+whom
+whomever
+whoop
+whooped
+whooping
+whoops
+whore
+whores
+whorl
+whorls
+whose
+why
+wick
+wicked
+wickedly
+wickedness
+wicker
+wicks
+wide
+wideband
+widely
+widen
+widened
+widener
+widening
+widens
+wider
+widespread
+widest
+widget
+widow
+widowed
+widower
+widowers
+widows
+width
+widths
+wield
+wielded
+wielder
+wielding
+wields
+wife
+wifely
+wig
+wigs
+wigwam
+wild
+wildcat
+wildcats
+wilder
+wilderness
+wildest
+wildly
+wildness
+wile
+wiles
+wiliness
+will
+willed
+willful
+willfully
+willing
+willingly
+willingness
+willow
+willows
+wilt
+wilted
+wilting
+wilts
+wily
+win
+wince
+winced
+winces
+wincing
+wind
+winded
+winder
+winders
+winding
+windmill
+windmills
+window
+windows
+winds
+windy
+wine
+wined
+winer
+winers
+wines
+wing
+winged
+winging
+wings
+wining
+wink
+winked
+winker
+winking
+winks
+winner
+winners
+winning
+winningly
+winnings
+wins
+winter
+wintered
+wintering
+wintry
+wipe
+wiped
+wiper
+wipers
+wipes
+wiping
+wire
+wired
+wireless
+wires
+wiretap
+wiretappers
+wiretapping
+wiretaps
+wiriness
+wiring
+wiry
+wisdom
+wisdoms
+wise
+wised
+wisely
+wiser
+wisest
+wish
+wished
+wisher
+wishers
+wishes
+wishful
+wishing
+wisp
+wisps
+wistful
+wistfully
+wistfulness
+wit
+witch
+witchcraft
+witches
+witching
+with
+withal
+withdraw
+withdrawal
+withdrawals
+withdrawing
+withdrawn
+withdraws
+withdrew
+wither
+withers
+withheld
+withhold
+withholder
+withholders
+withholding
+withholdings
+withholds
+within
+without
+withstand
+withstanding
+withstands
+withstood
+witness
+witnessed
+witnesses
+witnessing
+wits
+witty
+wives
+wizard
+wizards
+woe
+woeful
+woefully
+woke
+wolf
+wolves
+woman
+womanhood
+womanly
+womb
+wombs
+women
+won
+wonder
+wondered
+wonderful
+wonderfully
+wonderfulness
+wondering
+wonderingly
+wonderment
+wonders
+wondrous
+wondrously
+wont
+wonted
+woo
+wood
+woodchuck
+woodchucks
+woodcock
+woodcocks
+wooded
+wooden
+woodenly
+woodenness
+woodland
+woodman
+woodpecker
+woodpeckers
+woodwork
+woodworking
+woody
+wooed
+wooer
+woof
+woofed
+woofer
+woofers
+woofing
+woofs
+wooing
+wool
+woolen
+woolly
+wools
+woos
+word
+worded
+wordily
+wordiness
+wording
+words
+wordy
+wore
+work
+workable
+workably
+workbench
+workbenches
+workbook
+workbooks
+worked
+worker
+workers
+workhorse
+workhorses
+working
+workingman
+workings
+workload
+workman
+workmanship
+workmen
+works
+workshop
+workshops
+workspace
+workstation
+workstations
+world
+worldliness
+worldly
+worlds
+worldwide
+worm
+wormed
+worming
+worms
+worn
+worried
+worrier
+worriers
+worries
+worrisome
+worry
+worrying
+worryingly
+worse
+worship
+worshiped
+worshiper
+worshipful
+worshiping
+worships
+worst
+worsted
+worth
+worthiest
+worthiness
+worthless
+worthlessness
+worths
+worthwhile
+worthwhileness
+worthy
+would
+wound
+wounded
+wounding
+wounds
+wove
+woven
+wrangle
+wrangled
+wrangler
+wrap
+wraparound
+wrapped
+wrapper
+wrappers
+wrapping
+wrappings
+wraps
+wrath
+wreak
+wreaks
+wreath
+wreathed
+wreathes
+wreck
+wreckage
+wrecked
+wrecker
+wreckers
+wrecking
+wrecks
+wren
+wrench
+wrenched
+wrenches
+wrenching
+wrens
+wrest
+wrestle
+wrestler
+wrestles
+wrestling
+wrestlings
+wretch
+wretched
+wretchedness
+wretches
+wriggle
+wriggled
+wriggler
+wriggles
+wriggling
+wring
+wringer
+wrings
+wrinkle
+wrinkled
+wrinkles
+wrist
+wrists
+wristwatch
+wristwatches
+writ
+writable
+write
+writer
+writers
+writes
+writhe
+writhed
+writhes
+writhing
+writing
+writings
+writs
+written
+wrong
+wronged
+wronging
+wrongly
+wrongs
+wrote
+wrought
+wrung
+yank
+yanked
+yanking
+yanks
+yard
+yards
+yardstick
+yardsticks
+yarn
+yarns
+yawn
+yawner
+yawning
+yea
+year
+yearly
+yearn
+yearned
+yearning
+yearnings
+years
+yeas
+yeast
+yeasts
+yell
+yelled
+yeller
+yelling
+yellow
+yellowed
+yellower
+yellowest
+yellowing
+yellowish
+yellowness
+yellows
+yelp
+yelped
+yelping
+yelps
+yeoman
+yeomen
+yes
+yesterday
+yesterdays
+yet
+yield
+yielded
+yielding
+yields
+yoke
+yokes
+yon
+yonder
+you
+young
+younger
+youngest
+youngly
+youngster
+youngsters
+your
+yours
+yourself
+yourselves
+youth
+youthes
+youthful
+youthfully
+youthfulness
+zeal
+zealous
+zealously
+zealousness
+zebra
+zebras
+zenith
+zero
+zeroed
+zeroes
+zeroing
+zeros
+zeroth
+zest
+zigzag
+zillions
+zinc
+zodiac
+zonal
+zonally
+zone
+zoned
+zones
+zoning
+zoo
+zoological
+zoologically
+zoom
+zooms
+zoos
+zuul

Added: test-suite/trunk/MultiSource/Applications/lua/input/sumcol-input.txt
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/input/sumcol-input.txt?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/input/sumcol-input.txt (added)
+++ test-suite/trunk/MultiSource/Applications/lua/input/sumcol-input.txt Sat Oct  4 15:58:08 2008
@@ -0,0 +1,1000 @@
+276
+498
+-981
+770
+-401
+702
+966
+950
+-853
+-53
+-293
+604
+288
+892
+-697
+204
+96
+408
+880
+-7
+-817
+422
+-261
+-485
+-77
+826
+184
+864
+-751
+626
+812
+-369
+-353
+-371
+488
+-83
+-659
+24
+524
+-21
+840
+-757
+-17
+-973
+-843
+260
+858
+-389
+-521
+-99
+482
+-561
+-213
+630
+766
+932
+112
+-419
+-877
+762
+266
+-837
+170
+834
+746
+764
+922
+-89
+576
+-63
+90
+684
+316
+506
+-959
+708
+70
+252
+-747
+342
+-593
+-895
+-937
+-707
+350
+588
+-201
+-683
+-113
+-511
+-867
+322
+202
+472
+150
+-9
+-643
+28
+336
+86
+-925
+836
+-473
+-451
+-971
+-805
+-619
+84
+-67
+806
+270
+366
+334
+-555
+-557
+-331
+-409
+-553
+-145
+-71
+528
+490
+492
+828
+628
+-961
+536
+-859
+-271
+974
+-671
+-749
+414
+-257
+778
+56
+598
+-437
+-899
+-785
+-987
+32
+-999
+132
+-821
+-209
+402
+-543
+194
+-967
+294
+-943
+-285
+-483
+-97
+660
+-481
+-829
+-309
+-597
+-855
+80
+-355
+192
+-823
+436
+916
+282
+-629
+612
+-329
+-535
+780
+-47
+706
+110
+756
+-857
+-933
+-345
+-523
+718
+-31
+902
+678
+540
+698
+456
+-399
+126
+412
+-563
+-321
+-487
+-641
+-195
+-199
+-955
+772
+570
+18
+-217
+886
+984
+-721
+-995
+46
+-989
+946
+64
+716
+-719
+-869
+-579
+776
+450
+936
+980
+-439
+-977
+-455
+-997
+6
+268
+-269
+-421
+328
+352
+578
+-575
+476
+976
+-57
+-469
+544
+582
+-43
+510
+-939
+-581
+-337
+-203
+-737
+-827
+852
+-279
+-803
+-911
+-865
+548
+48
+-75
+416
+-275
+688
+-255
+-687
+-461
+-233
+420
+912
+-901
+-299
+12
+568
+694
+-411
+-883
+-327
+-361
+-339
+646
+-137
+-905
+670
+686
+-131
+-849
+-825
+256
+228
+-841
+68
+368
+-909
+242
+298
+118
+10
+222
+954
+-493
+-459
+-445
+608
+-765
+34
+468
+-715
+690
+-185
+-551
+-571
+-241
+292
+92
+768
+-923
+956
+614
+8
+730
+208
+-417
+300
+136
+-59
+-251
+-539
+166
+798
+866
+454
+-391
+-317
+668
+502
+-15
+994
+854
+-189
+666
+446
+-565
+-5
+42
+-227
+-87
+-779
+26
+312
+354
+754
+396
+-515
+220
+872
+654
+88
+-667
+250
+572
+952
+72
+982
+972
+-529
+-471
+-533
+-427
+538
+154
+-457
+-819
+750
+152
+452
+-41
+838
+-489
+418
+-649
+-637
+-197
+74
+394
+-653
+-727
+-435
+-23
+348
+638
+-611
+914
+-357
+-743
+-685
+580
+-247
+-577
+54
+-931
+-3
+558
+-793
+-443
+-759
+162
+-811
+384
+720
+-117
+900
+-519
+-39
+744
+432
+286
+-873
+380
+-167
+-283
+430
+-155
+-755
+206
+100
+364
+-677
+332
+-567
+382
+-605
+-181
+676
+-475
+-845
+910
+546
+14
+398
+616
+-769
+424
+992
+-235
+-239
+774
+478
+-919
+168
+-771
+-773
+-69
+-509
+930
+550
+-463
+178
+-861
+-761
+-795
+234
+-831
+-61
+-979
+-851
+-665
+-709
+896
+742
+-123
+590
+-693
+-887
+-379
+144
+-717
+20
+174
+82
+464
+30
+-969
+-349
+-531
+-799
+-661
+-647
+-623
+878
+148
+-545
+238
+-259
+554
+726
+-37
+-797
+98
+78
+-591
+-975
+962
+120
+906
+-207
+656
+-171
+652
+188
+672
+-133
+-91
+224
+818
+-333
+-839
+-499
+22
+-739
+142
+378
+-403
+-315
+370
+284
+122
+230
+-527
+-127
+442
+534
+160
+722
+262
+-657
+304
+258
+-103
+960
+-495
+-265
+634
+-101
+480
+-363
+308
+76
+-949
+-585
+904
+146
+-703
+164
+850
+246
+732
+-725
+566
+274
+-163
+-935
+-681
+-229
+254
+-733
+-547
+-273
+-903
+736
+-711
+794
+392
+-655
+-549
+808
+-429
+484
+-701
+-617
+804
+36
+-775
+-335
+-927
+714
+-177
+-325
+-413
+-963
+114
+-253
+-789
+-645
+40
+434
+898
+924
+-19
+738
+788
+280
+-121
+594
+-913
+426
+816
+-373
+-45
+340
+-109
+-323
+58
+-249
+940
+-297
+988
+998
+-607
+-745
+-633
+-115
+996
+-893
+696
+400
+848
+500
+-263
+562
+-807
+-105
+-603
+658
+-73
+-863
+448
+680
+-157
+-161
+728
+814
+-477
+-375
+1000
+-631
+-991
+362
+156
+-187
+-705
+-917
+-449
+-741
+556
+440
+-589
+-11
+-359
+-891
+-801
+-153
+-381
+938
+-173
+-243
+618
+-599
+-497
+486
+128
+790
+460
+-27
+-305
+-205
+-215
+324
+-341
+50
+458
+52
+-621
+874
+386
+560
+-569
+-51
+802
+786
+920
+-425
+466
+444
+-507
+-915
+346
+622
+-679
+784
+-689
+388
+508
+-613
+-313
+-447
+564
+-897
+-211
+-225
+-615
+-367
+186
+894
+-65
+-453
+-245
+602
+496
+-651
+-601
+820
+226
+-695
+-119
+372
+180
+94
+214
+542
+648
+-871
+592
+584
+824
+796
+374
+-945
+-311
+516
+942
+-221
+-433
+200
+-465
+-953
+870
+868
+-879
+518
+356
+-223
+682
+990
+-191
+-541
+-951
+-921
+-319
+-169
+-291
+-289
+792
+876
+306
+-491
+326
+-885
+62
+514
+-929
+318
+-231
+632
+44
+-107
+644
+-267
+-343
+-847
+934
+734
+-505
+-351
+574
+-627
+636
+-93
+-431
+-835
+428
+-183
+-151
+2
+-813
+-595
+958
+-141
+692
+-385
+610
+-179
+376
+948
+198
+-675
+964
+-907
+918
+-165
+-1
+406
+748
+-111
+532
+-55
+-281
+740
+504
+236
+-29
+662
+-713
+-537
+196
+-587
+822
+-135
+700
+-35
+674
+-407
+240
+-673
+-669
+-393
+470
+-525
+-875
+-383
+-625
+296
+-85
+-147
+-277
+800
+-691
+-143
+16
+-983
+-303
+290
+-139
+172
+320
+512
+596
+640
+664
+-791
+-783
+-387
+-735
+-467
+-301
+810
+134
+216
+278
+176
+606
+140
+-787
+978
+586
+890
+882
+-753
+-13
+970
+-941
+-175
+-777
+-809
+-441
+-347
+-377
+390
+-423
+842
+642
+190
+302
+438
+704
+310
+-49
+124
+-781
+-287
+724
+-767
+830
+620
+-295
+244
+-159
+-307
+-397
+66
+-237
+314
+-79
+624
+710
+272
+-365
+928
+856
+138
+-479
+520
+832
+862
+760
+846
+-81
+106
+-513
+-193
+650
+782
+-517
+944
+218
+712
+-663
+-559
+462
+-635
+-25
+182
+530
+844
+330
+-833
+102
+-881
+108
+-947
+-763
+-405
+232
+410
+104
+-729
+-149
+-889
+888
+360
+968
+908
+116
+-815
+-129
+522
+-723
+-993
+860
+-503
+926
+-219
+-415
+60
+158
+-609
+-501
+986
+-699
+-583
+884
+212
+210
+-957
+526
+-985
+552
+344
+-395
+-95
+338
+248
+494
+130
+404
+358
+600
+-639
+-125
+-33
+-965
+752
+474
+-731
+758
+-573
+4
+38
+264

Added: test-suite/trunk/MultiSource/Applications/lua/input/wc-input.txt
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/input/wc-input.txt?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/input/wc-input.txt (added)
+++ test-suite/trunk/MultiSource/Applications/lua/input/wc-input.txt Sat Oct  4 15:58:08 2008
@@ -0,0 +1,25 @@
+Subject:      Re: Who was Izchak Miller?
+From:         "Jane D. Anonymous" <nobody at yale.edu>
+Date:         1996/04/28
+Message-Id:   <4lv7bc$oh at news.ycc.yale.edu>
+References:   <317C405E.5DFA at panix.com> <4lk6vl$gde at ns.oar.net>
+To:           75176.2330 at compuserve.com
+Content-Type: text/plain; charset=us-ascii
+Organization: Yale University
+X-Url:        news:4lk6vl$gde at ns.oar.net
+Mime-Version: 1.0
+Newsgroups:   rec.games.roguelike.nethack
+X-Mailer:     Mozilla 1.1N (Macintosh; I; 68K)
+
+Hello there, Izchak Miller was my father.  When I was younger I spent 
+many a night, hunched over the keyboard with a cup of tea, playing 
+nethack with him and my brother.  my dad was a philosopher with a strong 
+weakness for fantasy/sci fi.  I remember when he started to get involved 
+with the Nethack team- my brother's Dungeons and Dragons monster book 
+found a regular place beside my dad's desk. it's nice to see him living 
+on in the game he loved so much :-).  
+                                                                  Tamar Miller
+
+The following is a really long word of 5000 characters:
+
+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!
 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!
 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!
 wwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!
 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!
 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!
 wwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

Added: test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-input.txt
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-input.txt?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-input.txt (added)
+++ test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-input.txt Sat Oct  4 15:58:08 2008
@@ -0,0 +1,2740 @@
+
+                                      1515
+                                   THE PRINCE
+                             by Nicolo Machiavelli
+                          translated by W. K. Marriott
+                              CHAPTER I
+             HOW MANY KINDS OF PRINCIPALITIES THERE ARE,
+                 AND BY WHAT MEANS THEY ARE ACQUIRED
+
+  ALL STATES, all powers, that have held and hold rule over men have
+been and are either republics or principalities.
+  Principalities are either hereditary, in which the family has been
+long established; or they are new.
+  The new are either entirely new, as was Milan to Francesco Sforza,
+or they are, as it were, members annexed to the hereditary state of
+the prince who has acquired them, as was the kingdom of Naples to that
+of the King of Spain.
+  Such dominions thus acquired are either accustomed to live under a
+prince, or to live in freedom; and are acquired either by the arms
+of the prince himself, or of others, or else by fortune or by ability.
+                              CHAPTER II
+                 CONCERNING HEREDITARY PRINCIPALITIES
+
+  I WILL leave out all discussion on republics, inasmuch as in another
+place I have written of them at length, and will address myself only
+to principalities. In doing so I will keep to the order indicated
+above, and discuss how such principalities are to be ruled and
+preserved.
+  I say at once there are fewer difficulties in holding hereditary
+states, and those long accustomed to the family of their prince,
+than new ones; for it is sufficient only not to transgress the customs
+of his ancestors, and to deal prudently with circumstances as they
+arise, for a prince of average powers to maintain himself in his
+state, unless he be deprived of it by some extraordinary and excessive
+force; and if he should be so deprived of it, whenever anything
+sinister happens to the usurper, he will regain it.
+  We have in Italy, for example, the Duke of Ferrara, who could not
+have withstood the attacks of the Venetians in '84, nor those of
+Pope Julius in '10, unless he had been long established in his
+dominions. For the hereditary prince has less cause and less necessity
+to offend; hence it happens that he will be more loved; and unless
+extraordinary vices cause him to be hated, it is reasonable to
+expect that his subjects will be naturally well disposed towards
+him; and in the antiquity and duration of his rule the memories and
+motives that make for change are lost, for one change always leaves
+the toothing for another.
+                             CHAPTER III
+                   CONCERNING MIXED PRINCIPALITIES
+
+  BUT the difficulties occur in a new principality. And firstly, if it
+be not entirely new, but is, as it were, a member of a state which,
+taken collectively, may be called composite, the changes arise chiefly
+from an inherent difficulty which there is in all new
+principalities; for men change their rulers willingly, hoping to
+better themselves, and this hope induces them to take up arms
+against him who rules: wherein they are deceived, because they
+afterwards find by experience they have gone from bad to worse. This
+follows also on another natural and common necessity, which always
+causes a new prince to burden those who have submitted to him with his
+soldiery and with infinite other hardships which he must put upon
+his new acquisition.
+  In this way you have enemies in all those whom you have injured in
+seizing that principality, and you are not able to keep those
+friends who put you there because of your not being able to satisfy
+them in the way they expected, and you cannot take strong measures
+against them, feeling bound to them. For, although one may be very
+strong in armed forces, yet in entering a province one has always need
+of the goodwill of the natives.
+  For these reasons Louis XII, King of France, quickly occupied Milan,
+and as quickly lost it; and to turn him out the first time it only
+needed Lodovico's own forces; because those who had opened the gates
+to him, finding themselves deceived in their hopes of future
+benefit, would not endure the ill-treatment of the new prince. It is
+very true that, after acquiring rebellious provinces a second time,
+they are not so lightly lost afterwards, because the prince, with
+little reluctance, takes the opportunity of the rebellion to punish
+the delinquents, to clear out the suspects, and to strengthen
+himself in the weakest places. Thus to cause France to lose Milan
+the first time it was enough for the Duke Lodovico to raise
+insurrections on the borders; but to cause him to lose it a second
+time it was necessary to bring the whole world against him, and that
+his armies should be defeated and driven out of Italy; which
+followed from the causes above mentioned.
+  Nevertheless Milan was taken from France both the first and the
+second time. The general reasons for the first have been discussed; it
+remains to name those for the second, and to see what resources he
+had, and what any one in his situation would have had for
+maintaining himself more securely in his acquisition than did the King
+of France.
+  Now I say that those dominions which, when acquired, are added to an
+ancient state by him who acquires them, are either of the same country
+and language, or they are not. When they are, it is easier to hold
+them, especially when they have not been accustomed to
+self-government; and to hold them securely it is enough to have
+destroyed the family of the prince who was ruling them; because the
+two peoples, preserving in other things the old conditions, and not
+being unlike in customs, will live quietly together, as one has seen
+in Brittany, Burgundy, Gascony, and Normandy, which have been bound to
+France for so long a time: and, although there may be some
+difference in language, nevertheless the customs are alike, and the
+people will easily be able to get on amongst themselves. He who has
+annexed them, if he wishes to hold them, has only to bear in mind
+two considerations: the one, that the family of their former lord is
+extinguished; the other, that neither their laws nor their taxes are
+altered, so that in a very short time they will become entirely one
+body with the old principality.
+  But when states are acquired in a country differing in language,
+customs, or laws, there are difficulties, and good fortune and great
+energy are needed to hold them, and one of the greatest and most
+real helps would be that he who has acquired them should go and reside
+there. This would make his position more secure and durable, as it has
+made that of the Turk in Greece, who, notwithstanding all the other
+measures taken by him for holding that state, if he had not settled
+there, would not have been able to keep it. Because, if one is on
+the spot, disorders are seen as they spring up, and one can quickly
+remedy them; but if one is not at hand, they heard of only when they
+are one can no longer remedy them. Besides this, the country is not
+pillaged by your officials; the subjects are satisfied by prompt
+recourse to the prince; thus, wishing to be good, they have more cause
+to love him, and wishing to be otherwise, to fear him. He who would
+attack that state from the outside must have the utmost caution; as
+long as the prince resides there it can only be wrested from him
+with the greatest difficulty.
+  The other and better course is to send colonies to one or two
+places, which may be as keys to that state, for it necessary either to
+do this or else to keep there a great number of cavalry and
+infantry. A prince does not spend much on colonies, for with little or
+no expense he can send them out and keep them there, and he offends
+a minority only of the citizens from whom he takes lands and houses to
+give them to the new inhabitants; and those whom he offends, remaining
+poor and scattered, are never able to injure him; whilst the rest
+being uninjured are easily kept quiet, and at the same time are
+anxious not to err for fear it should happen to them as it has to
+those who have been despoiled. In conclusion, I say that these
+colonies are not costly, they are more faithful, they injure less, and
+the injured, as has been said, I being poor and scattered, cannot
+hurt. Upon this, one has to remark that men ought either to be well
+treated or crushed, because they can avenge themselves of lighter
+injuries, of more serious ones they cannot; therefore the injury
+that is to be done to a man ought to be of such a kind that one does
+not stand in fear of revenge.
+  But in maintaining armed men there in place of colonies one spends
+much more, having to consume on the garrison all income from the
+state, so that the acquisition turns into a loss, and many more are
+exasperated, because the whole state is injured; through the
+shifting of the garrison up and down all become acquainted with
+hardship, and all become hostile, and they are enemies who, whilst
+beaten on their own ground, are yet able to do hurt. For every reason,
+therefore, such guards are as useless as a colony is useful.
+  Again, the prince who holds a country differing in the above
+respects ought to make himself the head and defender of his powerful
+neighbours, and to weaken the more powerful amongst them, taking
+care that no foreigner as powerful as himself shall, by any
+accident, get a footing there; for it will always happen that such a
+one will be introduced by those who are discontented, either through
+excess of ambition or through fear, as one has seen already. The
+Romans were brought into Greece by the Aetolians; and in every other
+country where they obtained a footing they were brought in by the
+inhabitants. And the usual course of affairs is that, as soon as a
+powerful foreigner enters a country, all the subject states are
+drawn to him, moved by the hatred which they feel against the ruling
+power. So that in respect to these subject states he has not to take
+any trouble to gain them over to himself, for the whole of them
+quickly rally to the state which he has acquired there. He has only to
+take care that they do not get hold of too much power and too much
+authority, and then with his own forces, and with their goodwill, he
+can easily keep down the more powerful of them, so as to remain
+entirely master in the country. And he who does not properly manage
+this business will soon lose what he has acquired, and whilst he
+does hold it he will have endless difficulties and troubles.
+  The Romans, in the countries which they annexed, observed closely
+these measures; they sent colonies and maintained friendly relations
+with the minor powers, without increasing their strength; they kept
+down the greater, and did not allow any strong foreign powers to
+gain authority. Greece appears to me sufficient for an example. The
+Achaeans and Aetolians were kept friendly by them, the kingdom of
+Macedonia was humbled, Antiochus was driven out; yet the merits of the
+Achaeans and Aetolians never secured for them permission to increase
+their power, nor did the persuasions of Philip ever induce the
+Romans to be his friends without first humbling him, nor did the
+influence of Antiochus make them agree that he should retain any
+lordship over the country. Because the Romans did in these instances
+what all prudent princes ought to do, who have to regard not only
+present troubles, but also future ones, for which they must prepare
+with every energy, because, when foreseen, it is easy to remedy
+them; but if you wait until they approach, the medicine is no longer
+in time because the malady has become incurable; for it happens in
+this, as the physicians say it happens in hectic fever, that in the
+beginning of the malady it is easy to cure but difficult to detect,
+but in the course of time, not having been either detected or
+treated in the beginning, it becomes easy to detect but difficult to
+cure. Thus it happens in affairs of state, for when the evils that
+arise have been foreseen (which it is only given to a wise man to
+see), they can be quickly redressed, but when, through not having been
+foreseen, they have been permitted to grow in a way that every one can
+see them. there is no longer a remedy. Therefore, the Romans,
+foreseeing troubles, dealt with them at once, and, even to avoid a
+war, would not let them come to a head, for they knew that war is
+not to be avoided, but is only put off to the advantage of others;
+moreover they wished to fight with Philip and Antiochus in Greece so
+as not to have to do it in Italy; they could have avoided both, but
+this they did not wish; nor did that ever please them which is for
+ever in the mouths of the wise ones of our time:- Let us enjoy the
+benefits of the time- but rather the benefits of their own valour
+and prudence, for time drives everything before it, and is able to
+bring with it good as well as evil, and evil as well as good.
+  But let us turn to France and inquire whether she has done any of
+the things mentioned. I will speak of Louis [XII] (and not of
+Charles [VIII]) as the one whose conduct is the better to be observed,
+he having held possession of Italy for the longest period; and you
+will see that he has done the opposite to those things which ought
+to be done to retain a state composed of divers elements.
+  King Louis was brought into Italy by the ambition of the
+Venetians, who desired to obtain half the state of Lombardy by his
+intervention. I will not blame the course taken by the king,
+because, wishing to get a foothold in Italy, and having no friends
+there- seeing rather that every door was shut to him owing to the
+conduct of Charles- he was forced to accept those friendships which he
+could get, and he would have succeeded very quickly in his design if
+in other matters he had not made some mistakes. The king, however,
+having acquired Lombardy, regained at once the authority which Charles
+had lost: Genoa yielded; the Florentines became his friends; the
+Marquess of Mantua, the Duke of Ferrara, the Bentivoglio, my lady of
+Forli, the Lords of Faenza, of Pesaro, of Rimini, of Camerino, of
+Piombino, the Lucchesi, the Pisans, the Sienese- everybody made
+advances to him to become his friend. Then could the Venetians realize
+the rashness of the course taken by them, which, in order that they
+might secure two towns in Lombardy, had made the king master of
+two-thirds of Italy.
+  Let any one now consider with what little difficulty the king
+could have maintained his position in Italy had he observed the
+rules above laid down, and kept all his friends secure and
+protected; for although they were numerous they were both weak and
+timid, some afraid of the Church, some of the Venetians, and thus they
+would always have been forced to stand in with him, and by their means
+he could easily have made himself secure against those who remained
+powerful. But he was no sooner in Milan than he did the contrary by
+assisting Pope Alexander to occupy the Romagna. It never occurred to
+him that by this action he was weakening himself, depriving himself of
+friends and those who had thrown themselves into his lap, whilst he
+aggrandized the Church by adding much temporal power to the spiritual,
+thus giving it great authority. And having committed this prime error,
+he was obliged to follow it up, so much so that, to put an end to
+the ambition of Alexander, and to prevent his becoming the master of
+Tuscany, he was himself forced to come into Italy.
+  And as if it were not enough to have aggrandized the Church, and
+deprived himself friends, he, wishing to have the kingdom of Naples,
+divides it with the King of Spain, and where he was the prime
+arbiter of Italy he takes an associate, so that the ambitious of
+that country and the malcontents of his own should have where to
+shelter; and whereas he could have left in the kingdom his own
+pensioner as king, he drove him out, to put one there who was able
+to drive him, Louis, out in turn.
+  The wish to acquire is in truth very natural and common, and men
+always do so when they can, and for this they will be praised not
+blamed; but when they cannot do so, yet wish to do so by any means,
+then there is folly and blame. Therefore, if France could have
+attacked Naples with her own forces she ought to have done so; if
+she could not, then she ought not to have divided it. And if the
+partition which she made with the Venetians in Lombardy was
+justified by the excuse that by it she got a foothold in Italy, this
+other partition merited blame, for it had not the excuse of that
+necessity.
+  Therefore Louis made these five errors: he destroyed the minor
+powers, he increased the strength of one of the greater powers in
+Italy, he brought in a foreign power, he did not settle in the
+country, he did not send colonies. Which errors, if he had lived, were
+not enough to injure him had he not made a sixth by taking away
+their dominions from the Venetians; because, had he not aggrandized
+the Church, nor brought Spain into Italy, it would have been very
+reasonable and necessary to humble them; but having first taken
+these steps, he ought never to have consented to their ruin, for they,
+being powerful, would always have kept off others from designs on
+Lombardy, to which the Venetians would never have consented except
+to become masters themselves there; also because the others would
+not wish to take Lombardy from France in order to give it to the
+Venetians, and to run counter to both they would not have had the
+courage.
+  And if any one should say: King Louis yielded the Romagna to
+Alexander and the kingdom to Spain to avoid war, I answer for the
+reasons given above that a blunder ought never be perpetrated to avoid
+war, because it is not to be avoided, but is only deferred to your
+disadvantage. And if another should allege the pledge which the king
+had given to the Pope that he would assist him in the enterprise, in
+exchange for the dissolution of his marriage and for the hat to Rouen,
+to that I reply what I shall write later on concerning the faith of
+princes, and how it ought to be kept.
+  Thus King Louis lost Lombardy by not having followed any of the
+conditions observed by those who have taken possession of countries
+and wished to retain them. Nor is there any miracle in this, but
+much that is reasonable and quite natural. And on these matters I
+spoke at Nantes with Rouen, when Valentino,* as Cesare Borgia, the son
+of Pope Alexander, was usually called, occupied the Romagna, and on
+Cardinal Rouen observing to me that the Italians did not understand
+war, I replied to him that the French did not understand statecraft,
+meaning that otherwise they would not have allowed the Church to reach
+such greatness. And in fact it has been seen that the greatness of the
+Church and of Spain in Italy has been caused by France, and her ruin
+may be attributed to them. From this a general rule is drawn which
+never or rarely fails: that he who is the cause of another becoming
+powerful is ruined; because that predominancy has been brought about
+either by astuteness or else by force, and both are distrusted by
+him who has been raised to power.
+
+  * So called- in Italian- from the duchy of Valentinois, conferred on
+him by Louis XII.
+                              CHAPTER IV
+          WHY THE KINGDOM OF DARIUS, CONQUERED BY ALEXANDER,
+    DID NOT REBEL AGAINST THE SUCCESSORS OF ALEXANDER AT HIS DEATH
+
+  CONSIDERING the difficulties which men have had to hold a newly
+acquired state, some might wonder how, seeing that Alexander the Great
+became the master of Asia in a few years, and died whilst it was yet
+scarcely settled (whence it might appear reasonable that the whole
+empire would have rebelled), nevertheless his successors maintained
+themselves, and had to meet no other difficulty than that which
+arose among themselves from their own ambitions.
+  I answer that the principalities of which one has record are found
+to be governed in two different ways: either by a prince, with a
+body of servants, who assist him to govern the kingdom as ministers by
+his favour and permission; or by a prince and barons, who hold that
+dignity by antiquity of blood and not by the grace of the prince. Such
+barons have states and their own subjects, who recognize them as lords
+and hold them in natural affection. Those states that are governed
+by a prince and his servants hold their prince in more
+consideration, because in all the country there is no one who is
+recognized as superior to him, and if they yield obedience to
+another they do it as to a minister and official, and they do not bear
+him any particular affection.
+  The examples of these two governments in our time are the Turk and
+the King of France. The entire monarchy of the Turk is governed by one
+lord, the others are his servants; and, dividing his kingdom into
+sanjaks, he sends there different administrators, and shifts and
+changes them as he chooses. But the King of France is placed in the
+midst of an ancient body of lords, acknowledged by their own subjects,
+and beloved by them; they have their own prerogatives, nor can the
+king take these away except at his peril. Therefore, he who
+considers both of these states will recognize great difficulties in
+seizing the state of the Turk, but, once it is conquered, great ease
+in holding it. The causes of the difficulties in seizing the kingdom
+of the Turk are that the usurper cannot be called in by the princes of
+the kingdom, nor can he hope to be assisted in his designs by the
+revolt of those whom the lord has around him. This arises from the
+reasons given above; for his ministers, being all slaves and
+bondmen, can only be corrupted with great difficulty, and one can
+expect little advantage from them when they have been corrupted, as
+they cannot carry the people with them, for the reasons assigned.
+Hence, he who attacks the Turk must bear in mind that he will find him
+united, and he will have to rely more on his own strength than on
+the revolt of others; but, if once the Turk has been conquered, and
+routed in the field in such a way that he cannot replace his armies,
+there is nothing to fear but the family of the prince, and, this being
+exterminated, there remains no one to fear, the others having no
+credit with the people; and as the conqueror did not rely on them
+before his victory, so he ought not to fear them after it.
+  The contrary happens in kingdoms governed like that of France,
+because one can easily enter there by gaining over some baron of the
+kingdom, for one always finds malcontents and such as desire a change.
+Such men, for the reasons given, can open the way into the state and
+render the victory easy; but if you wish to hold it afterwards, you
+meet with infinite difficulties, both from those who have assisted you
+and from those you have crushed. Nor is it enough for you to have
+exterminated the family of the prince, because the lords that remain
+make themselves the heads of fresh movements against you, and as you
+are unable either to satisfy or exterminate them, that state is lost
+whenever time brings the opportunity.
+  Now if you will consider what was the nature of the government of
+Darius, you will find it similar to the kingdom of the Turk, and
+therefore it was only necessary for Alexander, first to overthrow
+him in the field, and then to take the country from him. After which
+victory, Darius being killed, the state remained secure to
+Alexander, for the above reasons. And if his successors had been
+united they would have enjoyed it securely and at their ease, for
+there were no tumults raised in the kingdom except those they provoked
+themselves.
+  But it is impossible to hold with such tranquillity states
+constituted like that of France. Hence arose those frequent rebellions
+against the Romans in Spain, France, and Greece, owing to the many
+principalities there were in these states, of which, as long as the
+memory of them endured, the Romans always held an insecure possession;
+but with the power and long continuance of the empire the memory of
+them passed away, and the Romans then became secure possessors. And
+when fighting afterwards amongst themselves, each one was able to
+attach to himself his own parts of the country, according to the
+authority he had assumed there; and the family of the former lord
+being exterminated, none other than the Romans were acknowledged.
+  When these things are remembered no one will marvel at the ease with
+which Alexander held the Empire of Asia, or at the difficulties
+which others have had to keep an acquisition, such as Pyrrhus and many
+more; this is not occasioned by the little or abundance of ability
+in the conqueror, but by the want of uniformity in the subject state.
+                              CHAPTER V
+     CONCERNING THE WAY TO GOVERN CITIES OR PRINCIPALITIES WHICH
+         LIVED UNDER THEIR OWN LAWS BEFORE THEY WERE ANNEXED
+
+  WHENEVER those states which have been acquired as stated have been
+accustomed to live under their own laws and in freedom, there are
+three courses for those who wish to hold them: the first is to ruin
+them, the next is to reside there in person, the third is to permit
+them to live under their own laws, drawing a tribute, and establishing
+within it an oligarchy which will keep it friendly to you. Because
+such a government, being created by the prince, knows that it cannot
+stand without his friendship and interest, and does its utmost to
+support him; and therefore he who would keep a city accustomed to
+freedom will hold it more easily by the means of its own citizens than
+in any other way.
+  There are, for example, the Spartans and the Romans. The Spartans
+held Athens and Thebes, establishing there an oligarchy,
+nevertheless they lost them. The Romans, in order to hold Capua,
+Carthage, and Numantia, dismantled them, and did not lose them. They
+wished to hold Greece as the Spartans held it, making it free and
+permitting its laws, and did not succeed. So to hold it they were
+compelled to dismantle many cities in the country, for in truth
+there is no safe way to retain them otherwise than by ruining them.
+And he who becomes master of a city accustomed to freedom and does not
+destroy it, may expect to be destroyed by it, for in rebellion it
+has always the watch-word of liberty and its ancient privileges as a
+rallying point, which neither time nor benefits will ever cause it
+to forget. And what ever you may do or provide against, they never
+forget that name or their privileges unless they are disunited or
+dispersed but at every chance they immediately rally to them, as
+Pisa after the hundred years she had been held in bondage by the
+Florentines.
+  But when cities or countries are accustomed to live under a
+prince, and his family is exterminated, they, being on the one hand
+accustomed to obey and on the other hand not having the old prince,
+cannot agree in making one from amongst themselves, and they do not
+know how to govern themselves. For this reason they are very slow to
+take up arms, and a prince can gain them to himself and secure them
+much more easily. But in republics there is more vitality, greater
+hatred, and more desire for vengeance, which will never permit them to
+allow the memory of their former liberty to rest; so that the safest
+way is to destroy them or to reside there.
+                              CHAPTER VI
+           CONCERNING NEW PRINCIPALITIES WHICH ARE ACQUIRED
+                    BY ONE'S OWN ARMS AND ABILITY
+
+  LET no one be surprised if, in speaking of entirely new
+principalities as I shall do, I adduce the highest examples both of
+prince and of state; because men, walking almost always in paths
+beaten by others, and following by imitation their deeds, are yet
+unable to keep entirely to the ways of others or attain to the power
+of those they imitate. A wise man ought always to follow the paths
+beaten by great men, and to imitate those who have been supreme, so
+that if his ability does not equal theirs, at least it will savour
+of it. Let him act like the clever archers who, designing to hit the
+mark which yet appears too far distant, and knowing the limits to
+which the strength of their bow attains, take aim much higher than the
+mark, not to reach by their strength or arrow to so great a height,
+but to be able with the aid of so high an aim to hit the mark they
+wish to reach.
+  I say, therefore, that in entirely new principalities, where there
+is a new prince, more or less difficulty is found in keeping them,
+accordingly as there is more or less ability in him who has acquired
+the state. Now, as the fact of becoming a prince from a private
+station presupposes either ability or fortune, it is clear that one or
+other of these two things will mitigate in some degree many
+difficulties. Nevertheless, he who has relied least on fortune is
+established the strongest. Further, it facilitates matters when the
+prince, having no other state, is compelled to reside there in person.
+  But to come to those who, by their own ability and not through
+fortune, have risen to be princes, I say that Moses, Cyrus, Romulus,
+Theseus, and such like are the most excellent examples. And although
+one may not discuss Moses, he having been a mere executor of the
+will of God, yet he ought to be admired, if only for that favour which
+made him worthy to speak with God. But in considering Cyrus and others
+who have acquired or founded kingdoms, all will be found admirable;
+and if their particular deeds and conduct shall be considered, they
+will not be found inferior to those of Moses, although he had so great
+a preceptor. And in examining their actions and lives one cannot see
+that they owed anything to fortune beyond opportunity, which brought
+them the material to mould into the form which seemed best to them.
+Without that opportunity their powers of mind would have been
+extinguished, and without those powers the opportunity would have come
+in vain.
+  It was necessary, therefore, to Moses that he should find the people
+of Israel in Egypt enslaved and oppressed by the Egyptians, in order
+that they should be disposed to follow him so as to be delivered out
+of bondage. It was necessary that Romulus should not remain in Alba,
+and that he should be abandoned at his birth, in order that he
+should become King of Rome and founder of the fatherland. It was
+necessary that Cyrus should find the Persians discontented with the
+government of the Medes, and the Medes soft and effeminate through
+their long peace. Theseus could not have shown his ability had he
+not found the Athenians dispersed. These opportunities, therefore,
+made those men fortunate, and their high ability enabled them to
+recognize the opportunity whereby their country was ennobled and
+made famous.
+  Those who by valorous ways become princes, like these men, acquire a
+principality with difficulty, but they it with ease. The
+difficulties they have in acquiring it arise in part from the new
+rules and methods which they are forced to introduce to establish
+their government and its security. And it ought to be remembered
+that there is nothing more difficult to take in hand, more perilous to
+conduct, or more uncertain in its success, than to take the lead in
+the introduction of a new order of things. Because the innovator has
+for enemies all those who have done well under the old conditions, and
+lukewarm defenders in those who may do well under the new. This
+coolness arises partly from fear of the opponents, who have the laws
+on their side, and partly from the incredulity of men, who do not
+readily believe in new things until they have had a long experience of
+them. Thus it happens that whenever those who are hostile have the
+opportunity to attack they do it like partisans, whilst the others
+defend lukewarmly, in such wise that the prince is endangered along
+with them.
+  It is necessary, therefore, if we desire to discuss this matter
+thoroughly, to inquire whether these innovators can rely on themselves
+or have to depend on others: that is to say, whether, to consummate
+their enterprise, have they to use prayers or can they use force? In
+the first instance they always succeed badly, and never compass
+anything; but when they can rely on themselves and use force, then
+they are rarely endangered. Hence it is that all armed prophets have
+conquered, and the unarmed ones have been destroyed. Besides the
+reasons mentioned, the nature of the people is variable, and whilst it
+is easy to persuade them, it is difficult to fix them in that
+persuasion. And thus it is necessary to take such measures that,
+when they believe no longer, it may be possible to make them believe
+by force.
+  If Moses, Cyrus, Theseus, and Romulus had been unarmed they could
+not have enforced their constitutions for long- as happened in our
+time to Fra Girolamo Savonarola, who was ruined with his new order
+of things immediately the multitude believed in him no longer, and
+he had no means of keeping steadfast those who believed or of making
+the unbelievers to believe. Therefore such as these have great
+difficulties in consummating their enterprise, for all their dangers
+are in the ascent, yet with ability they will overcome them; but
+when these are overcome, and those who envied them their success are
+exterminated, they will begin to be respected, and they will
+continue afterwards powerful, secure, honoured, and happy.
+  To these great examples I wish to add a lesser one; still it bears
+some resemblance to them, and I wish it to suffice me for all of a
+like kind: it is Hiero the Syracusan. This man rose from a private
+station to be Prince of Syracuse, nor did he, either, owe anything
+to fortune but opportunity; for the Syracusans, being oppressed, chose
+him for their captain, afterwards he was rewarded by being made
+their prince. He was of so great ability, even as a private citizen,
+that one who writes of him says he wanted nothing but a kingdom to
+be a king. This man abolished the old soldiery, organized the new,
+gave up old alliances, made new ones; and as he had his own soldiers
+and allies, on such foundations he was able to build any edifice:
+thus, whilst he had endured much trouble in acquiring, he had but
+little in keeping.
+                             CHAPTER VII
+           CONCERNING NEW PRINCIPALITIES WHICH ARE ACQUIRED
+           EITHER BY THE ARMS OF OTHERS OR BY GOOD FORTUNE
+
+  THOSE who solely by good fortune become princes from being private
+citizens have little trouble in rising, but much in keeping atop; they
+have not any difficulties on the way up, because they fly, but they
+have many when they reach the summit. Such are those to whom some
+state is given either for money or by the favour of him who bestows
+it; as happened to many in Greece, in the cities of Ionia and of the
+Hellespont, where princes were made by Darius, in order that they
+might hold the cities both for his security and his glory; as also
+were those emperors who, by the corruption of the soldiers, from being
+citizens came to empire. Such stand simply upon the goodwill and the
+fortune of him who has elevated them- two most inconstant and unstable
+things. Neither have they the knowledge requisite for the position;
+because, unless they are men of great worth and ability, it is not
+reasonable to expect that they should know how to command, having
+always lived in a private condition; besides, they cannot hold it
+because they have not forces which they can keep friendly and
+faithful.
+  States that rise unexpectedly, then, like all other things in nature
+which are born and grow rapidly, cannot have their foundations and
+relations with other states fixed in such a way that the first storm
+will not overthrow them; unless, as is said, those who unexpectedly
+become princes are men of so much ability that they know they have
+to be prepared at once to hold that which fortune has thrown into
+their laps, and that those foundations, which others have laid
+before they became princes, they must lay afterwards.
+  Concerning these two methods of rising to be a prince by ability
+or fortune, I wish to adduce two examples within our own recollection,
+and these are Francesco Sforza and Cesare Borgia. Francesco, by proper
+means and with great ability, from being a private person rose to be
+Duke of Milan, and that which he had acquired with a thousand
+anxieties he kept with little trouble. On the other hand, Cesare
+Borgia, called by the people Duke Valentino, acquired his state during
+the ascendancy of his father, and on its decline he lost it,
+notwithstanding that he had taken every measure and done all that
+ought to be done by a wise and able man to fix firmly his roots in the
+states which the arms and fortunes of others had bestowed on him.
+  Because, as is stated above, he who has not first laid his
+foundations may be able with great ability to lay them afterwards, but
+they will be laid with trouble to the architect and danger to the
+building. If, therefore, all the steps taken by the duke be
+considered, it will be seen that he laid solid foundations for his
+future power, and I do not consider it superfluous to discuss them,
+because I do not know what better precepts to give a new prince than
+the example of his actions; and if his dispositions were of no
+avail, that was not his fault, but the extraordinary and extreme
+malignity of fortune.
+  Alexander VI, in wishing to aggrandize the duke, his son, had many
+immediate and prospective difficulties. Firstly, he did not see his
+way to make him master of any state that was not a state of the
+Church; and if he was willing to rob the Church he knew that the
+Duke of Milan and the Venetians would not consent, because Faenza
+and Rimini were already under the protection of the Venetians. Besides
+this, he saw the arms of Italy, especially those by which he might
+have been assisted, in hands that would fear the aggrandizement of the
+Pope, namely, the Orsini and the Colonna and their following. It
+behoved him, therefore, to upset this state of affairs and embroil the
+powers, so as to make himself securely master of part of their states.
+This was easy for him to do, because he found the Venetians, moved
+by other reasons, inclined to bring back the French into Italy; he
+would not only not oppose this, but he would render it more easy by
+dissolving the former marriage of King Louis. Therefore the king
+came into Italy with the assistance of the Venetians and the consent
+of Alexander. He was no sooner in Milan than the Pope had soldiers
+from him for the attempt on the Romagna, which yielded to him on the
+reputation of the king. The duke, therefore, having acquired the
+Romagna and beaten the Colonna, while wishing to hold that and to
+advance further, was hindered by two things: the one, his forces did
+not appear loyal to him, the other, the goodwill of France: that is to
+say, he feared that the forces of the Orsini, which was using, would
+not stand to him, that not only might they hinder him from winning
+more, but might themselves seize what he had won, and that the King
+might also do the same. Of the Orsini he had a warning when, after
+taking Faenza and attacking Bologna, he saw them go very unwillingly
+to that attack. And as to the king, he learned his mind when he
+himself, after taking the duchy of Urbino, attacked Tuscany, and the
+king made him desist from that undertaking; hence the duke decided
+to depend no more upon the arms and the luck of others.
+  For the first thing he weakened the Orsini and Colonna parties in
+Rome, by gaining to himself all their adherents who were gentlemen,
+making them his gentlemen, giving them good pay, and, according to
+their rank, honouring them with office and command in such a way
+that in a few months all attachment to the factions was destroyed
+and turned entirely to the duke. After this he awaited an
+opportunity to crush the Orsini, having scattered the adherents of the
+Colonna. This came to him soon and he used it well; for the Orsini,
+perceiving at length that the aggrandizement of the duke and the
+Church was ruin to them, called a meeting at Magione, in the territory
+of Perugia. From this sprung the rebellion at Urbino and the tumults
+in the Romagna, with endless dangers to the duke, all of which he
+overcame with the help of the French. Having restored his authority,
+not to leave it at risk by trusting either to the French or other
+outside forces, he had recourse to his wiles, and he knew so well
+how to conceal his mind that, by the mediation of Signor Paolo
+[Orsini]- whom the duke did not fail to secure with all kinds of
+attention, giving him money, apparel, and horses- the Orsini were
+reconciled, so that their simplicity brought them into his power at
+Sinigaglia. Having exterminated the leaders, and turned their
+partisans into his friends, the duke had laid sufficiently good
+foundations to his power, having all the Romagna and the duchy of
+Urbino; and the people now beginning to appreciate their prosperity,
+he gained them all over to himself. And as this point is worthy of
+notice, and to be imitated by others, I am not willing to leave it
+out.
+  When the duke occupied the Romagna he found it under the rule of
+weak masters, who rather plundered their subjects than ruled them, and
+gave them more cause for disunion than for union, so that the
+country was full of robbery, quarrels, and every kind of violence; and
+so, wishing to bring back peace and obedience to authority, he
+considered it necessary to give it a good governor. Thereupon he
+promoted Messer Ramiro d'Orco [de Lorqua], a swift and cruel man, to
+whom he gave the fullest power. This man in a short time restored
+peace and unity with the greatest success. Afterwards the duke
+considered that it was not advisable to confer such excessive
+authority, for he had no doubt but that he would become odious, so
+he set up a court of judgment in the country, under a most excellent
+president, wherein all cities had their advocates. And because he knew
+that the past severity had caused some hatred against himself, so,
+to clear himself in the minds of the people, and gain them entirely to
+himself, he desired to show that, if any cruelty had been practised,
+it had not originated with him, but in the natural sternness of the
+minister. Under this pretence he took Ramiro, and one morning caused
+him to be executed and left on the piazza at Cesena with the block and
+a bloody knife at his side. The barbarity of this spectacle caused the
+people to be at once satisfied and dismayed.
+  But let us return whence we started. I say that the duke, finding
+himself now sufficiently powerful and partly secured from immediate
+dangers by having armed himself in his own way, and having in a
+great measure crushed those forces in his vicinity that could injure
+him if he wished to proceed with his conquest, had next to consider
+France, for he knew that the king, who too late was aware of his
+mistake, would not support him. And from this time he began to seek
+new alliances and to temporize with France in the expedition which she
+was making towards the kingdom of Naples against the Spaniards who
+were besieging Gaeta. It was his intention to secure himself against
+them, and this he would have quickly accomplished had Alexander lived.
+  Such was his line of action as to present affairs. But as to the
+future he had to fear, in the first place, that a new successor to the
+Church might not be friendly to him and might seek to take from him
+that which Alexander had given him, so he decided to act in four ways.
+Firstly, by exterminating the families of those lords whom he had
+despoiled, so as to take away that pretext from the Pope. Secondly, by
+winning to himself all the gentlemen of Rome, so as to be able to curb
+the Pope with their aid, as has been observed. Thirdly, by
+converting the college more to himself. Fourthly, by acquiring so much
+power before the Pope should die that he could by his own measures
+resist the first shock. Of these four things, at the death of
+Alexander, he had accomplished three. For he had killed as many of the
+dispossessed lords as he could lay hands on, and few had escaped; he
+had won over the Roman gentlemen, and he had the most numerous party
+in the college. And as to any fresh acquisition, he intended to become
+master of Tuscany, for he already possessed Perugia and Piombino,
+and Pisa was under his protection. And as he had no longer to study
+France (for the French were already driven out of the kingdom of
+Naples by the Spaniards, and in this way both were compelled to buy
+his goodwill), he pounced down upon Pisa. After this, Lucca and
+Siena yielded at once, partly through hatred and partly through fear
+of the Florentines; and the Florentines would have had no remedy had
+he continued to prosper, as he was prospering the year that
+Alexander died, for he had acquired so much power and reputation
+that he would have stood by himself, and no longer have depended on
+the luck and the forces of others, but solely on his own power and
+ability.
+  But Alexander died five years after he had first drawn the sword. He
+left the duke with the state of Romagna alone consolidated, with the
+rest in the air, between two most powerful hostile armies, and sick
+unto death. Yet there were in the duke such boldness and ability,
+and he knew so well how men are to be won or lost, and so firm were
+the foundations which in so short a time he had laid, that if he had
+not had those armies on his back, or if he had been in good health, he
+would have overcome all difficulties. And it is seen that his
+foundations were good, for the Romagna awaited him for more than a
+month. In Rome, although but half alive, he remained secure; and
+whilst the Baglioni, the Vitelli, and the Orsini might come to Rome,
+they could not effect anything against him. If he could not have
+made Pope him whom he wished, at least the one whom he did not wish
+would not have been elected. But if he had been in sound health at the
+death of Alexander, everything would have been easy to him. On the day
+that Julius II was elected, he told me that he had thought of
+everything that might occur at the death of his father, and had
+provided a remedy for all, except that he had never anticipated
+that, when the death did happen, he himself would be on the point to
+die.
+  When all the actions of the duke are recalled, I do not know how
+to blame him, but rather it appears to me, as I have said, that I
+ought to offer him for imitation to all those who, by the fortune or
+the arms of others, are raised to government. Because he, having a
+lofty spirit and far-reaching aims, could not have regulated his
+conduct otherwise, and only the shortness of the life of Alexander and
+his own sickness frustrated his designs. Therefore, he who considers
+it necessary to secure himself in his new principality, to win
+friends, to overcome either by force or fraud, to make himself beloved
+and feared by the people, to be followed and revered by the
+soldiers, to exterminate those who have power or reason to hurt him,
+to change the old order of things for new, to be severe and
+gracious, magnanimous and liberal, to destroy a disloyal soldiery
+and to create new, to maintain friendship with kings and princes in
+such a way that they must help him with zeal and offend with
+caution, cannot find a more lively example than the actions of this
+man.
+  Only can he be blamed for the election of Julius II, in whom he made
+a bad choice, because, as is said, not being able to elect a Pope to
+his own mind, he could have hindered any other from being elected
+Pope; and he ought never to have consented to the election of any
+cardinal whom he had injured or who had cause to fear him if they
+became pontiffs. For men injure either from fear or hatred. Those whom
+he had injured, amongst others, were San Pietro ad Vincula, Colonna,
+San Giorgio, and Ascanio.* Any one of the others, on becoming Pope,
+would have had to fear him, Rouen and the Spaniards excepted; the
+latter from their relationship and obligations, the former from his
+influence, the kingdom of France having relations with him. Therefore,
+above everything, the duke ought to have created a Spaniard Pope, and,
+failing him, he ought to have consented to Rouen and not San Pietro ad
+Vincula. He who believes that new benefits will cause great personages
+to forget old injuries is deceived. Therefore, the duke erred in his
+choice, and it was the cause of his ultimate ruin.
+
+  * Julius II had been Cardinal of San Pietro ad Vincula; San
+Giorgio was Raffaells Riaxis, and Ascanio was Cardinal Ascanio Sforza.
+                             CHAPTER VIII
+          CONCERNING THOSE WHO HAVE OBTAINED A PRINCIPALITY
+                            BY WICKEDNESS
+
+  ALTHOUGH a prince may rise from a private station in two ways,
+neither of which can be entirely attributed to fortune or genius,
+yet it is manifest to me that I must not be silent on them, although
+one could be more copiously treated when I discuss republics. These
+methods are when, either by some wicked or nefarious ways, one ascends
+to the principality, or when by the favour of his fellow-citizens a
+private person becomes the prince of his country. And speaking of
+the first method, it will be illustrated by two examples- one ancient,
+the other modern- and without entering further into the subject, I
+consider these two examples will suffice those who may be compelled to
+follow them.
+  Agathocles, the Sicilian, became King of Syracuse not only from a
+private but from a low and abject position. This man, the son of a
+potter, through all the changes in his fortunes always led an infamous
+life. Nevertheless, he accompanied his infamies with so much ability
+of mind and body that, having devoted himself to the military
+profession, he rose through its ranks to be Praetor of Syracuse. Being
+established in that position, and having deliberately resolved to make
+himself prince and to seize by violence, without obligation to others,
+that which had been conceded to him by assent, he came to an
+understanding for this purpose with Hamilcar, the Carthaginian, who,
+with his army, was fighting in Sicily. One morning he assembled the
+people and senate of Syracuse, as if he had to discuss with them
+things relating to the Republic, and at a given signal the soldiers
+killed all the senators and the richest of the people; these dead,
+he seized and held the princedom of that city without any civil
+commotion. And although he was twice routed by the Carthaginians,
+and ultimately besieged, yet not only was he able to defend his
+city, but leaving part of his men for its defence, with the others
+he attacked Africa, and in a short time raised the siege of
+Syracuse. The Carthaginians, reduced to extreme necessity, were
+compelled to come to terms with Agathocles, and, leaving Sicily to
+him, had to be content with the possession of Africa.
+  Therefore, he who considers the actions and the genius of this man
+will see nothing, or little, which can be attributed to fortune,
+inasmuch as he attained pre-eminence, as is shown above, not by the
+favour of any one, but step by step in the military profession,
+which steps were gained with a thousand troubles and perils, and
+were afterwards boldly held by him with many hazards and dangers.
+Yet it cannot be called talent to slay fellow-citizens, to deceive
+friends, to be without faith, without mercy, without religion; such
+methods may gain empire, but not glory. Still, if the courage of
+Agathocles in entering into and extricating himself from dangers be
+considered, together with his greatness of mind in enduring overcoming
+hardships, it cannot be seen why he should be esteemed less than the
+most notable captain. Nevertheless, his barbarous cruelty and
+inhumanity with infinite wickednesses do not permit him to be
+celebrated among the most excellent men. What he achieved cannot be
+attributed either to fortune or to genius.
+  In our times, during the rule of Alexander VI, Oliverotto da
+Fermo, having been left an orphan many years before, was brought up by
+his maternal uncle, Giovanni Fogliani, and in the early days of his
+youth sent to fight under Paolo Vitelli, that, being trained under his
+discipline, he might attain some high position in the military
+profession. After Paolo died, he fought under his brother
+Vitellozzo, and in a very short time, being endowed with wit and a
+vigorous body and mind, he became the first man in his profession. But
+it appearing to him a paltry thing to serve under others, he resolved,
+with the aid of some citizens of Fermo, to whom the slavery of their
+country was dearer than its liberty, and with the help of the Vitelli,
+to seize Fermo. So he wrote to Giovanni Fogliani that, having been
+away from home for many years, he wished to visit him and his city,
+and in some measure to look into his patrimony; and although he had
+not laboured to acquire anything except honour, yet, in order that the
+citizens should see he had not spent his time in vain, he desired to
+come honourably, so would be accompanied by one hundred horsemen,
+his friends and retainers; and he entreated Giovanni to arrange that
+he should be received honourably by the citizens of Fermo, all of
+which would be not only to his honour, but also to that of Giovanni
+himself, who had brought him up.
+  Giovanni, therefore, did not fail in any attentions due to his
+nephew, and he caused him to be honourably received by the Fermans,
+and he lodged him in his own house, where, having passed some days,
+and having arranged what was necessary for his wicked designs,
+Oliverotto gave a solemn banquet to which he invited Giovanni Fogliani
+and the chiefs of Fermo. When the viands and all the other
+entertainments that are usual in such banquets were finished,
+Oliverotto artfully began certain grave discourses, speaking of the
+greatness of Pope Alexander and his son Cesare, and of their
+enterprises, to which discourse Giovanni and others answered; but he
+rose at once, saying that such matters ought to be discussed in a more
+private place, and he betook himself to a chamber, whither Giovanni
+and the rest of the citizens went in after him. No sooner were they
+seated than soldiers issued from secret places and slaughtered
+Giovanni and the rest. After these murders Oliverotto, mounted on
+horseback, rode up and down the town and besieged the chief magistrate
+in the palace, so that in fear the people were forced to obey him, and
+to form a government, of which he made himself the prince. He killed
+all the malcontents who were able to injure him, and strengthened
+himself with new civil and military ordinances, in such a way that, in
+the year during which he held the principality, not only was he secure
+in the city of Fermo, but he had become formidable to all his
+neighbours. And his destruction would have been as difficult as that
+of Agathocles if he had not allowed himself to be overreached by
+Cesare Borgia, who took him with the Orsini and Vitelli at Sinigaglia,
+as was stated above. Thus one year after he had committed this
+parricide, he was strangled, together with Vitellozzo, whom he had
+made his leader in valour and wickedness.
+  Some may wonder how it can happen that Agathocles, and his like,
+after infinite treacheries and cruelties, should live for long
+secure in his country, and defend himself from external enemies, and
+never be conspired against by his own citizens; seeing that many
+others, by means of cruelty, have never been able even in peaceful
+times to hold the state, still less in the doubtful times of war. I
+believe that this follows from severities being badly or properly
+used. Those may be called properly used, if of evil it is lawful to
+speak well, that are applied at one blow and are necessary to one's
+security, and that are not persisted in afterwards unless they can
+be turned to the advantage of the subjects. The badly employed are
+those which, notwithstanding they may be few in the commencement,
+multiply with time rather than decrease. Those who practise the
+first system are able, by aid of God or man, to mitigate in some
+degree their rule, as Agathocles did. It is impossible for those who
+follow the other to maintain themselves.
+  Hence it is to be remarked that, in seizing a state, the usurper
+ought to examine closely into all those injuries which it is necessary
+for him to inflict, and to do them all at one stroke so as not to have
+to repeat them daily; and thus by not unsettling men he will be able
+to reassure them, and win them to himself by benefits. He who does
+otherwise, either from timidity or evil advice, is always compelled to
+keep the knife in his hand; neither can he rely on his subjects, nor
+can they attach themselves to him, owing to their continued and
+repeated wrongs. For injuries ought to be done all at one time, so
+that, being tasted less, they offend less; benefits ought to be
+given little by little, so that the flavour of them may last longer.
+  And above all things, a prince ought to live amongst his people in
+such a way that no unexpected circumstances, whether of good or
+evil, shall make him change; because if the necessity for this comes
+in troubled times, you are too late for harsh measures; and mild
+ones will not help you, for they will be considered as forced from
+you, and no one will be under any obligation to you for them.
+                              CHAPTER IX
+                   CONCERNING A CIVIL PRINCIPALITY
+
+  BUT coming to the other point- where a leading citizen becomes the
+prince of his country, not by wickedness or any intolerable
+violence, but by the favour of his fellow citizens- this may be called
+a civil principality: nor is genius or fortune altogether necessary to
+attain to it, but rather a happy shrewdness. I say then that such a
+principality is obtained either by the favour of the people or by
+the favour of the nobles. Because in all cities these two distinct
+parties are found, and from this it arises that the people do not wish
+to be ruled nor oppressed by the nobles, and the nobles wish to rule
+and oppress the people; and from these two opposite desires there
+arises in cities one of three results, either a principality,
+self-government, or anarchy.
+  A principality is created either by the people or by the nobles,
+accordingly as one or other of them has the opportunity; for the
+nobles, seeing they cannot withstand the people, begin to cry up the
+reputation of one of themselves, and they make him a prince, so that
+under his shadow they can give vent to their ambitions. The people,
+finding they cannot resist the nobles, also cry up the reputation of
+one of themselves, and make him a prince so as to be defended by his
+authority. He who obtains sovereignty by the assistance of the
+nobles maintains himself with more difficulty than he who comes to
+it by the aid of the people, because the former finds himself with
+many around him who consider themselves his equals, and because of
+this he can neither rule nor manage them to his liking. But he who
+reaches sovereignty by popular favour finds himself alone, and has
+none around him, or few, who are not prepared to obey him.
+  Besides this, one cannot by fair dealing, and without injury to
+others, satisfy the nobles, but you can satisfy the people, for
+their object is more righteous than that of the nobles, the latter
+wishing to oppress, whilst the former only desire not to be oppressed.
+It is to be added also that a prince can never secure himself
+against a hostile people, because of their being too many, whilst from
+the nobles he can secure himself, as they are few in number. The worst
+that a prince may expect from a hostile people is to be abandoned by
+them; but from hostile nobles he has not only to fear abandonment, but
+also that they will rise against him; for they, being in these affairs
+more far-seeing and astute, always come forward in time to save
+themselves, and to obtain favours from him whom they expect to
+prevail. Further, the prince is compelled to live always with the same
+people, but he can do well without the same nobles, being able to make
+and unmake them daily, and to give or take away authority when it
+pleases him.
+  Therefore, to make this point clearer, I say that the nobles ought
+to be looked at mainly in two ways: that is to say, they either
+shape their course in such a way as binds them entirely to your
+fortune, or they do not. Those who so bind themselves, and are not
+rapacious, ought to be honoured and loved; those who do not bind
+themselves may be dealt with in two ways; they may fail to do this
+through pusillanimity and a natural want of courage, in which case you
+ought to make use of them, especially of those who are of good
+counsel; and thus, whilst in prosperity you honour yourself, in
+adversity you have not to fear them. But when for their own
+ambitious ends they shun binding themselves, it is a token that they
+are giving more thought to themselves than to you, and a prince
+ought to guard against such, and to fear them as if they were open
+enemies, because in adversity they always help to ruin him.
+  Therefore, one who becomes a prince through the favour of the people
+ought to keep them friendly, and this he can easily do seeing they
+only ask not to be oppressed by him. But one who, in opposition to the
+people, becomes a prince by the favour of the nobles, ought, above
+everything, to seek to win the people over to himself, and this he may
+easily do if he takes them under his protection. Because men, when
+they receive good from him of whom they were expecting evil, are bound
+more closely to their benefactor; thus the people quickly become
+more devoted to him than if he had been raised to the principality
+by their favours; and the prince can win their affections in many
+ways, but as these vary according to the circumstances one cannot give
+fixed rules, so I omit them; but, I repeat, it is necessary for a
+prince to have the people friendly, otherwise he has no security in
+adversity.
+  Nabis, Prince of the Spartans, sustained the attack of all Greece,
+and of a victorious Roman army, and against them he defended his
+country and his government; and for the overcoming of this peril it
+was only necessary for him to make himself secure against a few, but
+this would not have been sufficient if the people had been hostile.
+And do not let any one impugn this statement with the trite proverb
+that 'He who builds on the people, builds on the mud,' for this is
+true when a private citizen makes a foundation there, and persuades
+himself that the people will free him when he is oppressed by his
+enemies or by the magistrates; wherein he would find himself very
+often deceived, as happened to the Gracchi in Rome and to Messer
+Giorgio Scali in Florence. But granted a prince who has established
+himself as above, who can command, and is a man of courage, undismayed
+in adversity, who does not fail in other qualifications, and who, by
+his resolution and energy, keeps the whole people encouraged- such a
+one will never find himself deceived in them, and it will be shown
+that he has laid his foundations well.
+  These principalities are liable to danger when they are passing from
+the civil to the absolute order of government, for such princes either
+rule personally or through magistrates. In the latter case their
+government is weaker and more insecure, because it rests entirely on
+the goodwill of those citizens who are raised to the magistracy, and
+who, especially in troubled times, can destroy the government with
+great ease, either by intrigue or open defiance; and the prince has
+not the chance amid tumults to exercise absolute authority, because
+the citizens and subjects, accustomed to receive orders from
+magistrates, are not of a mind to obey him amid these confusions,
+and there will always be in doubtful times a scarcity of men whom he
+can trust. For such a prince cannot rely upon what he observes in
+quiet times, when citizens had need of the state, because then every
+one agrees with him; they all promise, and when death is far distant
+they all wish to die for him; but in troubled times, when the state
+has need of its citizens, then he finds but few. And so much the
+more is this experiment dangerous, inasmuch as it can only be tried
+once. Therefore a wise prince ought to adopt such a course that his
+citizens will always in every sort and kind of circumstance have
+need of the state and of him, and then he will always find them
+faithful.
+                              CHAPTER X
+               CONCERNING THE WAY IN WHICH THE STRENGTH
+              OF ALL PRINCIPALITIES OUGHT TO BE MEASURED
+
+  IT IS necessary to consider another point in examining the character
+of these principalities: that is, whether a prince has such power
+that, in case of need, he can support himself with his own
+resources, or whether he has always need of the assistance of
+others. And to make this quite clear I say that I consider those are
+able to support themselves by their own resources who can, either by
+abundance of men or money, raise a sufficient army to join battle
+against any one who comes to attack them; and I consider those
+always to have need of others who cannot show themselves against the
+enemy in the field, but are forced to defend themselves by
+sheltering behind walls. The first case has been discussed, but we
+will speak of it again should it recur. In the second case one can say
+nothing except to encourage such princes to provision and fortify
+their towns, and not on any account to defend the country. And whoever
+shall fortify his town well, and shall have managed the other concerns
+of his subjects in the way stated above, and to be often repeated,
+will never be attacked without great caution, for men are always
+adverse to enterprises where difficulties can be seen, and it will
+be seen not to be an easy thing to attack one who has his town well
+fortified, and is not hated by his people.
+  The cities of Germany are absolutely free, they own but little
+country around them, and they yield obedience to the emperor when it
+suits them, nor do they fear this or any other power they may have
+near them, because they are fortified in such a way that every one
+thinks the taking of them by assault would be tedious and difficult,
+seeing they have proper ditches and walls, they have sufficient
+artillery, and they always keep in public depots enough for one year's
+eating, drinking, and firing. And beyond this, to keep the people
+quiet and without loss to the state, they always have the means of
+giving work to the community in those labours that are the life and
+strength of the city, and on the pursuit of which the people are
+supported; they also hold military exercises in repute, and moreover
+have many ordinances to uphold them.
+  Therefore, a prince who has a strong city, and had not made
+himself odious, will not be attacked, or if any one should attack he
+will only be driven off with disgrace; again, because that affairs
+of this world are so changeable, it is almost impossible to keep an
+army a whole year in the field without being interfered with. And
+whoever should reply: If the people have property outside the city,
+and see it burnt, they will not remain patient, and the long siege and
+self-interest will make them forget their prince; to this I answer
+that a powerful and courageous prince will overcome all such
+difficulties by giving at one time hope to his subjects that the
+evil will not be for long, at another time fear of the cruelty of
+the enemy, then preserving himself adroitly from those subjects who
+seem to him to be too bold.
+  Further, the enemy would naturally on his arrival at once burn and
+ruin the country at the time when the spirits of the people are
+still hot and ready for the defence; and, therefore, so much the
+less ought the prince to hesitate; because after a time, when
+spirits have cooled, the damage is already done, the ills are
+incurred, and there is no longer any remedy; and therefore they are so
+much the more ready to unite with their prince, he appearing to be
+under obligations to them now that their houses have been burnt and
+their possessions ruined in his defence. For it is the nature of men
+to be bound by the benefits they confer as much as by those they
+receive. Therefore, if everything is well considered, it wilt not be
+difficult for a wise prince to keep the minds of his citizens
+steadfast from first to last, when he does not fail to support and
+defend them.
+                              CHAPTER XI
+               CONCERNING ECCLESIASTICAL PRINCIPALITIES
+
+  IT ONLY remains now to speak of ecclesiastical principalities,
+touching which all difficulties are prior to getting possession,
+because they are acquired either by capacity or good fortune, and they
+can be held without either; for they are sustained by the ordinances
+of religion, which are so all-powerful, and of such a character that
+the principalities may be held no matter how their princes behave
+and live. These princes alone have states and do not defend them, they
+have subjects and do not rule them; and the states, although
+unguarded, are not taken from them, and the subjects, although not
+ruled, do not care, and they have neither the desire nor the ability
+to alienate themselves. Such principalities only are secure and happy.
+But being upheld by powers, to which the human mind cannot reach, I
+shall speak no more of them, because, being exalted and maintained
+by God, it would be the act of a presumptuous and rash man to
+discuss them.
+  Nevertheless, if any one should ask of me how comes it that the
+Church has attained such greatness in temporal power, seeing that from
+Alexander backwards the Italian potentates (not only those who have
+been called potentates, but every baron and lord, though the smallest)
+have valued the temporal power very slightly- yet now a king of France
+trembles before it, and it has been able to drive him from Italy,
+and to ruin the Venetians- although this may be very manifest, it does
+not appear to me superfluous to recall it in some measure to memory.
+  Before Charles, King of France, passed into Italy, this country
+was under the dominion of the Pope, the Venetians, the King of Naples,
+the Duke of Milan, and the Florentines. These potentates had two
+principal anxieties: the one, that no foreigner should enter Italy
+under arms; the other, that none of themselves should seize more
+territory. Those about whom there was the most anxiety were the Pope
+and the Venetians. To restrain the Venetians the union of all the
+others was necessary, as it was for the defence of Ferrara; and to
+keep down the Pope they made use of the barons of Rome, who, being
+divided into two factions, Orsini and Colonna, had always a pretext
+for disorder, and, standing with arms in their hands under the eyes of
+the Pontiff, kept the pontificate weak and powerless. And although
+there might arise sometimes a courageous pope, such as Sixtus [IV],
+yet neither fortune nor wisdom could rid him of these annoyances.
+And the short life of a pope is also a cause of weakness; for in the
+ten years, which is the average life of a pope, he can with difficulty
+lower one of the factions; and if, so to speak, one pope should almost
+destroy the Colonna, another would arise hostile to the Orsini, who
+would support their opponents, and yet would not have time to ruin the
+Orsini. This was the reason why the temporal powers of the pope were
+little esteemed in Italy.
+  Alexander VI arose afterwards, who of all the pontiffs that have
+ever been showed how a pope with both money and arms was able to
+prevail; and through the instrumentality of the Duke Valentino, and by
+reason of the entry of the French, he brought about all those things
+which I have discussed above in the actions of the duke. And
+although his intention was not to aggrandize the Church, but the duke,
+nevertheless, what he did contributed to the greatness of the
+Church, which, after his death and the ruin of the duke, became the
+heir to all his labours.
+  Pope Julius came afterwards and found the Church strong,
+possessing all the Romagna, the barons of Rome reduced to impotence,
+and, through the chastisements Alexander, the factions wiped out; he
+also found the way open to accumulate money in a manner such as had
+never been practised before Alexander's time. Such things Julius not
+only followed, but improved upon, and he intended to gain Bologna,
+to ruin the Venetians, and to drive the French out of Italy. All of
+these enterprises prospered with him, and so much the more to his
+credit, inasmuch as he did everything to strengthen the Church and not
+any private person. He kept also the Orsini and Colonna factions
+within the bounds in which he found them; and although there was among
+them some mind to make disturbance, nevertheless he held two things
+firm: the one, the greatness of the church, with which he terrified
+them; and the other, not allowing them to have their own cardinals,
+who caused the disorders among them. For whenever these factions
+have their cardinals they do not remain quiet for long, because
+cardinals foster the factions in Rome and out of it, and the barons
+are compelled to support them, and thus from the ambitions of prelates
+arise disorders and tumults among the barons. For these reasons his
+Holiness Pope Leo found the pontificate most powerful, and it is to be
+hoped that, if others made it great in arms, he will make it still
+greater and more venerated by his goodness and infinite other virtues.
+                             CHAPTER XII
+                HOW MANY KINDS OF SOLDIERY THERE ARE,
+                      AND CONCERNING MERCENARIES
+
+  HAVING discoursed particularly on the characteristics of such
+principalities as in the beginning I proposed to discuss, and having
+considered in some degree the causes of their being good or bad, and
+having shown the methods by which many have sought to acquire them and
+to hold them, it now remains for me to discuss generally the means
+of offence and defence which belong to each of them.
+  We have seen above how necessary it is for a prince to have his
+foundations well laid, otherwise it follows of necessity he will go to
+ruin. The chief foundations of all states, new as well as old or
+composite, are good laws and good arms; and as there cannot be good
+laws where the state is not well armed, it follows that where they are
+well armed they have good laws. I shall leave the laws out of the
+discussion and shall speak of the arms.
+  I say, therefore, that the arms with which a prince defends his
+state are either his own, or they are mercenaries, auxiliaries, or
+mixed. Mercenaries and auxiliaries are useless and dangerous; and if
+one holds his state based on these arms, he will stand neither firm
+nor safe; for they are disunited, ambitious and without discipline,
+unfaithful, valiant before friends, cowardly before enemies; they have
+neither the fear of God nor fidelity to men, and destruction is
+deferred only so long as the attack is; for in peace one is robbed
+by them, and in war by the enemy. The fact is, they have no other
+attraction or reason for keeping the field than a trifle of stipend,
+which is not sufficient to make them willing to die for you. They
+are ready enough to be your soldiers whilst you do not make war, but
+if war comes they take themselves off or run from the foe; which I
+should have little trouble to prove, for the ruin of Italy has been
+caused by nothing else than by resting all her hopes for many years on
+mercenaries, and although they formerly made some display and appeared
+valiant amongst themselves, yet when the foreigners came they showed
+what they were. Thus it was that Charles, King of France, was
+allowed to seize Italy with chalk in hand;* and he who told us that
+our sins were the cause of it told the truth, but they were not the
+sins he imagined, but those which I have related. And as they were the
+sins of princes, it is the princes who have also suffered the penalty.
+
+  * With which to chalk up the billets for his soldiers.
+
+  I wish to demonstrate further the infelicity of these arms. The
+mercenary captains are either capable men or they are not; if they
+are, you cannot trust them, because they always aspire to their own
+greatness, either by oppressing you, who are their master, or others
+contrary to your intentions; but if the captain is not skilful, you
+are ruined in the usual way.
+  And if it be urged that whoever is armed will act in the same way,
+whether mercenary or not, I reply that when arms have to be resorted
+to, either by a prince or a republic, then the prince ought to go in
+person and perform the duty of captain; the republic has to send its
+citizens, and when one is sent who does not turn out satisfactorily,
+it ought to recall him, and when one is worthy, to hold him by the
+laws so that he does not leave the command. And experience has shown
+princes and republics, single-handed, making the greatest progress,
+and mercenaries doing nothing except damage; and it is more
+difficult to bring a republic, armed with its own arms, under the sway
+of one of its citizens than it is to bring one armed with foreign
+arms. Rome and Sparta stood for many ages armed and free. The Switzers
+are completely armed and quite free.
+  Of ancient mercenaries, for example, there are the Carthaginians,
+who were oppressed by their mercenary soldiers after the first war
+with the Romans, although the Carthaginians had their own citizens for
+captains. After the death of Epaminondas, Philip of Macedon was made
+captain of their soldiers by the Thebans, and after victory he took
+away their liberty.
+  Duke Filippo being dead, the Milanese enlisted Francesco Sforza
+against the Venetians, and he, having overcome the enemy at
+Caravaggio, allied himself with them to crush the Milanese, his
+masters. His father, Sforza, having been engaged by Queen Johanna of
+Naples, left her unprotected, so that she was forced to throw
+herself into the arms of the King of Aragon, in order to save her
+kingdom. And if the Venetians and Florentines formerly extended
+their dominions by these arms, and yet their captains did not make
+themselves princes, but have defended them, I reply that the
+Florentines in this case have been favoured by chance, for of the able
+captains, of whom they might have stood in fear, some have not
+conquered, some have been opposed, and others have turned their
+ambitions elsewhere. One who did not conquer was Giovanni Acuto,*
+and since he did not conquer his fidelity cannot be proved; but
+every one will acknowledge that, had he conquered, the Florentines
+would have stood at his discretion. Sforza had the Bracceschi always
+against him, so they watched each other. Francesco turned his ambition
+to Lombardy; Braccio against the Church and the kingdom of Naples. But
+let us come to that which happened a short while ago. The
+Florentines appointed as their captain Paolo Vitelli, a most prudent
+man, who from a private position had risen to the greatest renown.
+If this man had taken Pisa, nobody can deny that it would have been
+proper for the Florentines to keep in with him, for if he became the
+soldier of their enemies they had no means of resisting, and if they
+held to him they must obey him. The Venetians, if their achievements
+are considered, will be seen to have acted safely and gloriously so
+long as they sent to war their own men, when with armed gentlemen
+and plebeians they did valiantly. This was before they turned to
+enterprises on land, but when they began to fight on land they forsook
+this virtue and followed the custom of Italy. And in the beginning
+of their expansion on land, through not having much territory, and
+because of their great reputation, they had not much to fear from
+their captains; but when they expanded, as under Carmignola, they
+had a taste of this mistake; for, having found him a most valiant
+man (they beat the Duke of Milan under his leadership), and, on the
+other hand, knowing how lukewarm he was in the war, they feared they
+would no longer conquer under him, and for this reason they were not
+willing, nor were they able, to let him go; and so, not to lose
+again that which they had acquired, they were compelled, in order to
+secure themselves, to murder him. They had afterwards for their
+captains Bartolomeo da Bergamo, Roberto da San Severino, the Count
+of Pitigliano, and the like, under whom they had to dread loss and not
+gain, as happened afterwards at Vaila, where in one battle they lost
+that which in eight hundred years they had acquired with so much
+trouble. Because from such arms conquests come but slowly, long
+delayed and inconsiderable, but the losses sudden and portentous.
+
+  * As Sir John Hawkwood, the English leader of mercenaries, was
+called by the Italians.
+
+  And as with these examples I have reached Italy, which has been
+ruled for many years by mercenaries, I wish to discuss them more
+seriously, in order that, having seen their rise and progress, one may
+be better prepared to counteract them. You must understand that the
+empire has recently come to be repudiated in Italy, that the Pope
+has acquired more temporal power, and that Italy has been divided up
+into more states, for the reason that many of the great cities took up
+arms against their nobles, who, formerly favoured by the emperor, were
+oppressing them, whilst the Church was favouring them so as to gain
+authority in temporal power: in many others their citizens became
+princes. From this it came to pass that Italy fell partly into the
+hands of the Church and of republics, and, the Church consisting of
+priests and the republic of citizens unaccustomed to arms, both
+commenced to enlist foreigners.
+  The first who gave renown to this soldiery was Alberigo da Conio,
+a native of the Romagna. From the school of this man sprang, among
+others, Braccio and Sforza, who in their time were the arbiters of
+Italy. After these came all the other captains who till now have
+directed the arms of Italy; and the end of all their valour has
+been, that she has been overrun by Charles, robbed by Louis, ravaged
+by Ferdinand, and insulted by the Switzers. The principle that has
+guided them has been, first, to lower the credit of infantry so that
+they might increase their own. They did this because, subsisting on
+their pay and without territory, they were unable to support many
+soldiers, and a few infantry did not give them any authority; so
+they were led to employ cavalry, with a moderate force of which they
+were maintained and honoured; and affairs were brought to such a
+pass that, in an army of twenty thousand soldiers, there were not to
+be found two thousand foot soldiers. They had, besides this, used
+every art to lessen fatigue and danger to themselves and their
+soldiers, not killing in the fray, but taking prisoners and liberating
+without ransom. They did not attack towns at night, nor did the
+garrisons of the towns attack encampments at night; they did not
+surround the camp either with stockade or ditch, nor did they campaign
+in the winter. All these things were permitted by their military
+rules, and devised by them to avoid, as I have said, both fatigue
+and dangers; thus they have brought Italy to slavery and contempt.
+                             CHAPTER XIII
+        CONCERNING AUXILIARIES, MIXED SOLDIERY, AND ONE'S OWN
+
+  AUXILIARIES, which are the other useless arm, are employed when a
+prince is called in with his forces to aid and defend, as was done
+by Pope Julius in the most recent times; for he, having, in the
+enterprise against Ferrara, had poor proof of his mercenaries,
+turned to auxiliaries, and stipulated with Ferdinand, King of Spain,
+for his assistance with men and arms. These arms may be useful and
+good in themselves, but for him who calls them in they are always
+disadvantageous; for losing, one is undone, and winning, one is
+their captive.
+  And although ancient histories may be full of examples, I do not
+wish to leave this recent one of Pope Julius II, the peril of which
+cannot fall to be perceived; for he, wishing to get Ferrara, threw
+himself entirely into the hands of the foreigner. But his good fortune
+brought about a third event, so that he did not reap the fruit of
+his rash choice; because, having auxiliaries routed at Ravenna, and
+the Switzers having risen and driven out the conquerors (against all
+expectation, both his and others), it so came to pass that he did
+not become prisoner to his enemies, they having fled, nor to his
+auxiliaries, he having conquered by other arms than theirs.
+  The Florentines, being entirely without arms, sent ten thousand
+Frenchmen to take Pisa, whereby they ran more danger than at any other
+time of their troubles.
+  The Emperor of Constantinople, to oppose his neighbours, sent ten
+thousand Turks into Greece, who, on the war being finished, were not
+willing to quit; this was the beginning of the servitude of Greece
+to the infidels.
+  Therefore, let him who has no desire to conquer make use of these
+arms, for they are much more hazardous than mercenaries, because
+with them the ruin is ready made; they are all united, all yield
+obedience to others; but with mercenaries, when they have conquered,
+more time and better opportunities are needed to injure you; they
+are not all of one community, they are found and paid by you, and a
+third party, which you have made their head, is not able all at once
+to assume enough authority to injure you. In conclusion, in
+mercenaries dastardy is most dangerous; in auxiliaries, valour. The
+wise prince, therefore, has always avoided these arms and turned to
+his own; and has been willing rather to lose with them than to conquer
+with others, not deeming that a real victory which is gained with
+the arms of others.
+  I shall never hesitate to cite Cesare Borgia and his actions. This
+duke entered the Romagna with auxiliaries, taking there only French
+soldiers, and with them he captured Imola and Forli; but afterwards,
+such forces not appearing to him reliable, he turned to mercenaries,
+discerning less danger in them, and enlisted the Orsini and Vitelli;
+whom presently, on handling and finding them doubtful, unfaithful, and
+dangerous, he destroyed and turned to his own men. And the
+difference between one and the other of these forces can easily be
+seen when one considers the difference there was in the reputation
+of the duke, when he had the French, when he had the Orsini and
+Vitelli, and when he relied on his own soldiers, on whose fidelity
+he could always count and found it ever increasing; he was never
+esteemed more highly than when every one saw that he was complete
+master of his own forces.
+  I was not intending to go beyond Italian and recent examples, but
+I am unwilling to leave out Hiero, the Syracusan, he being one of
+those I have named above. This man, as I have said, made head of the
+army by the Syracusans, soon found out that a mercenary soldiery,
+constituted like our Italian condottieri, was of no use; and it
+appearing to him that he could neither keep them nor let them go, he
+had them all cut to pieces, and afterwards made war with his own
+forces and not with aliens.
+  I wish also to recall to memory an instance from the Old Testament
+applicable to this subject. David offered himself to Saul to fight
+with Goliath, the Philistine champion, and, to give him courage,
+Saul armed him with his own weapons; which David rejected as soon as
+he had them on his back, saying he could make no use of them, and that
+he wished to meet the enemy with his sling and his knife. In
+conclusion, the arms of others either fall from your back, or they
+weigh you down, or they bind you fast.
+  Charles VII, the father of King Louis XI, having by good fortune and
+valour liberated France from the English, recognized the necessity
+of being armed with forces of his own, and he established in his
+kingdom ordinances concerning men-at-arms and infantry. Afterwards his
+son, King Louis, abolished the infantry and began to enlist the
+Switzers, which mistake, followed by others, is, as is now seen, a
+source of peril to that kingdom; because, having raised the reputation
+of the Switzers, he has entirely diminished the value of his own arms,
+for he has destroyed the infantry altogether; and his men-at-arms he
+has subordinated to others, for, being as they are so accustomed to
+fight along with Switzers, it does not appear that they can now
+conquer without them. Hence it arises that the French cannot stand
+against the Switzers, and without the Switzers they do not come off
+well against others. The armies of the French have thus become
+mixed, partly mercenary and partly national, both of which arms
+together are much better than mercenaries alone or auxiliaries
+alone, yet much inferior to one's own forces. And this example
+proves it, the kingdom of France would be unconquerable if the
+ordinance of Charles had been enlarged or maintained.
+  But the scanty wisdom of man, on entering into an affair which looks
+well at first, cannot discern the poison that is hidden in it, as I
+have said above of hectic fevers. Therefore, if he who rules a
+principality cannot recognize evils until they are upon him, he is not
+truly wise; and this insight is given to few. And if the first
+disaster to the Roman Empire should be examined, it will be found to
+have commenced only with the enlisting of the Goths; because from that
+time the vigour of the Roman Empire began to decline, and all that
+valour which had raised it passed away to others.
+  I conclude, therefore, that no principality is secure without having
+its own forces; on the contrary, it is entirely dependent on good
+fortune, not having the valour which in adversity would defend it. And
+it has always been the opinion and judgment of wise men that nothing
+can be so uncertain or unstable as fame or power not founded on its
+own strength. And one's own forces  are those which are composed
+either of subjects, citizens, or dependants; all others are
+mercenaries or auxiliaries. And the way to take ready one's own forces
+will be easily found if the rules suggested by me shall be reflected
+upon, and if one will consider how Philip, the father of Alexander the
+Great, and many republics and princes have armed and organized
+themselves, to which rules I entirely commit myself.
+                             CHAPTER XIV
+                     THAT WHICH CONCERNS A PRINCE
+                   ON THE SUBJECT OF THE ART OF WAR
+
+  A PRINCE ought to have no other aim or thought, nor select
+anything else for his study, than war and its rules and discipline;
+for this is the sole art that belongs to him who rules, and it is of
+such force that it not only upholds those who are born princes, but it
+often enables men to rise from a private station to that rank. And, on
+the contrary, it is seen that when princes have thought more of ease
+than of arms they have lost their states. And the first cause of
+your losing it is to neglect this art; and what enables you to acquire
+a state is to be master of the art. Francesco Sforza, through being
+martial, from a private person became Duke of Milan; and the sons,
+through avoiding the hardships and troubles of arms, from dukes became
+private persons. For among other evils which being unarmed brings you,
+it causes you to be despised, and this is one of those ignominies
+against which a prince ought to guard himself, as is shown later on.
+Because there is nothing proportionate between the armed and the
+unarmed; and it is not reasonable that he who is armed should yield
+obedience willingly to him who is unarmed, or that the unarmed man
+should be secure among armed servants. Because, there being in the one
+disdain and in the other suspicion, it is not possible for them to
+work well together. And therefore a prince who does not understand the
+art of war, over and above the other misfortunes already mentioned,
+cannot be respected by his soldiers, nor can he rely on them. He ought
+never, therefore, to have out of his thoughts this subject of war, and
+in peace he should addict himself more to its exercise than in war;
+this he can do in two ways, the one by action, the other by study.
+  As regards action, he ought above all things to keep his men well
+organized and drilled, to follow incessantly the chase, by which he
+accustoms his body to hardships, and learns something of the nature of
+localities, and gets to find out how the mountains rise, how the
+valleys open out, how the plains lie, and to understand the nature
+of rivers and marshes, and in all this to take the greatest care.
+Which knowledge is useful in two ways. Firstly, he learns to know
+his country, and is better able to undertake its defence;
+afterwards, by means of the knowledge and observation of that
+locality, he understands with ease any other which it may be necessary
+for him to study hereafter; because the hills, valleys, and plains,
+and rivers and marshes that are, for instance, in Tuscany, have a
+certain resemblance to those of other countries, so that with a
+knowledge of the aspect of one country one can easily arrive at a
+knowledge of others. And the prince that lacks this skill lacks the
+essential which it is desirable that a captain should possess, for
+it teaches him to surprise his enemy, to select quarters, to lead
+armies, to array the battle, to besiege towns to advantage.
+  Philopoemen, Prince of the Achaeans, among other praises which
+writers have bestowed on him, is commended because in time of peace he
+never had anything in his mind but the rules of war; and when he was
+in the country with friends, he often stopped and reasoned with
+them: "If the enemy should be upon that hill, and we should find
+ourselves here with our army, with whom would be the advantage? How
+should one best advance to meet him, keeping the ranks? If we should
+wish to retreat, how ought we to set about it? If they should retreat,
+how ought we to pursue?" And he would set forth to them, as he went,
+all the chances that could befall an army; he would listen to their
+opinion and state his, confirming it with reasons, so that by these
+continual discussions there could never arise, in time of war, any
+unexpected circumstances that he could deal with.
+  But to exercise the intellect the prince should read histories,
+and study there the actions of illustrious men, to see how they have
+borne themselves in war, to examine the causes of their victories
+and defeat, so as to avoid the latter and imitate the former; and
+above all do as an illustrious man did, who took as an exemplar one
+who had been praised and famous before him, and whose achievements and
+deeds he always kept in his mind, as it is said Alexander the Great
+imitated Achilles, Caesar Alexander, Scipio Cyrus. And whoever reads
+the life of Cyrus, written by Xenophon, will recognize afterwards in
+the life of Scipio how that imitation was his glory, and how in
+chastity, affability, humanity, and liberality Scipio conformed to
+those things which have been written of Cyrus by Xenophon. A wise
+prince ought to observe some such rules, and never in peaceful times
+stand idle, but increase his resources with industry in such a way
+that they may be available to him in adversity, so that if fortune
+changes it may find him prepared to resist her blows.
+                              CHAPTER XV
+       CONCERNING THINGS FOR WHICH MEN, AND ESPECIALLY PRINCES,
+                        ARE PRAISED OR BLAMED
+
+  IT REMAINS now to see what ought to be the rules of conduct for a
+prince towards subject and friends. And as I know that many have
+written on this point, I expect I shall be considered presumptuous
+in mentioning it again, especially as in discussing it I shall
+depart from the methods of other people. But, it being my intention to
+write a thing which shall be useful to him who apprehends it, it
+appears to me more appropriate to follow up the real truth of a matter
+than the imagination of it; for many have pictured republics and
+principalities which in fact have never been known or seen, because
+how one lives is so far distant from how one ought to live, that he
+who neglects what is done for what ought to be done, sooner effects
+his ruin than his preservation; for a man who wishes to act entirely
+up to his professions of virtue soon meets with what destroys him
+among so much that is evil.
+  Hence it is necessary for a prince wishing to hold his own to know
+how to do wrong, and to make use of it or not according to
+necessity. Therefore, putting on one side imaginary things
+concerning a prince, and discussing those which are real, I say that
+all men when they are spoken of, and chiefly princes for being more
+highly placed, are remarkable for some of those qualities which
+bring them either blame or praise; and thus it is that one is
+reputed liberal, another miserly, using a Tuscan term (because an
+avaricious person in our language is still he who desires to possess
+by robbery, whilst we call one miserly who deprives himself too much
+of the use of his own); one is reputed generous, one rapacious; one
+cruel, one compassionate; one faithless, another faithful; one
+effeminate and cowardly, another bold and brave; one affable,
+another haughty; one lascivious, another chaste; one sincere,
+another cunning; one hard, another easy; one grave, another frivolous;
+one religious, another unbelieving, and the like. And I know that
+every one will confess that it would be most praiseworthy in a
+prince to exhibit all the above qualities that are considered good;
+but because they can neither be entirely possessed nor observed, for
+human conditions do not permit it, it is necessary for him to be
+sufficiently prudent that he may know how to avoid the reproach of
+those vices which would lose him his state; and also to keep
+himself, if it be possible, from those which would not lose him it;
+but this not being possible, he may with less hesitation abandon
+himself to them. And again, he need not make himself uneasy at
+incurring a reproach for those vices without which the state can
+only be saved with difficulty, for if everything is considered
+carefully, it will be found that something which looks like virtue, if
+followed, would be his ruin; whilst something else, which looks like
+vice, yet followed brings him security and prosperity.
+                             CHAPTER XVI
+                  CONCERNING LIBERALITY AND MEANNESS
+
+  COMMENCING then with the first of the above-named characteristics, I
+say that it would be well to be reputed liberal. Nevertheless,
+liberality exercised in a way that does not bring you the reputation
+for it, injures you; for if one exercises it honestly and as it should
+be exercised, it may not become known, and you will not avoid the
+reproach of its opposite. Therefore, any one wishing to maintain among
+men the name of liberal is obliged to avoid no attribute of
+magnificence; so that a prince thus inclined will consume in such acts
+all his property, and will be compelled in the end, if he wish to
+maintain the name of liberal, to unduly weigh down his people, and tax
+them, and do everything he can to get money. This will soon make him
+odious to his subjects, and becoming poor he will be little valued
+by any one; thus, with his liberality, having offended many and
+rewarded few, he is affected by the very first trouble and
+imperilled by whatever may be the first danger; recognizing this
+himself, and wishing to draw back from it, he runs at once into the
+reproach of being miserly.
+  Therefore, a prince, not being able to exercise this virtue of
+liberality in such a way that it is recognized, except to his cost, if
+he is wise he ought not to fear the reputation of being mean, for in
+time he will come to be more considered than if liberal, seeing that
+with his economy his revenues are enough, that he can defend himself
+against all attacks, and is able to engage in enterprises without
+burdening his people; thus it comes to pass that he exercises
+liberality towards all from whom he does not take, who are numberless,
+and meanness towards those to whom he does not give, who are few.
+  We have not seen great things done in our time except by those who
+have been considered mean; the rest have failed. Pope Julius the
+Second was assisted in reaching the papacy by a reputation for
+liberality, yet he did not strive afterwards to keep it up, when he
+made war on the King of France; and he made many wars without imposing
+any extraordinary tax on his subjects, for he supplied his
+additional expenses out of his long thriftiness. The present King of
+Spain would not have undertaken or conquered in so many enterprises if
+he had been reputed liberal. A prince, therefore, provided that he has
+not to rob his subjects, that he can defend himself, that he does
+not become poor and abject, that he is not forced to become rapacious,
+ought to hold of little account a reputation for being mean, for it is
+one of those vices which will enable him to govern.
+  And if any one should say: Caesar obtained empire by liberality, and
+many others have reached the highest positions by having been liberal,
+and by being considered so, I answer: Either you are a prince in fact,
+or in a way to become one. In the first case this liberality is
+dangerous, in the second it is very necessary to be considered
+liberal; and Caesar was one of those who wished to become
+pre-eminent in Rome; but if he had survived after becoming so, and had
+not moderated his expenses, he would have destroyed his government.
+And if any one should reply: Many have been princes, and have done
+great things with armies, who have been considered very liberal, I
+reply: Either a prince spends that which is his own or his subjects'
+or else that of others. In the first case he ought to be sparing, in
+the second he ought not to neglect any opportunity for liberality. And
+to the price who goes forth with his army, supporting it by pillage,
+sack, and extortion, handling that which belongs to others, this
+liberality is necessary, otherwise he would not be followed by
+soldiers. And of that which is neither yours nor your subjects' you
+can be a ready giver, as were Cyrus, Caesar, and Alexander; because it
+does not take away your reputation if you squander that of others, but
+adds to it; it is only squandering your own that injures you.
+  And there is nothing wastes so rapidly as liberality, for even
+whilst you exercise it you lose the power to do so, and so become
+either poor or despised, or else, in avoiding poverty, rapacious and
+hated. And a prince should guard himself, above all things, against
+being despised and hated; and liberality leads you to both.
+Therefore it is wiser to have a reputation for meanness which brings
+reproach without hatred, than to be compelled through seeking a
+reputation for liberality to incur a name for rapacity which begets
+reproach with hatred.
+                             CHAPTER XVII
+                 CONCERNING CRUELTY AND CLEMENCY, AND
+             WHETHER IT IS BETTER TO BE LOVED THAN FEARED
+
+  COMING now to the other qualities mentioned above, I say that
+every prince ought to desire to be considered clement and not cruel.
+Nevertheless he ought to take care not to misuse this clemency. Cesare
+Borgia was considered cruel; notwithstanding, his cruelty reconciled
+the Romagna, unified it, and restored it to peace and loyalty. And
+if this be rightly considered, he will be seen to have been much
+more merciful than the Florentine people, who, to avoid a reputation
+for cruelty, permitted Pistoia to be destroyed. Therefore a prince, so
+long as he keeps his subjects united and loyal, ought not to mind
+the reproach of cruelty; because with a few examples he will be more
+merciful than those who, through too much mercy, allow disorders to
+arise, from which follow murders or robberies; for these are wont to
+injure the whole people, whilst those executions which originate
+with a prince offend the individual only.
+  And of all princes, it is impossible for the new prince to avoid the
+imputation of cruelty, owing to new states being full of dangers.
+Hence Virgil, through the mouth of Dido, excuses the inhumanity of her
+reign owing to its being new, saying:
+
+              Res dura, et regni novitas me talia cogunt
+              Moliri, et late fines custode tueri.*
+
+  * ...against my will, my fate,
+    A throne unsettled, and an infant state,
+    Bid me defend my realms with all my pow'rs,
+    And guard with these severities my shores.
+
+  Nevertheless he ought to be slow to believe and to act, nor should
+he himself show fear, but proceed in a temperate manner with
+prudence and humanity, so that too much confidence may not make him
+incautious and too much distrust render him intolerable.
+  Upon this a question arises: whether it be better to be loved than
+feared or feared than loved? It may be answered that one should wish
+to be both, but, because it is difficult to unite them in one
+person, is much safer to be feared than loved, when, of the two,
+either must be dispensed with. Because this is to be asserted in
+general of men, that they are ungrateful, fickle, false, cowardly,
+covetous, and as long as you succeed they are yours entirely; they
+will offer you their blood, property, life and children, as is said
+above, when the need is far distant; but when it approaches they
+turn against you. And that prince who, relying entirely on their
+promises, has neglected other precautions, is ruined; because
+friendships that are obtained by payments, and not by greatness or
+nobility of mind, may indeed be earned, but they are not secured,
+and in time of need cannot be relied upon; and men have less scruple
+in offending one who is beloved than one who is feared, for love is
+preserved by the link of obligation which, owing to the baseness of
+men, is broken at every opportunity for their advantage; but fear
+preserves you by a dread of punishment which never fails.
+  Nevertheless a prince ought to inspire fear in such a way that, if
+he does not win love, he avoids hatred; because he can endure very
+well being feared whilst he is not hated, which will always be as long
+as he abstains from the property of his citizens and subjects and from
+their women. But when it is necessary for him to proceed against the
+life of someone, he must do it on proper justification and for
+manifest cause, but above all things he must keep his hands off the
+property of others, because men more quickly forget the death of their
+father than the loss of their patrimony. Besides, pretexts for
+taking away the property are never wanting; for he who has once
+begun to live by robbery will always find pretexts for seizing what
+belongs to others; but reasons for taking life, on the contrary, are
+more difficult to find and sooner lapse. But when a prince is with his
+army, and has under control a multitude of soldiers, then it is
+quite necessary for him to disregard the reputation of cruelty, for
+without it he would never hold his army united or disposed to its
+duties.
+  Among the wonderful deeds of Hannibal this one is enumerated: that
+having led an enormous army, composed of many various races of men, to
+fight in foreign lands, no dissensions arose either among them or
+against the prince, whether in his bad or in his good fortune. This
+arose from nothing else than his inhuman cruelty, which, with his
+boundless valour, made him revered and terrible in the sight of his
+soldiers, but without that cruelty, his other virtues were not
+sufficient to produce this effect. And shortsighted writers admire his
+deeds from one point of view and from another condemn the principal
+cause of them. That it is true his other virtues would not have been
+sufficient for him may be proved by the case of Scipio, that most
+excellent man, not of his own times but within the memory of man,
+against whom, nevertheless, his army rebelled in Spain; this arose
+from nothing but his too great forbearance, which gave his soldiers
+more licence than is consistent with military discipline. For this
+he was upbraided in the Senate by Fabius Maximus, and called the
+corrupter of the Roman soldiery. The Locrians were laid waste by a
+legate of Scipio, yet they were not avenged by him, nor was the
+insolence of the legate punished, owing entirely to his easy nature.
+Insomuch that someone in the Senate, wishing to excuse him, said there
+were many men who knew much better how not to err than to correct
+the errors of others. This disposition, if he had been continued in
+the command, would have destroyed in time the fame and glory of
+Scipio; but, he being under the control of the Senate, this
+injurious characteristic not only concealed itself, but contributed to
+his glory.
+  Returning to the question of being feared or loved, I come to the
+conclusion that, men loving according to their own will and fearing
+according to that of the prince, a wise prince should establish
+himself on that which is in his own control and not in that of others;
+he must endeavour only to avoid hatred, as is noted.
+                            CHAPTER XVIII
+        CONCERNING THE WAY IN WHICH PRINCES SHOULD KEEP FAITH
+
+  EVERY one admits how praiseworthy it is in a prince to keep faith,
+and to live with integrity and not with craft. Nevertheless our
+experience has been that those princes who have done great things have
+held good faith of little account, and have known how to circumvent
+the intellect of men by craft, and in the end have overcome those
+who have relied on their word. You must know there are two ways of
+contesting, the one by the law, the other by force; the first method
+is proper to men, the second to beasts; but because the first is
+frequently not sufficient, it is necessary to have recourse to the
+second. Therefore it is necessary for a prince to understand how to
+avail himself of the beast and the man. This has been figuratively
+taught to princes by ancient writers, who describe how Achilles and
+many other princes of old were given to the Centaur Chiron to nurse,
+who brought them up in his discipline; which means solely that, as
+they had for a teacher one who was half beast and half man, so it is
+necessary for a prince to know how to make use of both natures, and
+that one without the other is not durable. A prince, therefore,
+being compelled knowingly to adopt the beast, ought to choose the
+fox and the lion; because the lion cannot defend himself against
+snares and the fox cannot defend himself against wolves. Therefore, it
+is necessary to be a fox to discover the snares and a lion to
+terrify the wolves. Those who rely simply on the lion do not
+understand what they are about. Therefore a wise lord cannot, nor
+ought he to, keep faith when such observance may be turned against
+him, and when the reasons that caused him to pledge it exist no
+longer. If men were entirely good this precept would not hold, but
+because they are bad, and will not keep faith with you, you too are
+not bound to observe it with them. Nor will there ever be wanting to a
+prince legitimate reasons to excuse this nonobservance. Of this
+endless modern examples could be given, showing how many treaties
+and engagements have been made void and of no effect through the
+faithlessness of princes; and he who has known best how to employ
+the fox has succeeded best.
+  But it is necessary to know well how to disguise this
+characteristic, and to be a great pretender and dissembler; and men
+are so simple, and so subject to present necessities, that he who
+seeks to deceive will always find someone who will allow himself to be
+deceived. One recent example I cannot pass over in silence.
+Alexander VI did nothing else but deceive men, nor ever thought of
+doing otherwise, and he always found victims; for there never was a
+man who had greater power in asserting, or who with greater oaths
+would affirm a thing, yet would observe it less; nevertheless his
+deceits always succeeded according to his wishes, because he well
+understood this side of mankind.
+  Therefore it is unnecessary for a prince to have all the good
+qualities I have enumerated, but it is very necessary to appear to
+have them. And I shall dare to say this also, that to have them and
+always to observe them is injurious, and that to appear to have them
+is useful; to appear merciful, faithful, humane, religious, upright,
+and to be so, but with a mind so framed that should you require not to
+be so, you may be able and know how to change to the opposite.
+  And you have to understand this, that a prince, especially a new
+one, cannot observe all those things for which men are esteemed, being
+often forced, in order to maintain the state, to act contrary to
+faith, friendship, humanity, and religion. Therefore it is necessary
+for him to have a mind ready to turn itself accordingly as the winds
+and variations of fortune force it, yet, as I have said above, not
+to diverge from the good if he can avoid doing so, but, if
+compelled, then to know how to set about it.
+  For this reason a prince ought to take care that he never lets
+anything slip from his lips that is not replete with the above-named
+five qualities, that he may appear to him who sees and hears him
+altogether merciful, faithful, humane, upright, and religious. There
+is nothing more necessary to appear to have than this last quality,
+inasmuch as men judge generally more by the eye than by the hand,
+because it belongs to everybody to see you, to few to come in touch
+with you. Every one sees what you appear to be, few really know what
+you are, and those few dare not oppose themselves to the opinion of
+the many, who have the majesty of the state to defend them; and in the
+actions of all men, and especially of princes, which it is not prudent
+to challenge, one judges by the result.
+  For that reason, let a prince have the credit of conquering and
+holding his state, the means will always be considered honest, and
+he will be praised by everybody because the vulgar are always taken by
+what a thing seems to be and by what comes of it; and in the world
+there are only the vulgar, for the few find a place there only when
+the many have no ground to rest on.
+  One prince* of the present time, whom it is not well to name,
+never preaches anything else but peace and good faith, and to both
+he is most hostile, and either, if he had kept it, would have deprived
+him of reputation and kingdom many a time.
+
+  * Maximilian I, Holy Roman Emperor.
+                             CHAPTER XIX
+            THAT ONE SHOULD AVOID BEING DESPISED AND HATED
+
+  Now, concerning the characteristics of which mention is made
+above, I have spoken of the more important ones, the others I wish
+to discuss briefly under this generality, that the prince must
+consider, as has been in part said before, how to avoid those things
+which will make him hated or contemptible; and as often as he shall
+have succeeded he will have fulfilled his part, and he need not fear
+any danger in other reproaches.
+  It makes him hated above all things, as I have said, to be
+rapacious, and to be a violator of the property and women of his
+subjects, from both of which he must abstain. And when neither their
+property nor honour is touched, the majority of men live content,
+and he has only to contend with the ambition of a few, whom he can
+curb with ease in many ways.
+  It makes him contemptible to be considered fickle, frivolous,
+effeminate, mean-spirited, irresolute, from all of which a prince
+should guard himself as from a rock; and he should endeavour to show
+in his actions greatness, courage, gravity, and fortitude; and in
+his private dealings with his subjects let him show that his judgments
+are irrevocable, and maintain himself in such reputation that no one
+can hope either to deceive him or to get round him.
+  That prince is highly esteemed who conveys this impression of
+himself, and he who is highly esteemed is not easily conspired
+against; for, provided it is well known that he is an excellent man
+and revered by his people, he can only be attacked with difficulty.
+For this reason a prince ought to have two fears, one from within,
+on account of his subjects, the other from without, on account of
+external powers. From the latter he is defended by being well armed
+and having good allies, and if he is well armed he will have good
+friends, and affairs will always remain quiet within when they are
+quiet without, unless they should have been already disturbed by
+conspiracy; and even should affairs outside be disturbed, if he has
+carried out his preparations and has lived as I have said, as long
+as he does not despair, he will resist every attack, as I said Nabis
+the Spartan did.
+  But concerning his subjects, when affairs outside are disturbed he
+has only to fear that they will conspire secretly, from which a prince
+can easily secure himself by avoiding being hated and despised, and by
+keeping the people satisfied with him, which it is most necessary
+for him to accomplish, as I said above at length. And one of the
+most efficacious remedies that a prince can have against
+conspiracies is not to be hated and despised by the people, for he who
+conspires against a prince always expects to please them by his
+removal; but when the conspirator can only look forward to offending
+them, he will not have the courage to take such a course, for the
+difficulties that confront a conspirator are infinite. And as
+experience shows, many have been the conspiracies, but few have been
+successful; because he who conspires cannot act alone, nor can he take
+a companion except from those whom he believes to be malcontents,
+and as soon as you have opened your mind to a malcontent you have
+given him the material with which to content himself, for by
+denouncing you he can look for every advantage; so that, seeing the
+gain from this course to be assured, and seeing the other to be
+doubtful and full of dangers, he must be a very rare friend, or a
+thoroughly obstinate enemy of the prince, to keep faith with you.
+  And, to reduce the matter into a small compass, I say that, on the
+side of the conspirator, there is nothing but fear, jealousy, prospect
+of punishment to terrify him; but on the side of the prince there is
+the majesty of the principality, the laws, the protection of friends
+and the state to defend him; so that, adding to all these things the
+popular goodwill, it is impossible that any one should be so rash as
+to conspire. For whereas in general the conspirator has to fear before
+the execution of his plot, in this case he has also to fear the sequel
+to the crime; because on account of it he has the people for an enemy,
+and thus cannot hope for any escape.
+  Endless examples could be given on this subject, but I will be
+content with one, brought to pass within the memory of our fathers.
+Messer Annibale Bentivoglio, who was prince in Bologna (grandfather of
+the present Annibale), having been murdered by the Canneschi, who
+had conspired against him, not one of his family survived but Messer
+Giovanni, who was in childhood: immediately after his assassination
+the people rose and murdered all the Canneschi. This sprung from the
+popular goodwill which the house of Bentivoglio enjoyed in those
+days in Bologna; which was so great that, although none remained there
+after the death of Annibale who were able to rule the state, the
+Bolognese, having information that there was one of the Bentivoglio
+family in Florence, who up to that time had been considered the son of
+a blacksmith, sent to Florence for him and gave him the government
+of their city, and it was ruled by him until Messer Giovanni came in
+due course to the government.
+  For this reason I consider that a prince ought to reckon
+conspiracies of little account when his people hold him in esteem; but
+when it is hostile to him, and bears hatred towards him, he ought to
+fear everything and everybody. And well-ordered states and wise
+princes have taken every care not to drive the nobles to
+desperation, and to keep the people satisfied and contented, for
+this is one of the most important objects a prince can have.
+  Among the best ordered and governed kingdoms of our times is France,
+and in it are found many good institutions on which depend the liberty
+and security of the king; of these the first is the parliament and its
+authority, because he who founded the kingdom, knowing the ambition of
+the nobility and their boldness, considered that a bit in their mouths
+would be necessary to hold them in; and, on the other side, knowing
+the hatred of the people, founded in fear, against the nobles, he
+wished to protect them, yet he was not anxious for this to be the
+particular care of the king; therefore, to take away the reproach
+which he would be liable to from the nobles for favouring the
+people, and from the people for favouring the nobles, he set up an
+arbiter, who should be one who could beat down the great and favour
+the lesser without reproach to the king. Neither could you have a
+better or a more prudent arrangement, or a greater source of
+security to the king and kingdom. From this one can draw another
+important conclusion, that princes ought to leave affairs of
+reproach to the management of others, and keep those of grace in their
+own hands. And further, I consider that a prince ought to cherish
+the nobles, but not so as to make himself hated by the people.
+  It may appear, perhaps, to some who have examined the lives and
+deaths of the Roman emperors that many of them would be an example
+contrary to my opinion, seeing that some of them lived nobly and
+showed great qualities of soul, nevertheless they have lost their
+empire or have been killed by subjects who have conspired against
+them. Wishing, therefore, to answer these objections, I will recall
+the characters of some of the emperors, and will show that the
+causes of their ruin were not different to those alleged by me; at the
+same time I will only submit for consideration those things that are
+noteworthy to him who studies the affairs of those times.
+  It seems to me sufficient to take all those emperors who succeeded
+to the empire from Marcus the philosopher down to Maximinus; they were
+Marcus and his son Commodus, Pertinax, Julian, Severus and his son
+Antoninus Caracalla, Macrinus, Heliogabalus, Alexander, and Maximinus.
+  There is first to note that, whereas in other principalities the
+ambition of the nobles and the insolence of the people only have to be
+contended with, the Roman emperors had a third difficulty in having to
+put up with the cruelty and avarice of their soldiers, a matter so
+beset with difficulties that it was the ruin of many; for it was a
+hard thing to give satisfaction both to soldiers and people; because
+the people loved peace, and for this reason they loved the
+unaspiring prince, whilst the soldiers loved the warlike prince who
+was bold, cruel, and rapacious, which qualities they were quite
+willing he should exercise upon the people, so that they could get
+double pay and give vent to their greed and cruelty. Hence it arose
+that those emperors were always overthrown who, either by birth or
+training, had no great authority, and most of them, especially those
+who came new to the principality, recognizing the difficulty of
+these two opposing humours, were inclined to give satisfaction to
+the soldiers, caring little about injuring the people. Which course
+was necessary, because, as princes cannot help being hated by someone,
+they ought, in the first place, to avoid being hated by every one, and
+when they cannot compass this, they ought to endeavour with the utmost
+diligence to avoid the hatred of the most powerful. Therefore, those
+emperors who through inexperience had need of special favour adhered
+more readily to the soldiers than to the people; a course which turned
+out advantageous to them or not, accordingly as the prince knew how to
+maintain authority over them.
+  From these causes it arose that Marcus, [Aurelius], Pertinax, and
+Alexander, being all men of modest life, lovers of justice, enemies to
+cruelty, humane, and benignant, came to a sad end except Marcus; he
+alone lived and died honoured, because he had succeeded to the
+throne by hereditary title, and owed nothing either to the soldiers or
+the people; and afterwards, being possessed of many virtues which made
+him respected, he always kept both orders in their places whilst he
+lived, and was neither hated nor despised.
+  But Pertinax was created emperor against the wishes of the soldiers,
+who, being accustomed to live licentiously under Commodus, could not
+endure the honest life to which Pertinax wished to reduce them;
+thus, having given cause for hatred, to which hatred there was added
+contempt for his old age, he was overthrown at the very beginning of
+his administration. And here it should be noted that hatred is
+acquired as much by good works as by bad ones, therefore, as I said
+before, a prince wishing to keep his state is very often forced to
+do evil; for when that body is corrupt whom you think you have need of
+to maintain yourself- it may be either the people or the soldiers or
+the nobles- you have to submit to its humours and to gratify them, and
+then good works will do you harm.
+  But let us come to Alexander, who was a man of such great
+goodness, that among the other praises which are accorded him is this,
+that in the fourteen years he held the empire no one was ever put to
+death by him unjudged; nevertheless, being considered effeminate and a
+man who allowed himself to be governed by his mother, he became
+despised, the army conspired against him, and murdered him.
+  Turning now to the opposite characters of Commodus, Severus,
+Antoninus Caracalla, and Maximinus, you will find them all cruel and
+rapacious- men who, to satisfy their soldiers, did not hesitate to
+commit every kind of iniquity against the people; and all, except
+Severus, came to a bad end; but in Severus there was so much valour
+that, keeping the soldiers friendly, although the people were
+oppressed by him, he reigned successfully; for his valour made him
+so much admired in the sight of the soldiers and people that the
+latter were kept in a way astonished and awed and the former
+respectful and satisfied. And because the actions of this man, as a
+new prince, were great, I wish to show briefly that he knew well how
+to counterfeit the fox and the lion, which natures, as I said above,
+it is necessary for a prince to imitate.
+  Knowing the sloth of the Emperor Julian, he persuaded the army in
+Sclavonia, of which he was captain, that it would be right to go to
+Rome and avenge the death of Pertinax, who had been killed by the
+praetorian soldiers; and under this pretext, without appearing to
+aspire to the throne, he moved the army on Rome, and reached Italy
+before it was known that he had started. On his arrival at Rome, the
+Senate, through fear, elected him emperor and killed Julian. After
+this there remained for Severus, who wished to make himself master
+of the whole empire, two difficulties; one in Asia, where Niger,
+head of the Asiatic army, had caused himself to be proclaimed emperor;
+the other in the west where Albinus was, who also aspired to the
+throne. And as he considered it dangerous to declare himself hostile
+to both, he decided to attack Niger and to deceive Albinus. To the
+latter he wrote that, being elected emperor by the Senate, he was
+willing to share that dignity with him and sent him the title of
+Caesar; and, moreover, that the Senate had made Albinus his colleague;
+which things were accepted by Albinus as true. But after Severus had
+conquered and killed Niger, and settled oriental affairs, he
+returned to Rome and complained to the Senate that Albinus, little
+recognizing the benefits that he had received from him, had by
+treachery sought to murder him, and for this ingratitude he was
+compelled to punish him. Afterwards he sought him out in France, and
+took from him his government and life. He who will, therefore,
+carefully examine the actions of this man will find him a most valiant
+lion and a most cunning fox; he will find him feared and respected
+by every one, and not hated by the army; and it need not be wondered
+at that he, the new man, well, because his supreme renown always
+protected him from that hatred which the people might have conceived
+against him for his violence.
+  But his son Antoninus was a most eminent man, and had very excellent
+qualities, which made him admirable in the sight of the people and
+acceptable to the soldiers, for he was a warlike man, most enduring of
+fatigue, a despiser of all delicate food and other luxuries, which
+caused him to be beloved by the armies. Nevertheless, his ferocity and
+cruelties were so great and so unheard of that, after endless single
+murders, he killed a large number of the people of Rome and all
+those of Alexandria. He became hated by the whole world, and also
+feared by those he had around him, to such an extent that he was
+murdered in the midst of his army by a centurion. And here it must
+be noted that such-like deaths, which are deliberately inflicted
+with a resolved and desperate courage, cannot be avoided by princes,
+because any one who does not fear to die can inflict them; but a
+prince may fear them the less because they are very rare; he has
+only to be careful not to do any grave injury to those whom he employs
+or has around him in the service of the state. Antoninus had not taken
+this care, but had contumeliously killed a brother of that
+centurion, whom also he daily threatened, yet retained in his
+bodyguard; which, as it turned out, was a rash thing to do, and proved
+the emperor's ruin.
+  But let us come to Commodus, to whom it should have been very easy
+to hold the empire, for, being the son of Marcus, he had inherited it,
+and he had only to follow in the footsteps of his father to please his
+people and soldiers; but, being by nature cruel and brutal, he gave
+himself up to amusing the soldiers and corrupting them, so that he
+might indulge his rapacity upon the people; on the other hand, not
+maintaining his dignity, often descending to the theatre to compete
+with gladiators, and doing other vile things, little worthy of the
+imperial majesty, he fell into contempt with the soldiers, and being
+hated by one party and despised by the other, he was conspired against
+and killed.
+  It remains to discuss the character of Maximinus. He was a very
+warlike man, and the armies, being disgusted with the effeminacy of
+Alexander, of whom I have already spoken, killed him and elected
+Maximinus to the throne. This he did not possess for long, for two
+things made him hated and despised; the one, his having kept sheep
+in Thrace, which brought him into contempt (it being well known to
+all, and considered a great indignity by every one), and the other,
+his having at the accession to his dominions deferred going to Rome
+and taking possession of the imperial seat; he had also gained a
+reputation for the utmost ferocity by having, through his prefects
+in Rome and elsewhere in the empire, practised many cruelties, so that
+the whole world was moved to anger at the meanness of his birth and to
+fear at his barbarity. First Africa rebelled, then the Senate with all
+the people of Rome, and all Italy conspired against him, to which
+may be added his own army: this latter, besieging Aquileia and meeting
+with difficulties in taking it, were disgusted with his cruelties, and
+fearing him less when they found so many against him, murdered him.
+  I do not wish to discuss Heliogabalus, Macrinus, or Julian, who,
+being thoroughly contemptible, were quickly wiped out; but I will
+bring this discourse to a conclusion by saying that princes in our
+times have this difficulty of giving inordinate satisfaction to
+their soldiers in a far less degree, because, notwithstanding one
+has to give them some indulgence, that is soon done; none of these
+princes have armies that are veterans in the governance and
+administration of provinces, as were the armies of the Roman Empire;
+and whereas it was then more necessary to give satisfaction to the
+soldiers than to the people, it is now more necessary to all
+princes, except the Turk and the Soldan, to satisfy the people
+rather than the soldiers, because the people are the more powerful.
+  From the above I have excepted the Turk, who always keeps round
+him twelve infantry and fifteen thousand cavalry on which depend the
+security and strength of the kingdom, and it is necessary that,
+putting aside every consideration for the people, he should keep
+them his friends. The kingdom of the Soldan is similar; being entirely
+in the hands of soldiers, follows again that, without regard to the
+people, he must keep them his friends. But you must note that the
+state of the Soldan is unlike all other principalities, for the reason
+that it is like the Christian pontificate, which cannot be called
+either an hereditary or a newly formed principality; because the
+sons of the old prince not the heirs, but he who is elected to that
+position by those who have authority, and the sons remain only
+noblemen. And this being an ancient custom, it cannot be called a
+new principality, because there are none of those difficulties in it
+that are met with in new ones; for although the prince is new, the
+constitution of the state is old, and it is framed so as to receive
+him as if he were its hereditary lord.
+  But returning to the subject of our discourse, I say that whoever
+will consider it will acknowledge that either hatred or contempt has
+been fatal to the above-named emperors, and it will be recognized also
+how it happened that, a number of them acting in one way and a
+number in another, only one in each way came to a happy end and the
+rest to unhappy ones. Because it would have been useless and dangerous
+for Pertinax and Alexander, being new princes, to imitate Marcus,
+who was heir to the principality; and likewise it would have been
+utterly destructive to Caracalla, Commodus, and Maximinus to have
+imitated Severus, they not having sufficient valour to enable them
+to tread in his footsteps. Therefore a prince, new to the
+principality, cannot imitate the actions of Marcus, nor, again, is
+it necessary to follow those of Severus, but he ought to take from
+Severus those parts which are necessary to found his state, and from
+Marcus those which are proper and glorious to keep a state that may
+already be stable and firm.
+                              CHAPTER XX
+            ARE FORTRESSES, AND MANY OTHER THINGS TO WHICH
+            PRINCES OFTEN RESORT, ADVANTAGEOUS OR HURTFUL?
+
+  1. SOME princes, so as to hold securely the state, have disarmed
+their subjects; others have kept their subject towns by factions;
+others have fostered enmities against themselves; others have laid
+themselves out to gain over those whom they distrusted in the
+beginning of their governments; some have built fortresses; some
+have overthrown and destroyed them. And although one cannot give a
+final judgment on all one of these things unless one possesses the
+particulars of those states in which a decision has to be made,
+nevertheless I will speak as comprehensively as the matter of itself
+will admit.
+  2. There never was a new prince who has disarmed his subjects;
+rather when he has found them disarmed he has always armed them,
+because, by arming them, those arms become yours, those men who were
+distrusted become faithful, and those who were faithful are kept so,
+and your subjects become your adherents. And whereas all subjects
+cannot be armed, yet when those whom you do arm are benefited, the
+others can be handled more freely, and this difference in their
+treatment, which they quite understand, makes the former your
+dependants, and the latter, considering it to be necessary that
+those who have the most danger and service should have the most
+reward, excuse you. But when you disarm them, you at once offend
+them by showing that you distrust them, either for cowardice or for
+want of loyalty, and either of these opinions breeds hatred against
+you. And because you cannot remain unarmed, it follows that you turn
+to mercenaries, which are of the character already shown; even if they
+should be good they would not be sufficient to defend you against
+powerful enemies and distrusted subjects. Therefore, as I have said, a
+new prince in a new principality has always distributed arms.
+Histories are full of examples. But when a prince acquires a new
+state, which he adds as a province to his old one, then it is
+necessary to disarm the men of that state, except those who have
+been his adherents in acquiring it; and these again, with time and
+opportunity, should be rendered soft and effeminate; and matters
+should be managed in such a way that all the armed men in the state
+shall be your own soldiers who in your old state were living near you.
+  3. Our forefathers, and those who were reckoned wise, were
+accustomed to say that it was necessary to hold Pistoia by factions
+and Pisa by fortresses; and with this idea they fostered quarrels in
+some of their tributary towns so as to keep possession of them the
+more easily. This may have been well enough in those times when
+Italy was in a way balanced, but I do not believe that it can be
+accepted as a precept for to-day, because I do not believe that
+factions can ever be of use; rather it is certain that when the
+enemy comes upon you in divided cities you are quickly lost, because
+the weakest party will always assist the outside forces and the
+other will not be able to resist. The Venetians, moved, as I
+believe, by the above reasons, fostered the Guelph and Ghibelline
+factions in their tributary cities; and although they never allowed
+them to come to bloodshed, yet they nursed these disputes amongst
+them, so that the citizens, distracted by their differences, should
+not unite against them. Which, as we saw, did not afterwards turn
+out as expected, because, after the rout at Vaila, one party at once
+took courage and seized the state. Such methods argue, therefore,
+weakness in the prince, because these factions will never be permitted
+in a vigorous principality; such methods for enabling one the more
+easily to manage subjects are only useful in times of peace, but if
+war comes this policy proves fallacious.
+  4. Without doubt princes become great when they overcome the
+difficulties and obstacles by which they are confronted, and therefore
+fortune, especially when she desires to make a new prince great, who
+has a greater necessity to earn renown than an hereditary one,
+causes enemies to arise and form designs against him, in order that he
+may have the opportunity of overcoming them, and by them to mount
+higher, as by a ladder which his enemies have raised. For this
+reason many consider that a wise prince, when he has the
+opportunity, ought with craft to foster some animosity against
+himself, so that, having crushed it, his renown may rise higher.
+  5. Princes, especially new ones, have found more fidelity and
+assistance in those men who in the beginning of their rule were
+distrusted than among those who in the beginning were trusted.
+Pandolfo Petrucci, Prince of Siena, ruled his state more by those
+who had been distrusted than by others. But on this question one
+cannot speak generally, for it varies so much with the individual; I
+will only say this, that those men who at the commencement of a
+princedom have been hostile, if they are of a description to need
+assistance to support themselves, can always be gained over with the
+greatest ease, and they will be tightly held to serve the prince
+with fidelity, inasmuch as they know it to be very necessary for
+them to cancel by deeds the bad impression which he had formed of
+them; and thus the prince always extracts more profit from them than
+from those who, serving him in too much security, may neglect his
+affairs. And since the matter demands it, I must not fail to warn a
+prince, who by means of secret favours has acquired a new state,
+that he must well consider the reasons which induced those to favour
+him who did so; and if it be not a natural affection towards him,
+but only discontent with their government, then he will only keep them
+friendly with great trouble and difficulty, for it will be
+impossible to satisfy them. And weighing well the reasons for this
+in those examples which can be taken from ancient and modern
+affairs, we shall find that it is easier for the prince to make
+friends of those men who were contented under the former government,
+and are therefore his enemies, than of those who, being discontented
+with it, were favourable to him and encouraged him to seize it.
+  6. It has been a custom with princes, in order to hold their
+states more securely, to build fortresses that may serve as a bridle
+and bit to those who might design to work against them, and as a place
+of refuge from a first attack. I praise this system because it has
+been made use of formerly. Notwithstanding that, Messer Nicolo Vitelli
+in our times has been seen to demolish two fortresses in Citta di
+Castello so that he might keep that state; Guidubaldo, Duke of Urbino,
+on returning to his dominion, whence he had been driven by Cesare
+Borgia, razed to the foundations all the fortresses in that
+province, and considered that without them it would be more
+difficult to lose it; the Bentivoglio returning to Bologna came to a
+similar decision. Fortresses, therefore, are useful or not according
+to circumstances; if they do you good in one way they injure you in
+another. And this question can be reasoned thus: the prince who has
+more to fear from the people than from foreigners ought to build
+fortresses, but he who has more to fear from foreigners than from
+the people ought to leave them alone. The castle of Milan, built by
+Francesco Sforza, has made, and will make, more trouble for the
+house of Sforza than any other disorder in the state. For this
+reason the best possible fortress is- not to be hated by the people,
+because, although you may hold the fortresses, yet they will not
+save you if the people hate you, for there will never be wanting
+foreigners to assist a people who have taken arms against you. It
+has not been seen in our times that such fortresses have been of use
+to any prince, unless to the Countess of Forli, when the Count
+Girolamo, her consort, was killed; for by that means she was able to
+withstand the popular attack and wait for assistance from Milan, and
+thus recover her state; and the posture of affairs was such at that
+time that the foreigners could not assist the people. But fortresses
+were of little value to her afterwards when Cesare Borgia attacked
+her, and when the people, her enemy, were allied with foreigners.
+Therefore it would have been safer for her, both then and before,
+not to have been hated by the people than to have had the fortresses.
+All these things considered then, I shall praise him who builds
+fortresses as well as him who does not, and I shall blame whoever,
+trusting in them, cares little about being hated by the people.
+                             CHAPTER XXI
+                 HOW A PRINCE SHOULD CONDUCT HIMSELF
+                         SO AS TO GAIN RENOWN
+
+  NOTHING makes a prince so much esteemed as great enterprises and
+setting a fine example. We have in our time Ferdinand of Aragon, the
+present King of Spain. He can almost be called a new prince, because
+he has risen, by fame and glory, from being an insignificant king to
+be the foremost king in Christendom; and if you will consider his
+deeds you will find them all great and some of them extraordinary.
+In the beginning of his reign he attacked Granada, and this enterprise
+was the foundation of his dominions. He did this quietly at first
+and without any fear of hindrance, for he held the minds of the barons
+of Castile occupied in thinking of the war and not anticipating any
+innovations; thus they did not perceive that by these means he was
+acquiring power and authority over them. He was able with the money of
+the Church and of the people to sustain his armies, and by that long
+war to lay the foundation for the military skill which has since
+distinguished him. Further, always using religion as a plea, so as
+to undertake greater schemes, he devoted himself with a pious
+cruelty to driving out and clearing his kingdom of the Moors; nor
+could there be a more admirable example, nor one more rare. Under this
+same cloak he assailed Africa, he came down on Italy, he has finally
+attacked France; and thus his achievements and designs have always
+been great, and have kept the minds of his people in suspense and
+admiration and occupied with the issue of them. And his actions have
+arisen in such a way, one out of the other, that men have never been
+given time to work steadily against him.
+  Again, it much assists a prince to set unusual examples in
+internal affairs, similar to those which are related of Messer Bernabo
+da Milano, who, when he had the opportunity, by any one in civil
+life doing some extraordinary thing, either good or bad, would take
+some method of rewarding or punishing him, which would be much
+spoken about. And a prince ought, above all things, always to
+endeavour in every action to gain for himself the reputation of
+being a great and remarkable man.
+  A prince is also respected when he is either a true friend or a
+downright enemy, that to say, when, without any reservation, he
+declares himself in favour of one party against the other; which
+course will always be more advantageous than standing neutral; because
+if two of your powerful neighbours come to blows, they are of such a
+character that, if one of them conquers, you have either to fear him
+or not. In either case it will always be more advantageous for you
+to declare yourself and to make war strenuously; because, in the first
+case, if you do not declare yourself, you will invariably fall a
+prey to the conqueror, to the pleasure and satisfaction of him who has
+been conquered, and you will have no reasons to offer, nor anything to
+protect or to shelter you. Because he who conquers does not want
+doubtful friends who will not aid him in the time of trial; and he who
+loses will not harbour you because you did not willingly, sword in
+hand, court his fate.
+  Antiochus went into Greece, being sent for by the Aetolians to drive
+out the Romans. He sent envoys to the Achaeans, who were friends of
+the Romans, exhorting them to remain neutral; and on the other hand
+the Romans urged them to take up arms. This question came to be
+discussed in the council of the Achaeans, where the legate of
+Antiochus urged them to stand neutral. To this the Roman legate
+answered: "As for that which has been said, that it is better and more
+advantageous for your state not to interfere in our war, nothing can
+be more erroneous; because by not interfering you will be left,
+without favour or consideration, the guerdon of the conqueror." Thus
+it will always happen that he who is not your friend will demand
+your neutrality, whilst he who is your friend will entreat you to
+declare yourself with arms. And irresolute princes, to avoid present
+dangers, generally follow the neutral path, and are generally
+ruined. But when a prince declares himself gallantly in favour of
+one side, if the party with whom he allies himself conquers,
+although the victor may be powerful and may have him at his mercy, yet
+he is indebted to him, and there is established a bond of amity; and
+men are never so shameless as to become a monument of ingratitude by
+oppressing you. Victories after all are never so complete that the
+victor must not show some regard, especially to justice. But if he
+with whom you ally yourself loses, you may be sheltered by him, and
+whilst he is able he may aid you, and you become companions in a
+fortune that may rise again.
+  In the second case, when those who fight are of such a character
+that you have no anxiety as to who may conquer, so much the more is it
+greater prudence to be allied, because you assist at the destruction
+of one by the aid of another who, if he had been wise, would have
+saved him; and conquering, as it is impossible that he should not with
+your assistance, he remains at your discretion. And here it is to be
+noted that a prince ought to take care never to make an alliance
+with one more powerful than himself for the purpose of attacking
+others, unless necessity compels him, as is said above; because if
+he conquers you are at his discretion, and princes ought to avoid as
+much as possible being at the discretion of any one. The Venetians
+joined with France against the Duke of Milan, and this alliance, which
+caused their ruin, could have been avoided. But when it cannot be
+avoided, as happened to the Florentines when the Pope and Spain sent
+armies to attack Lombardy, then in such a case, for the above reasons,
+the prince ought to favour one of the parties.
+  Never let any Government imagine that it can choose perfectly safe
+courses; rather let it expect to have to take very doubtful ones,
+because it is found in ordinary affairs that one never seeks to
+avoid one trouble without running into another; but prudence
+consists in knowing how to distinguish the character of troubles,
+and for choice to take the lesser evil.
+  A prince ought also to show himself a patron of ability, and to
+honour the proficient in every art. At the same time he should
+encourage his citizens to practise their callings peaceably, both in
+commerce and agriculture, and in every other following, so that the
+one should not be deterred from improving his possessions for fear
+lest they be taken away from him or another from opening up trade
+for fear of taxes; but the prince ought to offer rewards to whoever
+wishes to do these things and designs in any way to honour his city or
+state.
+  Further, he ought to entertain the people with festivals and
+spectacles at convenient seasons of the year; and as every city is
+divided into guilds or into societies, he ought to hold such bodies in
+esteem, and associate with them sometimes, and show himself an example
+of courtesy and liberality; nevertheless, always maintaining the
+majesty of his rank, for this he must never consent to abate in
+anything.
+                             CHAPTER XXII
+                CONCERNING THE SECRETARIES OF PRINCES
+
+  THE choice of servants is of no little importance to a prince, and
+they are good or not according to the discrimination of the prince.
+And the first opinion which one forms of a prince, and of his
+understanding, is by observing the men he has around him; and when
+they are capable and faithful he may always be considered wise,
+because he has known how to recognize the capable and to keep them
+faithful. But when they are otherwise one cannot form a good opinion
+of him, for the prime error which he made was in choosing them.
+  There were none who knew Messer Antonio da Venafro as the servant of
+Pandolfo Petrucci, Prince of Siena, who would not consider Pandolfo to
+be a very clever man in having Venafro for his servant. Because
+there are three classes of intellects: one which comprehends by
+itself; another which appreciates what others comprehend; and a
+third which neither comprehends by itself nor by the showing of
+others; the first is the most excellent, the second is good, the third
+is useless. Therefore, it follows necessarily that, if Pandolfo was
+not in the first rank, he was in the second, for whenever one has
+judgment to know good or bad when it is said and done, although he
+himself may not have the initiative, yet he can recognize the good and
+the bad in his servant, and the one he can praise and the other
+correct; thus the servant cannot hope to deceive him, and is kept
+honest.
+  But to enable a prince to form an opinion of his servant there is
+one test which never falls; when you see the servant thinking more
+of his own interests than of yours, and seeking inwardly his own
+profit in everything, such a man will never make a good servant, nor
+will you ever be able to trust him; because he who has the state of
+another in his hands ought never to think of himself, but always of
+his prince, and never pay any attention to matters in which the prince
+is not concerned.
+  On the other to keep his servant honest the prince ought to study
+him, honouring him, enriching him, doing him kindnesses, sharing
+with him the honours and cares; and at the same time let him see
+that he cannot stand alone, so that many honours not make him desire
+more, many riches make him wish for more, and that many cares may make
+him dread changes. When, therefore, servants, and princes towards
+servants, are thus disposed, they can trust each other, but when it is
+otherwise, the end will always be disastrous for either one or the
+other.
+                            CHAPTER XXIII
+                   HOW FLATTERERS SHOULD BE AVOIDED
+
+  I DO NOT wish to leave out an important branch of this subject,
+for it is a danger from which princes are with difficulty preserved,
+unless they are very careful and discriminating. It is that of
+flatterers, of whom courts arc full, because men are so
+self-complacent in their own affairs, and in a way so deceived in
+them, that they are preserved with difficulty from this pest, and if
+they wish to defend themselves they run the danger of falling into
+contempt. Because there is no other way of guarding oneself from
+flatterers except letting men understand that to tell you the truth
+does not offend you; but when every one may tell you the truth,
+respect for you abates.
+  Therefore a wise prince ought to hold a third course by choosing the
+wise men in his state, and giving to them only the liberty of speaking
+the truth to him, and then only of those things of which he
+inquires, and of none others; but he ought to question them upon
+everything, and listen to their opinions, and afterwards form his
+own conclusions. With these councillors, separately and
+collectively, he ought to carry himself in such a way that each of
+them should know that, the more freely he shall speak, the more he
+shall be preferred; outside of these, he should listen to no one,
+pursue the thing resolved on, and be steadfast in his resolutions.
+He who does otherwise is either overthrown by flatterers, or is so
+often changed by varying opinions that he falls into contempt.
+  I wish on this subject to adduce a modern example. Fra Luca, the man
+of affairs to Maximilian, the present emperor, speaking of his
+majesty, said: He consulted with no one, yet never got his own way
+in anything. This arose because of his following a practice the
+opposite to the above; for the emperor is a secretive man- he does not
+communicate his designs to any one, nor does he receive opinions on
+them. But as in carrying them into effect they become revealed and
+known, they are at once obstructed by those men whom he has around
+him, and he, being pliant, is diverted from them. Hence it follows
+that those things he does one day he undoes the next, and no one
+ever understands what he wishes or intends to do, and no one can
+rely on his resolutions.
+  A prince, therefore, ought always to take counsel, but only when
+he wishes and not when others wish; he ought rather to discourage
+every one from offering advice unless he asks it; but, however, he
+ought to be a constant inquirer, and afterwards a patient listener
+concerning the things of which he inquired; also, on learning that any
+one, on any consideration, has not told him the truth, he should let
+his anger be felt.
+  And if there are some who think that a prince who conveys an
+impression of his wisdom is not so through his own ability, but
+through the good advisers that he has around him, beyond doubt they
+are deceived, because this is an axiom which never fails: that a
+prince who is not wise himself will never take good advice, unless
+by chance he has yielded his affairs entirely to one person who
+happens to be a very prudent man. In this case indeed he may be well
+governed, but it would not be for long, because such a governor
+would in a short time take away his state from him.
+  But if a prince who is not experienced should take counsel from more
+than one he will never get united counsels, nor will he know how to
+unite them. Each of the counsellors will think of his own interests,
+and the prince will not know how to control them or to see through
+them. And they are not to be found otherwise, because men will
+always prove untrue to you unless they are kept honest by
+constraint. Therefore it must be inferred that good counsels,
+whencesoever they come, are born of the wisdom of the prince, and
+not the wisdom of the prince from good counsels.
+                             CHAPTER XXIV
+             THE PRINCES OF ITALY HAVE LOST THEIR STATES
+
+  THE previous suggestions, carefully observed, will enable a new
+prince to appear well established, and render him at once more
+secure and fixed in the state than if he had been long seated there.
+For the actions of a new prince are more narrowly observed than
+those of an hereditary one, and when they are seen to be able they
+gain more men and bind far tighter than ancient blood; because men are
+attracted more by the present than by the past, and when they find the
+present good they enjoy it and seek no further; they will also make
+the utmost defence for a prince if he fails them not in other
+things. Thus it will be a double glory to him to have established a
+new principality, and adorned and strengthened it with good laws, good
+arms, good allies, and with a good example; so will it be a double
+disgrace to him who, born a prince, shall lose his state by want of
+wisdom.
+  And if those seigniors are considered who have lost their states
+in Italy in our times, such as the King of Naples, the Duke of
+Milan, and others, there will be found in them, firstly, one common
+defect in regard to arms from the causes which have been discussed
+at length; in the next place, some one of them will be seen, either to
+have had the people hostile, or if he has had the people friendly,
+he has not known how to secure the nobles. In the absence of these
+defects states that have power enough to keep an army in the field
+cannot be lost.
+  Philip of Macedon, not the father of Alexander the Great, but he who
+was conquered by Titus Quintius, had not much territory compared to
+the greatness of the Romans and of Greece who attacked him, yet
+being a warlike man who knew how to attract the people and secure
+the nobles, he sustained the war against his enemies for many years,
+and if in the end he lost the dominion of some cities, nevertheless he
+retained the kingdom.
+  Therefore, do not let our princes accuse fortune for the loss of
+their principalities after so many years' possession, but rather their
+own sloth, because in quiet times they never thought there could be
+a change (it is a common defect in man not to make any provision in
+the calm against the tempest), and when afterwards the bad times
+came they thought of flight and not of defending themselves, and
+they hoped that the people, disgusted with the insolence of the
+conquerors, would recall them. This course, when others fail, may be
+good, but it is very bad to have neglected all other expedients for
+that, since you would never wish to fall because you trusted to be
+able to find someone later on to restore you. This again either does
+not happen, or, if it does, it will not be for your security,
+because that deliverance is of no avail which does not depend upon
+yourself; those only are reliable, certain, and durable that depend on
+yourself and your valour.
+                             CHAPTER XXV
+              WHAT FORTUNE CAN EFFECT IN HUMAN AFFAIRS,
+                       AND HOW TO WITHSTAND HER
+
+  IT is not unknown to me how many men have had, and still have, the
+opinion that the affairs of the world are in such wise governed by
+fortune and by God that men with their wisdom cannot direct them and
+that no one can even help them; and because of this they would have us
+believe that it is not necessary to labour much in affairs, but to let
+chance govern them. This opinion has been more credited in our times
+because of the great changes in affairs which have been seen, and
+may still be seen, every day, beyond all human conjecture. Sometimes
+pondering over this, I am in some degree inclined to their opinion.
+Nevertheless, not to extinguish our free will, I hold it to be true
+that Fortune is the arbiter of one-half of our actions, but that she
+still leaves us to direct the other half, or perhaps a little less.
+  I compare her to one of those raging rivers, which when in flood
+overflows the plains, sweeping away trees and buildings, bearing
+away the soil from place to place; everything flies before it, all
+yield to its violence, without being able in any way to withstand
+it; and yet, though its nature be such, it does not follow therefore
+that men, when the weather becomes fair, shall not make provision,
+both with defences and barriers, in such a manner that, rising
+again, the waters may pass away by canal, and their force be neither
+so unrestrained nor so dangerous. So it happens with fortune, who
+shows her power where valour has not prepared to resist her, and
+thither she turns her forces where she knows that barriers and
+defences have not been raised to constrain her.
+  And if you will consider Italy, which is the seat of these
+changes, and which has given to them their impulse, you will see it to
+be an open country without barriers and without any defence. For if it
+had been defended by proper valour, as are Germany, Spain, and France,
+either this invasion would not have made the great changes it has made
+or it would not have come at all. And this I consider enough to say
+concerning resistance to fortune in general.
+  But confining myself more to the particular, I say that a prince may
+be seen happy to-day and ruined to-morrow without having shown any
+change of disposition or character. This, I believe, arises firstly
+from causes that have already been discussed at length, namely, that
+the prince who relies entirely upon fortune is lost when it changes. I
+believe also that he will be successful who directs his actions
+according to the spirit of the times, and that he whose actions do not
+accord with the times will not be successful. Because men are seen, in
+affairs that lead to the end which every man has before him, namely,
+glory and riches, to get there by various methods; one with caution,
+another with haste; one by force, another by skill; one by patience,
+another by its opposite; and each one succeeds in reaching the goal by
+a different method. One can also see of two cautious men the one
+attain his end, the other fail; and similarly, two men by different
+observances are equally successful, the one being cautious, the
+other impetuous; all this arises from nothing else than whether or not
+they conform in their methods to the spirit of the times. This follows
+from what I have said, that two men working differently bring about
+the same effect, and of two working similarly, one attains his
+object and the other does not.
+  Changes in estate also issue from this, for if, to one who governs
+himself with caution and patience, times and affairs converge in
+such a way that his administration is successful, his fortune is made;
+but if times and affairs change, he is ruined if he does not change
+his course of action. But a man is not often found sufficiently
+circumspect to know how to accommodate himself to the change, both
+because he cannot deviate from what nature inclines him to, and also
+because, having always prospered by acting in one way, he cannot be
+persuaded that it is well to leave it; and, therefore, the cautious
+man, when it is time to turn adventurous, does not know how to do
+it, hence he is ruined; but had he changed his conduct with the
+times fortune would not have changed.
+  Pope Julius II went to work impetuously in all his affairs, and
+found the times and circumstances conform so well to that line of
+action that he always met with success. Consider his first
+enterprise against Bologna, Messer Giovanni Bentivogli being still
+alive. The Venetians were not agreeable to it, nor was the King of
+Spain, and he had the enterprise still under discussion with the
+King of France; nevertheless he personally entered upon the expedition
+with his accustomed boldness and energy, a move which made Spain and
+the Venetians stand irresolute and passive, the latter from fear,
+the former from desire to recover all the kingdom of Naples; on the
+other hand, he drew after him the King of France, because that king,
+having observed the movement, and desiring to make the Pope his friend
+so as to humble the Venetians, found it impossible to refuse him
+soldiers without manifestly offending him. Therefore Julius with his
+impetuous action accomplished what no other pontiff with simple
+human wisdom could have done; for if he had waited in Rome until he
+could get away, with his plans arranged and everything fixed, as any
+other pontiff would have done, he would never have succeeded.
+Because the King of France would have made a thousand excuses, and the
+others would have raised a thousand fears.
+  I will leave his other actions alone, as they were all alike, and
+they all succeeded, for the shortness of his life did not let him
+experience the contrary; but if circumstances had arisen which
+required him to go cautiously, his ruin would have followed, because
+he would never have deviated from those ways to which nature
+inclined him.
+  I conclude therefore that, fortune being changeful and mankind
+steadfast in their ways, so long as the two are in agreement men are
+successful, but unsuccessful when they fall out. For my part I
+consider that it is better to be adventurous than cautious, because
+fortune is a woman, and if you wish to keep her under it is
+necessary to beat and ill-use her; and it is seen that she allows
+herself to be mastered by the adventurous rather than by those who
+go to work more coldly. She is, therefore, always, woman-like, a lover
+of young men, because they are less cautious, more violent, and with
+more audacity command her.
+                             CHAPTER XXVI
+         AN EXHORTATION TO LIBERATE ITALY FROM THE BARBARIANS
+
+  HAVING carefully considered the subject of the above discourses, and
+wondering within myself whether the present times were propitious to a
+new prince, and whether there were the elements that would give an
+opportunity to a wise and virtuous one to introduce a new order of
+things which would do honour to him and good to the people of this
+country, it appears to me that so many things concur to favour a new
+prince that I never knew a time more fit than the present.
+  And if, as I said, it was necessary that the people of Israel should
+be captive so as to make manifest the ability of Moses; that the
+Persians should be oppressed by the Medes so as to discover the
+greatness of the soul of Cyrus; and that the Athenians should be
+dispersed to illustrate the capabilities of Theseus: then at the
+present time, in order to discover the virtue of an Italian spirit, it
+was necessary that Italy should be reduced to the extremity she is now
+in, that she should be more enslaved than the Hebrews, more
+oppressed than the Persians, more scattered than the Athenians;
+without head, without order, beaten, despoiled, torn, overrun; and
+to have endured every kind of desolation.
+  Although lately some spark may have been shown by one, which made us
+think he was ordained by God for our redemption, nevertheless it was
+afterwards seen, in the height of his career, that fortune rejected
+him; so that Italy, left as without life, waits for him who shall
+yet heal her wounds and put an end to the ravaging and plundering of
+Lombardy, to the swindling and taxing of the kingdom and of Tuscany,
+and cleanse those sores that for long have festered. It is seen how
+she entreats God to send someone who shall deliver her from these
+wrongs and barbarous insolencies. It is seen also that she is ready
+and willing to follow a banner if only someone will raise it.
+  Nor is there to be seen at present one in whom she can place more
+hope than in your illustrious house, with its valour and fortune,
+favoured by God and by the Church of which it is now the chief, and
+which could be made the head of this redemption. This will not be
+difficult if you will recall to yourself the actions and lives of
+the men I have named. And although they were great and wonderful
+men, yet they were men, and each one of them had no more opportunity
+than the present offers, for their enterprises were neither more
+just nor easier than this, nor was God more their friend than He is
+yours.
+  With us there is great justice, because that war is just which is
+necessary, and arms are hallowed when there is no other hope but in
+them. Here there is the greatest willingness, and where the
+willingness is great the difficulties cannot be great if you will only
+follow those men to whom I have directed your attention. Further
+than this, how extraordinarily the ways of God have been manifested
+beyond example: the sea is divided, a cloud has led the way, the
+rock has poured forth water, it has rained manna, everything has
+contributed to your greatness; you ought to do the rest. God is not
+willing to do everything, and thus take away our free will and that
+share of glory which belongs to us.
+  And it is not to be wondered at if none of the above-named
+Italians have been able to accomplish all that is expected from your
+illustrious house; and if in so many revolutions in Italy, and in so
+many campaigns, it has always appeared as if military virtue were
+exhausted, this has happened because the old order of things was not
+good, and none of us have known how to find a new one. And nothing
+honours a man more than to establish new laws and new ordinances
+when he himself was newly risen. Such things when they are well
+founded and dignified will make him revered and admired, and in
+Italy there are not wanting opportunities to bring such into use in
+every form.
+  Here there is great valour in the limbs whilst it fails in the head.
+Look attentively at the duels and the hand-to-hand combats, how
+superior the Italians are in strength, dexterity, and subtlety. But
+when it comes to armies they do not bear comparison, and this
+springs entirely from the insufficiency of the leaders, since those
+who are capable are not obedient, and each one seems to himself to
+know, there having never been any one so distinguished above the rest,
+either by valour or fortune, that others would yield to him. Hence
+it is that for so long a time, and during so much fighting in the past
+twenty years, whenever there has been an army wholly Italian, it has
+always given a poor account of itself; as witness Taro, Alessandria,
+Capua, Genoa, Vaila, Bologna, Mestre.
+  If, therefore, your illustrious house wishes to follow those
+remarkable men who have redeemed their country, it is necessary before
+all things, as a true foundation for every enterprise, to be
+provided with your own forces, because there can be no more
+faithful, truer, or better soldiers. And although singly they are
+good, altogether they will be much better when they find themselves
+commanded by their prince, honoured by him, and maintained at his
+expense. Therefore it is necessary to be prepared with such arms, so
+that you can be defended against foreigners by Italian valour.
+  And although Swiss and Spanish infantry may be considered very
+formidable, nevertheless there is a defect in both, by reason of which
+a third order would not only be able to oppose them, but might be
+relied upon to overthrow them. For the Spaniards cannot resist
+cavalry, and the Switzers are afraid of infantry whenever they
+encounter them in close combat. Owing to this, as has been and may
+again be seen, the Spaniards are unable to resist French cavalry,
+and the Switzers are overthrown by infantry. And although a complete
+proof of this latter cannot be shown, nevertheless there was some
+evidence of it at the battle of Ravenna, when the Spanish infantry
+were confronted by German battalions, who follow the same tactics as
+the Swiss; when the Spaniards, by agility of body and with the aid
+of their shields, got in under the pikes of the Germans and stood
+out of danger, able to attack, while the Germans stood helpless,
+and, if the cavalry had not dashed up, all would have been over with
+them. It is possible, therefore, knowing the defects of both these
+infantries, to invent a new one, which will resist cavalry and not
+be afraid of infantry; this need not create a new order of arms, but a
+variation upon the old. And these are the kind of improvements which
+confer reputation and power upon a new prince.
+  This opportunity, therefore, ought not to be allowed to pass for
+letting Italy at last see her liberator appear. Nor can one express
+the love with which he would be received in all those provinces
+which have suffered so much from these foreign scourings, with what
+thirst for revenge, with what stubborn faith, with what devotion, with
+what tears. What door would be closed to him? Who would refuse
+obedience to him? What envy would hinder him? What Italian would
+refuse him homage? To all of us this barbarous dominion stinks. Let,
+therefore, your illustrious house take up this charge with that
+courage and hope with which all just enterprises are undertaken, so
+that under its standard our native country may be ennobled, and
+under its auspices may be verified that saying of Petrarch:
+
+                Virtu contro al Furore
+              Prendera l'arme, e fia il combatter corto:
+                Che l'antico valore
+              Negli italici cuor non e ancor morto.*
+
+  * Virtue against fury shall advance the fight,
+    And it i' th' combat soon shall put to flight;
+    For the old Roman, valour is not dead,
+    Nor in th' Italians' breasts extinguished.
+
+
+                               THE END
+
+

Added: test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-output.txt
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-output.txt?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-output.txt (added)
+++ test-suite/trunk/MultiSource/Applications/lua/input/wordfreq-output.txt Sat Oct  4 15:58:08 2008
@@ -0,0 +1,3380 @@
+   1697 the
+   1327 to
+   1189 and
+    895 of
+    551 in
+    549 he
+    479 that
+    442 a
+    394 it
+    360 his
+    359 not
+    347 be
+    339 is
+    330 by
+    303 have
+    300 they
+    297 for
+    272 him
+    252 them
+    250 who
+    239 with
+    239 one
+    235 are
+    222 which
+    219 as
+    199 but
+    193 this
+    180 prince
+    168 will
+    163 their
+    156 had
+    155 or
+    151 so
+    149 was
+    149 from
+    145 those
+    134 because
+    133 if
+    132 you
+    132 has
+    129 i
+    125 all
+    123 been
+    121 when
+    114 more
+    107 would
+    107 on
+    102 himself
+     99 were
+     99 there
+     95 people
+     92 other
+     91 can
+     89 at
+     87 being
+     86 than
+     86 ought
+     86 men
+     85 such
+     78 should
+     76 therefore
+     75 these
+     74 may
+     72 own
+     71 state
+     71 others
+     71 always
+     69 against
+     68 any
+     67 do
+     65 only
+     65 no
+     65 having
+     64 new
+     64 either
+     61 how
+     60 many
+     60 cannot
+     58 time
+     58 good
+     56 never
+     55 necessary
+     53 nor
+     53 great
+     52 princes
+     51 arms
+     50 without
+     50 things
+     50 man
+     50 did
+     49 much
+     49 make
+     49 made
+     49 king
+     49 an
+     48 way
+     46 themselves
+     45 some
+     45 italy
+     45 fear
+     44 well
+     44 soldiers
+     44 first
+     44 above
+     43 fortune
+     43 able
+     42 whom
+     42 keep
+     40 what
+     40 under
+     40 hold
+     39 two
+     39 take
+     39 every
+     39 could
+     38 into
+     37 yet
+     37 does
+     36 out
+     36 duke
+     36 alexander
+     34 thus
+     33 your
+     33 pope
+     33 france
+     33 country
+     33 considered
+     32 subjects
+     32 seen
+     32 found
+     32 although
+     32 also
+     31 wish
+     31 very
+     31 kingdom
+     31 its
+     30 war
+     30 times
+     30 another
+     30 after
+     29 shall
+     29 power
+     29 most
+     29 long
+     29 both
+     29 become
+     29 afterwards
+     29 affairs
+     28 up
+     28 through
+     28 say
+     28 our
+     28 nevertheless
+     27 then
+     27 states
+     27 principalities
+     27 entirely
+     27 citizens
+     26 chapter
+     26 acquired
+     25 venetians
+     25 secure
+     25 said
+     25 principality
+     25 must
+     25 little
+     25 her
+     25 find
+     25 difficulties
+     24 wise
+     24 whilst
+     24 order
+     24 nobles
+     24 let
+     24 know
+     24 concerning
+     23 forces
+     23 armed
+     23 ability
+     22 upon
+     22 she
+     22 consider
+     22 church
+     22 army
+     21 ruin
+     21 reputation
+     21 might
+     21 hated
+     21 friends
+     21 come
+     21 before
+     20 rome
+     20 powerful
+     20 now
+     20 nothing
+     20 done
+     20 actions
+     19 valour
+     19 reasons
+     19 opportunity
+     19 old
+     19 neither
+     19 mind
+     19 less
+     19 kept
+     19 government
+     19 few
+     19 favour
+     19 avoid
+     19 authority
+     18 see
+     18 once
+     18 lost
+     18 held
+     18 hatred
+     18 given
+     18 defend
+     18 came
+     18 away
+     17 where
+     17 taken
+     17 reason
+     17 private
+     17 me
+     17 like
+     17 give
+     17 difficulty
+     17 cause
+     17 brought
+     16 ways
+     16 use
+     16 romans
+     16 present
+     16 orsini
+     16 need
+     16 mercenaries
+     16 means
+     16 life
+     16 follow
+     16 examples
+     16 everything
+     16 empire
+     16 easily
+     16 cruelty
+     16 course
+     16 called
+     16 better
+     16 attack
+     16 among
+     15 wishing
+     15 unless
+     15 subject
+     15 over
+     15 milan
+     15 live
+     15 liberality
+     15 laws
+     15 hand
+     15 except
+     15 example
+     15 enemies
+     15 case
+     14 we
+     14 us
+     14 too
+     14 spain
+     14 romagna
+     14 rather
+     14 compelled
+     14 became
+     14 armies
+     14 again
+     13 years
+     13 whether
+     13 turned
+     13 second
+     13 rules
+     13 otherwise
+     13 ones
+     13 killed
+     13 hostile
+     13 hence
+     13 greatness
+     13 giovanni
+     13 gain
+     13 fortresses
+     13 ever
+     13 enemy
+     13 end
+     13 discuss
+     13 death
+     13 cities
+     13 bad
+     13 appear
+     13 anything
+     13 accustomed
+     12 sufficient
+     12 seeing
+     12 same
+     12 rule
+     12 powers
+     12 master
+     12 louis
+     12 leave
+     12 knew
+     12 infantry
+     12 greece
+     12 god
+     12 get
+     12 french
+     12 foundations
+     12 former
+     12 force
+     12 florentines
+     12 feared
+     12 factions
+     12 especially
+     12 enough
+     12 emperor
+     12 else
+     12 easy
+     12 down
+     12 difficult
+     12 conquered
+     12 city
+     12 change
+     12 believe
+     11 wished
+     11 trouble
+     11 taking
+     11 still
+     11 stand
+     11 speak
+     11 sent
+     11 roman
+     11 raised
+     11 quickly
+     11 place
+     11 often
+     11 nature
+     11 lose
+     11 longer
+     11 latter
+     11 laid
+     11 known
+     11 julius
+     11 further
+     11 forced
+     11 faithful
+     11 faith
+     11 destroyed
+     11 danger
+     11 causes
+     11 caused
+     11 bring
+     11 beginning
+     11 auxiliaries
+     11 already
+     11 about
+     10 willing
+     10 whole
+     10 understand
+     10 turk
+     10 thing
+     10 switzers
+     10 strength
+     10 soon
+     10 son
+     10 shown
+     10 show
+     10 sforza
+     10 security
+     10 s
+     10 rest
+     10 reproach
+     10 person
+     10 peace
+     10 oppressed
+     10 opinion
+     10 none
+     10 necessity
+     10 naples
+     10 methods
+     10 loved
+     10 lombardy
+     10 liberal
+     10 injure
+     10 hereditary
+     10 greater
+     10 go
+     10 friendly
+     10 followed
+     10 family
+     10 evil
+     10 each
+     10 despised
+     10 courage
+     10 comes
+     10 changes
+     10 care
+     10 attacked
+     10 arise
+     10 ancient
+     10 alone
+     10 aid
+     10 according
+      9 yourself
+      9 turn
+      9 thousand
+      9 support
+      9 severus
+      9 senate
+      9 ruined
+      9 resist
+      9 remain
+      9 rely
+      9 put
+      9 observed
+      9 my
+      9 military
+      9 messer
+      9 maintain
+      9 hope
+      9 happens
+      9 hands
+      9 glory
+      9 follows
+      9 established
+      9 enterprises
+      9 ease
+      9 desire
+      9 dangers
+      9 cyrus
+      9 contrary
+      9 cesare
+      9 around
+      9 arose
+      8 within
+      8 wishes
+      8 wisdom
+      8 whenever
+      8 vitelli
+      8 truth
+      8 towards
+      8 third
+      8 succeeded
+      8 soldiery
+      8 side
+      8 short
+      8 servant
+      8 rise
+      8 republics
+      8 ready
+      8 qualities
+      8 property
+      8 possession
+      8 position
+      8 point
+      8 pass
+      8 partly
+      8 owing
+      8 overcome
+      8 marcus
+      8 lived
+      8 keeping
+      8 italian
+      8 impossible
+      8 head
+      8 happened
+      8 greatest
+      8 governed
+      8 goodwill
+      8 giving
+      8 gave
+      8 foreigners
+      8 fight
+      8 father
+      8 far
+      8 fail
+      8 expect
+      8 enterprise
+      8 emperors
+      8 designs
+      8 defence
+      8 deceived
+      8 dangerous
+      8 conduct
+      8 colonna
+      8 charles
+      8 character
+      8 captain
+      8 borgia
+      8 body
+      8 benefits
+      8 avoided
+      8 assistance
+      8 arises
+      8 amongst
+      8 action
+      8 act
+      8 account
+      7 whoever
+      7 virtue
+      7 useful
+      7 unarmed
+      7 true
+      7 troubles
+      7 towns
+      7 took
+      7 thought
+      7 someone
+      7 servants
+      7 satisfy
+      7 ruled
+      7 remedy
+      7 remains
+      7 recognize
+      7 rapacious
+      7 quiet
+      7 proper
+      7 possible
+      7 poor
+      7 party
+      7 outside
+      7 opposite
+      7 natural
+      7 money
+      7 memory
+      7 matter
+      7 maintained
+      7 lord
+      7 left
+      7 knowing
+      7 kind
+      7 house
+      7 honour
+      7 help
+      7 friend
+      7 free
+      7 francesco
+      7 form
+      7 excellent
+      7 even
+      7 esteemed
+      7 elected
+      7 dominions
+      7 doing
+      7 discussed
+      7 deeds
+      7 cruel
+      7 contempt
+      7 conspired
+      7 conquer
+      7 circumstances
+      7 cavalry
+      7 captains
+      7 bologna
+      7 besides
+      7 becomes
+      7 barons
+      7 art
+      7 ambition
+      7 advantage
+      6 yield
+      6 year
+      6 world
+      6 work
+      6 united
+      6 temporal
+      6 successful
+      6 study
+      6 stood
+      6 spaniards
+      6 set
+      6 seize
+      6 securely
+      6 scipio
+      6 san
+      6 reply
+      6 renown
+      6 recall
+      6 reasonable
+      6 quite
+      6 question
+      6 prudent
+      6 prepared
+      6 pisa
+      6 pertinax
+      6 part
+      6 open
+      6 offend
+      6 off
+      6 obedience
+      6 notwithstanding
+      6 named
+      6 name
+      6 moses
+      6 measures
+      6 maximinus
+      6 matters
+      6 making
+      6 lords
+      6 lion
+      6 liberty
+      6 itself
+      6 infinite
+      6 inasmuch
+      6 imitate
+      6 illustrious
+      6 ii
+      6 here
+      6 happen
+      6 half
+      6 full
+      6 fox
+      6 firstly
+      6 field
+      6 fermo
+      6 extraordinary
+      6 exterminated
+      6 experience
+      6 exercise
+      6 effect
+      6 driven
+      6 doubtful
+      6 divided
+      6 distrusted
+      6 depend
+      6 defended
+      6 deceive
+      6 da
+      6 conclusion
+      6 command
+      6 colonies
+      6 civil
+      6 blame
+      6 beyond
+      6 best
+      6 becoming
+      6 back
+      6 assist
+      6 allowed
+      6 agathocles
+      6 adversity
+      6 acquiring
+      5 yours
+      5 yielded
+      5 win
+      5 whereas
+      5 want
+      5 violence
+      5 victory
+      5 vi
+      5 utmost
+      5 useless
+      5 until
+      5 tuscany
+      5 together
+      5 throne
+      5 think
+      5 territory
+      5 syracuse
+      5 strong
+      5 speaking
+      5 sooner
+      5 since
+      5 send
+      5 seizing
+      5 saying
+      5 satisfied
+      5 satisfaction
+      5 rouen
+      5 rose
+      5 risen
+      5 respected
+      5 republic
+      5 remained
+      5 relied
+      5 receive
+      5 reach
+      5 philip
+      5 overthrown
+      5 ordinances
+      5 occupied
+      5 obtained
+      5 observe
+      5 obey
+      5 number
+      5 murdered
+      5 moved
+      5 mercenary
+      5 mentioned
+      5 makes
+      5 majesty
+      5 loss
+      5 length
+      5 knowledge
+      5 italians
+      5 injured
+      5 inclined
+      5 human
+      5 honoured
+      5 honest
+      5 happy
+      5 guard
+      5 govern
+      5 gentlemen
+      5 generally
+      5 general
+      5 gained
+      5 founded
+      5 forget
+      5 foreign
+      5 fidelity
+      5 ferrara
+      5 fall
+      5 fails
+      5 fact
+      5 excuse
+      5 endless
+      5 effeminate
+      5 drive
+      5 discipline
+      5 different
+      5 died
+      5 die
+      5 destroy
+      5 degree
+      5 day
+      5 consideration
+      5 commodus
+      5 choice
+      5 chance
+      5 cautious
+      5 caution
+      5 caesar
+      5 bound
+      5 bentivoglio
+      5 belongs
+      5 began
+      5 beaten
+      5 appears
+      5 appearing
+      5 antiochus
+      5 answer
+      5 albinus
+      5 advantageous
+      5 acquisition
+      5 acquire
+      5 achaeans
+      4 xii
+      4 written
+      4 worthy
+      4 withstand
+      4 whose
+      4 went
+      4 warlike
+      4 wanting
+      4 virtues
+      4 vices
+      4 valiant
+      4 used
+      4 urbino
+      4 unite
+      4 unable
+      4 tumults
+      4 trust
+      4 told
+      4 three
+      4 theseus
+      4 takes
+      4 sufficiently
+      4 success
+      4 steadfast
+      4 station
+      4 stated
+      4 spoken
+      4 spirit
+      4 spartans
+      4 similar
+      4 self
+      4 seek
+      4 scattered
+      4 saw
+      4 revered
+      4 returning
+      4 retain
+      4 resources
+      4 resolved
+      4 reside
+      4 reputed
+      4 render
+      4 religion
+      4 regard
+      4 recognized
+      4 recent
+      4 received
+      4 real
+      4 rash
+      4 rank
+      4 prudence
+      4 provided
+      4 protection
+      4 profession
+      4 preserved
+      4 praised
+      4 praise
+      4 popular
+      4 places
+      4 permitted
+      4 permit
+      4 peril
+      4 pay
+      4 passed
+      4 particular
+      4 paolo
+      4 pandolfo
+      4 oppose
+      4 opinions
+      4 oliverotto
+      4 offer
+      4 noted
+      4 next
+      4 neutral
+      4 neighbours
+      4 myself
+      4 modern
+      4 mixed
+      4 minds
+      4 method
+      4 merciful
+      4 meet
+      4 measure
+      4 meanness
+      4 mean
+      4 manifest
+      4 malcontents
+      4 maintaining
+      4 love
+      4 look
+      4 lives
+      4 legate
+      4 led
+      4 lay
+      4 last
+      4 language
+      4 julian
+      4 judgment
+      4 injuries
+      4 important
+      4 holding
+      4 highly
+      4 hardships
+      4 genius
+      4 future
+      4 freedom
+      4 foundation
+      4 formerly
+      4 foreigner
+      4 following
+      4 flatterers
+      4 fixed
+      4 firm
+      4 finds
+      4 finding
+      4 everybody
+      4 entering
+      4 energy
+      4 endeavour
+      4 enable
+      4 during
+      4 dominion
+      4 distant
+      4 disposed
+      4 disorders
+      4 discretion
+      4 difference
+      4 deprived
+      4 declare
+      4 darius
+      4 customs
+      4 crushed
+      4 cruelties
+      4 credit
+      4 created
+      4 countries
+      4 control
+      4 content
+      4 conspirator
+      4 considers
+      4 consented
+      4 conquers
+      4 conqueror
+      4 conditions
+      4 common
+      4 clear
+      4 certain
+      4 carthaginians
+      4 carefully
+      4 cardinal
+      4 capable
+      4 brings
+      4 born
+      4 bind
+      4 beloved
+      4 bear
+      4 battle
+      4 attributed
+      4 attain
+      4 assisted
+      4 antoninus
+      4 annexed
+      4 ambitions
+      4 altogether
+      4 almost
+      4 allow
+      4 allies
+      4 africa
+      4 aetolians
+      4 adherents
+      4 added
+      4 accordingly
+      3 writers
+      3 won
+      3 winning
+      3 willingly
+      3 wickedness
+      3 why
+      3 while
+      3 wherein
+      3 whence
+      3 weak
+      3 vincula
+      3 valentino
+      3 vaila
+      3 usurper
+      3 usual
+      3 using
+      3 urged
+      3 troubled
+      3 treated
+      3 town
+      3 thoroughly
+      3 ten
+      3 sustained
+      3 successors
+      3 succeed
+      3 steps
+      3 sought
+      3 sons
+      3 sometimes
+      3 something
+      3 solely
+      3 soldan
+      3 skill
+      3 sins
+      3 sight
+      3 siena
+      3 showing
+      3 showed
+      3 settled
+      3 serve
+      3 seems
+      3 secured
+      3 save
+      3 safe
+      3 run
+      3 routed
+      3 romulus
+      3 robbery
+      3 rivers
+      3 rising
+      3 restored
+      3 remarkable
+      3 religious
+      3 relations
+      3 refuse
+      3 reduced
+      3 recourse
+      3 recognizing
+      3 rebellion
+      3 rebelled
+      3 reaching
+      3 reached
+      3 rare
+      3 raise
+      3 provision
+      3 provinces
+      3 province
+      3 proved
+      3 prosperity
+      3 properly
+      3 proceed
+      3 prime
+      3 pretext
+      3 practised
+      3 potentates
+      3 possessed
+      3 possess
+      3 pontificate
+      3 pontiff
+      3 please
+      3 plains
+      3 pietro
+      3 persians
+      3 past
+      3 parties
+      3 overthrow
+      3 overcoming
+      3 organized
+      3 oppressing
+      3 opportunities
+      3 offending
+      3 odious
+      3 obligation
+      3 niger
+      3 newly
+      3 neglect
+      3 needed
+      3 namely
+      3 murders
+      3 moreover
+      3 mistake
+      3 miserly
+      3 mercy
+      3 medes
+      3 masters
+      3 mark
+      3 manner
+      3 manage
+      3 magistrates
+      3 looks
+      3 listen
+      3 lesser
+      3 least
+      3 lead
+      3 later
+      3 late
+      3 land
+      3 knife
+      3 kingdoms
+      3 kinds
+      3 keeps
+      3 justice
+      3 just
+      3 irresolute
+      3 intention
+      3 instance
+      3 insolence
+      3 injury
+      3 increase
+      3 impression
+      3 immediately
+      3 imitation
+      3 imitated
+      3 hurt
+      3 hundred
+      3 humanity
+      3 humane
+      3 honours
+      3 honourably
+      3 histories
+      3 higher
+      3 high
+      3 hesitate
+      3 grave
+      3 got
+      3 giorgio
+      3 friendship
+      3 fostered
+      3 forth
+      3 forli
+      3 foreseen
+      3 fogliani
+      3 florence
+      3 five
+      3 fighting
+      3 ferdinand
+      3 fellow
+      3 favours
+      3 favouring
+      3 favoured
+      3 fatigue
+      3 fame
+      3 faenza
+      3 extinguished
+      3 expected
+      3 exercises
+      3 examine
+      3 evils
+      3 establish
+      3 errors
+      3 endured
+      3 endure
+      3 easier
+      3 durable
+      3 duchy
+      3 dread
+      3 drawn
+      3 doubt
+      3 double
+      3 disturbed
+      3 dispersed
+      3 disgusted
+      3 discussion
+      3 discover
+      3 discourse
+      3 discontented
+      3 disarmed
+      3 dignity
+      3 devoted
+      3 destruction
+      3 despoiled
+      3 desires
+      3 desired
+      3 deferred
+      3 defect
+      3 decided
+      3 dead
+      3 days
+      3 daily
+      3 custom
+      3 craft
+      3 cowardly
+      3 count
+      3 counsels
+      3 counsel
+      3 contributed
+      3 continued
+      3 contemptible
+      3 conspiracies
+      3 considering
+      3 consent
+      3 confer
+      3 composed
+      3 complete
+      3 compass
+      3 closely
+      3 citizen
+      3 chief
+      3 characteristics
+      3 changed
+      3 cares
+      3 cardinals
+      3 caracalla
+      3 builds
+      3 build
+      3 boldness
+      3 bold
+      3 blood
+      3 blamed
+      3 birth
+      3 between
+      3 beat
+      3 beast
+      3 barriers
+      3 barbarous
+      3 badly
+      3 avoiding
+      3 avail
+      3 attention
+      3 attacks
+      3 athenians
+      3 asia
+      3 ascanio
+      3 arbiter
+      3 answered
+      3 annibale
+      3 ambitious
+      3 am
+      3 allied
+      3 aim
+      3 aggrandized
+      3 afraid
+      3 affection
+      3 advice
+      3 adventurous
+      3 advance
+      3 admired
+      3 admirable
+      3 administration
+      3 adduce
+      3 ad
+      3 achievements
+      3 accomplished
+      2 xi
+      2 xenophon
+      2 wrote
+      2 wrongs
+      2 write
+      2 works
+      2 working
+      2 word
+      2 wonderful
+      2 wondered
+      2 wonder
+      2 women
+      2 woman
+      2 wolves
+      2 wiped
+      2 willingness
+      2 wicked
+      2 whereby
+      2 weigh
+      2 weakness
+      2 weakest
+      2 walls
+      2 wait
+      2 vulgar
+      2 vitellozzo
+      2 viii
+      2 vii
+      2 vigorous
+      2 victories
+      2 victor
+      2 vent
+      2 venafro
+      2 various
+      2 valued
+      2 value
+      2 valleys
+      2 vain
+      2 upright
+      2 unstable
+      2 unlike
+      2 union
+      2 unfaithful
+      2 unexpectedly
+      2 unexpected
+      2 undertaken
+      2 undertake
+      2 understands
+      2 understanding
+      2 uncertain
+      2 twenty
+      2 turns
+      2 trusting
+      2 trusted
+      2 tributary
+      2 treatment
+      2 title
+      2 thrown
+      2 though
+      2 thinking
+      2 theirs
+      2 th
+      2 terrify
+      2 tell
+      2 taxes
+      2 tax
+      2 system
+      2 syracusans
+      2 syracusan
+      2 sword
+      2 swiss
+      2 survived
+      2 supreme
+      2 superior
+      2 superfluous
+      2 suffice
+      2 suffered
+      2 submit
+      2 strengthened
+      2 strengthen
+      2 step
+      2 started
+      2 standing
+      2 sprung
+      2 spirits
+      2 spends
+      2 spanish
+      2 sovereignty
+      2 source
+      2 soul
+      2 soft
+      2 snares
+      2 slow
+      2 sloth
+      2 slavery
+      2 sinigaglia
+      2 single
+      2 simply
+      2 simple
+      2 similarly
+      2 siege
+      2 sicily
+      2 shows
+      2 shortness
+      2 shelter
+      2 share
+      2 severities
+      2 service
+      2 select
+      2 seized
+      2 sees
+      2 seeks
+      2 seeking
+      2 secret
+      2 seated
+      2 seat
+      2 saved
+      2 saul
+      2 safer
+      2 ruling
+      2 round
+      2 rock
+      2 robbed
+      2 rob
+      2 rimini
+      2 riches
+      2 rewarded
+      2 revolt
+      2 revenge
+      2 retreat
+      2 retained
+      2 respect
+      2 resolutions
+      2 resemblance
+      2 repeated
+      2 repeat
+      2 remembered
+      2 reliable
+      2 related
+      2 rejected
+      2 reign
+      2 reduce
+      2 redemption
+      2 recover
+      2 reconciled
+      2 reasoned
+      2 readily
+      2 ravenna
+      2 rarely
+      2 rapidly
+      2 rapacity
+      2 ranks
+      2 ramiro
+      2 rally
+      2 quietly
+      2 quarrels
+      2 putting
+      2 pursue
+      2 purpose
+      2 punishment
+      2 punish
+      2 proves
+      2 prove
+      2 protected
+      2 protect
+      2 prospered
+      2 proof
+      2 progress
+      2 profit
+      2 privileges
+      2 principal
+      2 princedom
+      2 prevail
+      2 pretexts
+      2 presumptuous
+      2 preserving
+      2 precept
+      2 pre
+      2 praiseworthy
+      2 praises
+      2 practise
+      2 possessions
+      2 pontiffs
+      2 pledge
+      2 placed
+      2 pistoia
+      2 piombino
+      2 petrucci
+      2 perugia
+      2 persuaded
+      2 personally
+      2 permission
+      2 perhaps
+      2 peaceful
+      2 patrimony
+      2 patient
+      2 patience
+      2 paths
+      2 parts
+      2 partition
+      2 partisans
+      2 owed
+      2 overrun
+      2 orders
+      2 ordered
+      2 oppress
+      2 opponents
+      2 opened
+      2 oligarchy
+      2 offends
+      2 occur
+      2 obtain
+      2 observing
+      2 obliged
+      2 obligations
+      2 object
+      2 numerous
+      2 note
+      2 nobility
+      2 night
+      2 nicolo
+      2 neglected
+      2 near
+      2 natures
+      2 naturally
+      2 native
+      2 nabis
+      2 murder
+      2 multitude
+      2 mouths
+      2 morning
+      2 mitigate
+      2 minor
+      2 ministers
+      2 minister
+      2 milanese
+      2 midst
+      2 met
+      2 meeting
+      2 maximilian
+      2 material
+      2 marshes
+      2 marriage
+      2 mankind
+      2 managed
+      2 malady
+      2 macrinus
+      2 macedon
+      2 lukewarm
+      2 luck
+      2 loyalty
+      2 loyal
+      2 lower
+      2 losing
+      2 loses
+      2 lodovico
+      2 line
+      2 liable
+      2 letting
+      2 leaving
+      2 leaves
+      2 learns
+      2 leaders
+      2 leader
+      2 lands
+      2 lacks
+      2 labours
+      2 l
+      2 knows
+      2 iv
+      2 issue
+      2 israel
+      2 introduce
+      2 intolerable
+      2 interests
+      2 interest
+      2 intended
+      2 intellect
+      2 insecure
+      2 inquire
+      2 injurious
+      2 injures
+      2 inhumanity
+      2 inhabitants
+      2 ingratitude
+      2 influence
+      2 inflict
+      2 inferior
+      2 individual
+      2 indeed
+      2 increasing
+      2 impetuous
+      2 imperial
+      2 immediate
+      2 ill
+      2 humours
+      2 humble
+      2 however
+      2 houses
+      2 hopes
+      2 hoped
+      2 honouring
+      2 holds
+      2 hit
+      2 hindered
+      2 hinder
+      2 highest
+      2 hiero
+      2 herself
+      2 heliogabalus
+      2 heir
+      2 height
+      2 hectic
+      2 health
+      2 hard
+      2 handling
+      2 grow
+      2 ground
+      2 grace
+      2 governor
+      2 governments
+      2 goodness
+      2 girolamo
+      2 germany
+      2 germans
+      2 genoa
+      2 garrison
+      2 gaining
+      2 frivolous
+      2 friendships
+      2 fresh
+      2 freely
+      2 framed
+      2 fra
+      2 four
+      2 foster
+      2 forward
+      2 fortunes
+      2 fortify
+      2 fortified
+      2 formidable
+      2 formed
+      2 footsteps
+      2 footing
+      2 foothold
+      2 flight
+      2 fix
+      2 finished
+      2 fickle
+      2 ferocity
+      2 fell
+      2 fears
+      2 fearing
+      2 fate
+      2 famous
+      2 falls
+      2 fair
+      2 extreme
+      2 external
+      2 exterminate
+      2 expenses
+      2 expense
+      2 expedition
+      2 exercised
+      2 excuses
+      2 excessive
+      2 excepted
+      2 examining
+      2 examined
+      2 et
+      2 esteem
+      2 establishing
+      2 error
+      2 err
+      2 enumerated
+      2 entered
+      2 enter
+      2 enslaved
+      2 ennobled
+      2 enlisted
+      2 enlist
+      2 enjoyed
+      2 enjoy
+      2 english
+      2 enduring
+      2 endangered
+      2 encouraged
+      2 encourage
+      2 enables
+      2 employed
+      2 employ
+      2 eminent
+      2 elsewhere
+      2 elements
+      2 election
+      2 ecclesiastical
+      2 e
+      2 due
+      2 draw
+      2 door
+      2 disunited
+      2 distrust
+      2 distinguished
+      2 disposition
+      2 disorder
+      2 disgrace
+      2 discussing
+      2 discourses
+      2 disarm
+      2 directed
+      2 direct
+      2 differing
+      2 detect
+      2 design
+      2 dependants
+      2 deliberately
+      2 defences
+      2 defects
+      2 decline
+      2 declares
+      2 decision
+      2 deaths
+      2 dealt
+      2 deal
+      2 david
+      2 dare
+      2 damage
+      2 cure
+      2 curb
+      2 cunning
+      2 cry
+      2 crush
+      2 create
+      2 court
+      2 courses
+      2 courageous
+      2 corrupted
+      2 correct
+      2 conveys
+      2 contented
+      2 consume
+      2 constituted
+      2 conspires
+      2 conspire
+      2 conquerors
+      2 conquering
+      2 confronted
+      2 conform
+      2 conclude
+      2 concerns
+      2 comprehends
+      2 composite
+      2 community
+      2 committed
+      2 commit
+      2 commencement
+      2 commenced
+      2 coming
+      2 combat
+      2 college
+      2 collectively
+      2 clever
+      2 clemency
+      2 choosing
+      2 choose
+      2 chiefly
+      2 characters
+      2 characteristic
+      2 chalk
+      2 centurion
+      2 carry
+      2 careful
+      2 capua
+      2 captive
+      2 canneschi
+      2 burnt
+      2 built
+      2 brother
+      2 briefly
+      2 braccio
+      2 bondage
+      2 blows
+      2 bit
+      2 bestowed
+      2 besieging
+      2 besieged
+      2 believes
+      2 believed
+      2 begin
+      2 bears
+      2 baron
+      2 barbarity
+      2 awaited
+      2 average
+      2 avenge
+      2 attains
+      2 attained
+      2 attacking
+      2 attach
+      2 associate
+      2 aspire
+      2 ask
+      2 arrival
+      2 arranged
+      2 arm
+      2 arisen
+      2 aragon
+      2 appeared
+      2 anxious
+      2 anxiety
+      2 anxieties
+      2 antiquity
+      2 anger
+      2 amid
+      2 along
+      2 alliances
+      2 alliance
+      2 alive
+      2 alike
+      2 agree
+      2 aggrandizement
+      2 aggrandize
+      2 adopt
+      2 adds
+      2 adding
+      2 acting
+      2 acquires
+      2 acknowledged
+      2 acknowledge
+      2 achilles
+      2 accomplish
+      2 accompanied
+      2 accepted
+      2 abundance
+      2 absolute
+      2 abolished
+      2 abject
+      2 abandoned
+      1 zeal
+      1 youth
+      1 young
+      1 xxvi
+      1 xxv
+      1 xxiv
+      1 xxiii
+      1 xxii
+      1 xxi
+      1 xx
+      1 xviii
+      1 xvii
+      1 xvi
+      1 xv
+      1 xix
+      1 xiv
+      1 xiii
+      1 x
+      1 wrong
+      1 writes
+      1 wrested
+      1 wounds
+      1 worth
+      1 worst
+      1 worse
+      1 wont
+      1 wondering
+      1 witness
+      1 withstood
+      1 wit
+      1 wiser
+      1 winter
+      1 winds
+      1 wilt
+      1 wiles
+      1 wickednesses
+      1 wholly
+      1 whither
+      1 whencesoever
+      1 whatever
+      1 west
+      1 weighing
+      1 weather
+      1 weapons
+      1 weaker
+      1 weakening
+      1 weakened
+      1 weaken
+      1 waters
+      1 water
+      1 watched
+      1 watch
+      1 wastes
+      1 waste
+      1 wars
+      1 warning
+      1 warn
+      1 wanted
+      1 walking
+      1 waits
+      1 waited
+      1 w
+      1 void
+      1 vitality
+      1 visit
+      1 virtuous
+      1 virtu
+      1 virgil
+      1 violent
+      1 violator
+      1 vile
+      1 vigour
+      1 view
+      1 victorious
+      1 victims
+      1 vicinity
+      1 vice
+      1 viands
+      1 veterans
+      1 verified
+      1 vengeance
+      1 venerated
+      1 varying
+      1 vary
+      1 varies
+      1 variations
+      1 variation
+      1 variable
+      1 valorous
+      1 valore
+      1 valiantly
+      1 valentinois
+      1 v
+      1 utterly
+      1 usually
+      1 upset
+      1 upholds
+      1 uphold
+      1 upheld
+      1 upbraided
+      1 unwillingly
+      1 unwilling
+      1 unusual
+      1 untrue
+      1 unto
+      1 unsuccessful
+      1 unsettling
+      1 unsettled
+      1 unrestrained
+      1 unprotected
+      1 unnecessary
+      1 unmake
+      1 unknown
+      1 unjudged
+      1 unity
+      1 uninjured
+      1 uniformity
+      1 unified
+      1 unheard
+      1 unhappy
+      1 unguarded
+      1 ungrateful
+      1 uneasy
+      1 unduly
+      1 undone
+      1 undoes
+      1 undismayed
+      1 undertaking
+      1 understood
+      1 unconquerable
+      1 uncle
+      1 unbelieving
+      1 unbelievers
+      1 unaspiring
+      1 unaccustomed
+      1 ultimately
+      1 ultimate
+      1 twice
+      1 twelve
+      1 tuscan
+      1 turning
+      1 turks
+      1 tueri
+      1 truly
+      1 truer
+      1 trite
+      1 trifle
+      1 tried
+      1 tribute
+      1 trial
+      1 trembles
+      1 trees
+      1 treaties
+      1 tread
+      1 treachery
+      1 treacheries
+      1 translated
+      1 transgress
+      1 tranquillity
+      1 training
+      1 trained
+      1 trade
+      1 touching
+      1 touched
+      1 touch
+      1 torn
+      1 toothing
+      1 token
+      1 titus
+      1 timidity
+      1 timid
+      1 till
+      1 tightly
+      1 tighter
+      1 throw
+      1 thriftiness
+      1 threw
+      1 threatened
+      1 thrace
+      1 thoughts
+      1 thither
+      1 thirst
+      1 thirds
+      1 thirdly
+      1 thinks
+      1 thereupon
+      1 thebes
+      1 thebans
+      1 theatre
+      1 testament
+      1 test
+      1 terrified
+      1 terrible
+      1 terms
+      1 term
+      1 temporize
+      1 tempest
+      1 temperate
+      1 tedious
+      1 tears
+      1 teaches
+      1 teacher
+      1 taxing
+      1 taught
+      1 tasted
+      1 taste
+      1 taro
+      1 talia
+      1 talent
+      1 tactics
+      1 swindling
+      1 swift
+      1 sweeping
+      1 sway
+      1 sustain
+      1 suspicion
+      1 suspense
+      1 suspects
+      1 surround
+      1 surprised
+      1 surprise
+      1 supporting
+      1 supported
+      1 supplied
+      1 summit
+      1 suits
+      1 suggestions
+      1 suggested
+      1 sudden
+      1 successor
+      1 successfully
+      1 succeeds
+      1 subtlety
+      1 subsisting
+      1 subordinated
+      1 submitted
+      1 studies
+      1 stubborn
+      1 strongest
+      1 stroke
+      1 strive
+      1 strenuously
+      1 strangled
+      1 storm
+      1 stopped
+      1 stockade
+      1 stipulated
+      1 stipend
+      1 stinks
+      1 sternness
+      1 steadily
+      1 statement
+      1 statecraft
+      1 standard
+      1 stable
+      1 squandering
+      1 squander
+      1 springs
+      1 spring
+      1 sprang
+      1 spot
+      1 spoke
+      1 spiritual
+      1 spirited
+      1 spent
+      1 spend
+      1 spectacles
+      1 spectacle
+      1 special
+      1 spartan
+      1 sparta
+      1 spark
+      1 sparing
+      1 spaniard
+      1 sound
+      1 sort
+      1 sores
+      1 solid
+      1 solemn
+      1 sole
+      1 soldier
+      1 soil
+      1 societies
+      1 smallest
+      1 small
+      1 slowly
+      1 slip
+      1 sling
+      1 slightly
+      1 slay
+      1 slaves
+      1 slaughtered
+      1 skilful
+      1 sixtus
+      1 sixth
+      1 situation
+      1 sir
+      1 sinister
+      1 singly
+      1 sincere
+      1 simplicity
+      1 silent
+      1 silence
+      1 signor
+      1 signal
+      1 sienese
+      1 sickness
+      1 sick
+      1 sicilian
+      1 shut
+      1 shun
+      1 shrewdness
+      1 shortsighted
+      1 shores
+      1 shock
+      1 shifts
+      1 shifting
+      1 shields
+      1 sheltering
+      1 sheltered
+      1 sheep
+      1 sharing
+      1 shape
+      1 shameless
+      1 shadow
+      1 severity
+      1 severino
+      1 severe
+      1 settle
+      1 setting
+      1 servitude
+      1 serving
+      1 seriously
+      1 serious
+      1 sequel
+      1 separately
+      1 sends
+      1 senators
+      1 seigniors
+      1 seemed
+      1 seem
+      1 secretly
+      1 secretive
+      1 secretaries
+      1 secondly
+      1 seasons
+      1 sea
+      1 scruple
+      1 scourings
+      1 sclavonia
+      1 school
+      1 schemes
+      1 scarcity
+      1 scarcely
+      1 scanty
+      1 scali
+      1 says
+      1 savour
+      1 savonarola
+      1 satisfactorily
+      1 sanjaks
+      1 safest
+      1 safely
+      1 sad
+      1 sack
+      1 runs
+      1 running
+      1 rulers
+      1 ruining
+      1 rs
+      1 rout
+      1 roots
+      1 rode
+      1 roberto
+      1 robberies
+      1 risk
+      1 rightly
+      1 righteous
+      1 right
+      1 rid
+      1 richest
+      1 riaxis
+      1 rewards
+      1 rewarding
+      1 reward
+      1 revolutions
+      1 revenues
+      1 revealed
+      1 returned
+      1 return
+      1 retainers
+      1 results
+      1 result
+      1 rests
+      1 restrain
+      1 restore
+      1 resting
+      1 respects
+      1 respectful
+      1 resorted
+      1 resort
+      1 resolution
+      1 resisting
+      1 resistance
+      1 resides
+      1 reservation
+      1 res
+      1 requisite
+      1 required
+      1 require
+      1 repute
+      1 repudiated
+      1 reproaches
+      1 replied
+      1 replete
+      1 replace
+      1 rendered
+      1 removal
+      1 remedies
+      1 remarked
+      1 remark
+      1 remaining
+      1 relying
+      1 reluctance
+      1 relies
+      1 relationship
+      1 relating
+      1 reigned
+      1 regulated
+      1 regni
+      1 regards
+      1 regained
+      1 regain
+      1 refuge
+      1 reflected
+      1 redressed
+      1 redeemed
+      1 recur
+      1 record
+      1 recollection
+      1 reckoned
+      1 reckon
+      1 recently
+      1 recalled
+      1 rebellious
+      1 rebellions
+      1 rebel
+      1 reassure
+      1 reap
+      1 realms
+      1 really
+      1 realize
+      1 reads
+      1 read
+      1 reaches
+      1 razed
+      1 ravaging
+      1 ravaged
+      1 rashness
+      1 ransom
+      1 ran
+      1 rallying
+      1 rained
+      1 raging
+      1 raffaells
+      1 races
+      1 quit
+      1 quintius
+      1 queen
+      1 quarters
+      1 quality
+      1 qualifications
+      1 pyrrhus
+      1 pusillanimity
+      1 pursuit
+      1 punishing
+      1 punished
+      1 public
+      1 prudently
+      1 provoked
+      1 provide
+      1 proverb
+      1 prospering
+      1 prosper
+      1 prospective
+      1 prospect
+      1 proposed
+      1 proportionate
+      1 propitious
+      1 prophets
+      1 prompt
+      1 promoted
+      1 promises
+      1 promise
+      1 proficient
+      1 professions
+      1 produce
+      1 proclaimed
+      1 prisoners
+      1 prisoner
+      1 prior
+      1 principle
+      1 priests
+      1 price
+      1 prey
+      1 previous
+      1 prevent
+      1 pretender
+      1 pretence
+      1 presupposes
+      1 president
+      1 preserves
+      1 preservation
+      1 presently
+      1 prerogatives
+      1 prepare
+      1 preparations
+      1 prendera
+      1 prelates
+      1 preferred
+      1 prefects
+      1 predominancy
+      1 precepts
+      1 preceptor
+      1 precautions
+      1 preaches
+      1 prayers
+      1 praetorian
+      1 praetor
+      1 practice
+      1 powerless
+      1 pow
+      1 poverty
+      1 poured
+      1 pounced
+      1 potter
+      1 posture
+      1 possessors
+      1 possessing
+      1 possesses
+      1 positions
+      1 portentous
+      1 pondering
+      1 policy
+      1 poison
+      1 plundering
+      1 plundered
+      1 plot
+      1 pliant
+      1 plebeians
+      1 pleasure
+      1 pleases
+      1 plea
+      1 plans
+      1 pitigliano
+      1 pisans
+      1 pious
+      1 pillaged
+      1 pillage
+      1 pikes
+      1 pieces
+      1 pictured
+      1 piazza
+      1 physicians
+      1 philosopher
+      1 philopoemen
+      1 philistine
+      1 petrarch
+      1 pest
+      1 pesaro
+      1 persuasions
+      1 persuasion
+      1 persuades
+      1 persuade
+      1 persons
+      1 personages
+      1 persisted
+      1 perpetrated
+      1 permitting
+      1 period
+      1 perils
+      1 perilous
+      1 perform
+      1 perfectly
+      1 perceiving
+      1 perceived
+      1 perceive
+      1 peoples
+      1 pensioner
+      1 penalty
+      1 peaceably
+      1 payments
+      1 patron
+      1 path
+      1 passive
+      1 passing
+      1 particulars
+      1 particularly
+      1 parricide
+      1 parliament
+      1 papacy
+      1 paltry
+      1 palace
+      1 paid
+      1 owe
+      1 overreached
+      1 overflows
+      1 overcame
+      1 ourselves
+      1 orphan
+      1 originated
+      1 originate
+      1 oriental
+      1 ordinary
+      1 ordinance
+      1 ordained
+      1 orco
+      1 opposition
+      1 opposing
+      1 opposed
+      1 opening
+      1 oneself
+      1 omit
+      1 officials
+      1 official
+      1 office
+      1 offers
+      1 offering
+      1 offered
+      1 offended
+      1 offence
+      1 occurred
+      1 occupy
+      1 occasioned
+      1 obtains
+      1 obstructed
+      1 obstinate
+      1 obstacles
+      1 observes
+      1 observation
+      1 observances
+      1 observance
+      1 objects
+      1 objections
+      1 obedient
+      1 oaths
+      1 nursed
+      1 nurse
+      1 numberless
+      1 numantia
+      1 novitas
+      1 notice
+      1 noteworthy
+      1 notable
+      1 normandy
+      1 nonobservance
+      1 non
+      1 nobody
+      1 nobly
+      1 noblemen
+      1 neutrality
+      1 nephew
+      1 negli
+      1 neglects
+      1 nefarious
+      1 necessities
+      1 necessarily
+      1 natives
+      1 national
+      1 narrowly
+      1 nantes
+      1 multiply
+      1 mud
+      1 movements
+      1 movement
+      1 move
+      1 mouth
+      1 mounted
+      1 mountains
+      1 mount
+      1 mould
+      1 motives
+      1 mother
+      1 morto
+      1 morrow
+      1 moors
+      1 monument
+      1 months
+      1 month
+      1 monarchy
+      1 moliri
+      1 modest
+      1 moderated
+      1 moderate
+      1 misuse
+      1 mistakes
+      1 misfortunes
+      1 miracle
+      1 minority
+      1 mild
+      1 milano
+      1 mestre
+      1 merits
+      1 merited
+      1 mere
+      1 mentioning
+      1 mention
+      1 memories
+      1 members
+      1 member
+      1 meets
+      1 medicine
+      1 mediation
+      1 measured
+      1 meaning
+      1 maximus
+      1 maternal
+      1 mastered
+      1 marvel
+      1 martial
+      1 marriott
+      1 marquess
+      1 mantua
+      1 manna
+      1 manifestly
+      1 manifested
+      1 management
+      1 malignity
+      1 malcontent
+      1 majority
+      1 maintains
+      1 mainly
+      1 magnificence
+      1 magnanimous
+      1 magistrate
+      1 magistracy
+      1 magione
+      1 machiavelli
+      1 macedonia
+      1 luxuries
+      1 lukewarmly
+      1 lucchesi
+      1 lucca
+      1 luca
+      1 low
+      1 loving
+      1 lovers
+      1 lover
+      1 losses
+      1 lorqua
+      1 lordship
+      1 looked
+      1 longest
+      1 lofty
+      1 lodged
+      1 locrians
+      1 locality
+      1 localities
+      1 living
+      1 lively
+      1 listener
+      1 lips
+      1 link
+      1 limits
+      1 limbs
+      1 liking
+      1 likewise
+      1 lightly
+      1 lighter
+      1 lie
+      1 licentiously
+      1 licence
+      1 liberator
+      1 liberating
+      1 liberated
+      1 liberate
+      1 lets
+      1 lest
+      1 lessen
+      1 leo
+      1 legitimate
+      1 learning
+      1 learned
+      1 leads
+      1 leading
+      1 leadership
+      1 lawful
+      1 law
+      1 lately
+      1 lascivious
+      1 large
+      1 lapse
+      1 laps
+      1 lap
+      1 lady
+      1 ladder
+      1 laboured
+      1 labour
+      1 knowingly
+      1 kings
+      1 kindnesses
+      1 killing
+      1 keys
+      1 k
+      1 justified
+      1 justification
+      1 judgments
+      1 judges
+      1 judge
+      1 joined
+      1 join
+      1 john
+      1 johanna
+      1 jealousy
+      1 ix
+      1 italici
+      1 issued
+      1 irrevocable
+      1 ionia
+      1 inwardly
+      1 invited
+      1 invent
+      1 invasion
+      1 invariably
+      1 introduction
+      1 introduced
+      1 intrigue
+      1 intervention
+      1 internal
+      1 interfering
+      1 interfered
+      1 interfere
+      1 intentions
+      1 intends
+      1 intending
+      1 intellects
+      1 integrity
+      1 insurrections
+      1 insulted
+      1 insufficiency
+      1 instrumentality
+      1 institutions
+      1 instances
+      1 inspire
+      1 insomuch
+      1 insolencies
+      1 insignificant
+      1 insight
+      1 inquires
+      1 inquirer
+      1 inquired
+      1 inordinate
+      1 innovators
+      1 innovator
+      1 innovations
+      1 injuring
+      1 initiative
+      1 iniquity
+      1 inhuman
+      1 inherited
+      1 inherent
+      1 information
+      1 inflicted
+      1 infidels
+      1 inferred
+      1 infelicity
+      1 infantries
+      1 infant
+      1 infamous
+      1 infamies
+      1 inexperience
+      1 industry
+      1 indulgence
+      1 indulge
+      1 induces
+      1 induced
+      1 induce
+      1 indignity
+      1 indicated
+      1 indebted
+      1 incurring
+      1 incurred
+      1 incurable
+      1 incur
+      1 incredulity
+      1 increased
+      1 inconstant
+      1 inconsiderable
+      1 income
+      1 inclines
+      1 incessantly
+      1 incautious
+      1 imputation
+      1 impulse
+      1 impugn
+      1 improving
+      1 improvements
+      1 improved
+      1 impotence
+      1 imposing
+      1 importance
+      1 impetuously
+      1 imperilled
+      1 imola
+      1 imagined
+      1 imagine
+      1 imagination
+      1 imaginary
+      1 illustrated
+      1 illustrate
+      1 ills
+      1 il
+      1 iii
+      1 ignominies
+      1 idle
+      1 idea
+      1 hurtful
+      1 humbling
+      1 humbled
+      1 hot
+      1 horses
+      1 horsemen
+      1 horseback
+      1 hoping
+      1 honestly
+      1 home
+      1 homage
+      1 holy
+      1 holiness
+      1 hindrance
+      1 hills
+      1 hill
+      1 hidden
+      1 hesitation
+      1 hereafter
+      1 helps
+      1 helpless
+      1 hellespont
+      1 heirs
+      1 hebrews
+      1 hears
+      1 heard
+      1 heal
+      1 heads
+      1 hazards
+      1 hazardous
+      1 hawkwood
+      1 haughty
+      1 hate
+      1 hat
+      1 haste
+      1 harsh
+      1 harm
+      1 hardship
+      1 harbour
+      1 hannibal
+      1 handled
+      1 handed
+      1 hamilcar
+      1 hallowed
+      1 guilds
+      1 guidubaldo
+      1 guided
+      1 guerdon
+      1 guelph
+      1 guards
+      1 guarding
+      1 greed
+      1 gravity
+      1 gratify
+      1 granted
+      1 grandfather
+      1 granada
+      1 gracious
+      1 gracchi
+      1 governs
+      1 governance
+      1 goths
+      1 gone
+      1 goliath
+      1 going
+      1 goes
+      1 goal
+      1 gloriously
+      1 glorious
+      1 gladiators
+      1 giver
+      1 ghibelline
+      1 getting
+      1 gets
+      1 german
+      1 generous
+      1 generality
+      1 gates
+      1 gascony
+      1 garrisons
+      1 gallantly
+      1 gaeta
+      1 fury
+      1 furore
+      1 fullest
+      1 fulfilled
+      1 frustrated
+      1 fruit
+      1 frequently
+      1 frequent
+      1 frenchmen
+      1 fray
+      1 fraud
+      1 fourthly
+      1 fourteen
+      1 founder
+      1 fought
+      1 fortunate
+      1 fortress
+      1 fortitude
+      1 forsook
+      1 forms
+      1 foreseeing
+      1 foremost
+      1 forefathers
+      1 forbearance
+      1 foot
+      1 food
+      1 folly
+      1 foe
+      1 fly
+      1 florentine
+      1 flood
+      1 flies
+      1 fled
+      1 flavour
+      1 fit
+      1 firmly
+      1 firing
+      1 fines
+      1 fine
+      1 finally
+      1 final
+      1 filippo
+      1 figuratively
+      1 fifteen
+      1 fia
+      1 fewer
+      1 fevers
+      1 fever
+      1 festivals
+      1 festered
+      1 fermans
+      1 felt
+      1 feeling
+      1 feel
+      1 favourable
+      1 fault
+      1 fathers
+      1 fatherland
+      1 fatal
+      1 fast
+      1 families
+      1 false
+      1 falling
+      1 fallacious
+      1 faithlessness
+      1 faithless
+      1 failing
+      1 failed
+      1 facilitates
+      1 fabius
+      1 eyes
+      1 eye
+      1 extricating
+      1 extremity
+      1 extraordinarily
+      1 extracts
+      1 extortion
+      1 extinguish
+      1 exterminating
+      1 extent
+      1 extended
+      1 express
+      1 experiment
+      1 experienced
+      1 expedients
+      1 expects
+      1 expecting
+      1 expectation
+      1 expansion
+      1 expanded
+      1 exist
+      1 exhorting
+      1 exhortation
+      1 exhibit
+      1 exhausted
+      1 exemplar
+      1 executor
+      1 executions
+      1 execution
+      1 executed
+      1 exchange
+      1 excess
+      1 exasperated
+      1 exalted
+      1 evidence
+      1 event
+      1 estate
+      1 essential
+      1 escaped
+      1 escape
+      1 erroneous
+      1 erred
+      1 equals
+      1 equally
+      1 equal
+      1 epaminondas
+      1 envy
+      1 envoys
+      1 envied
+      1 entry
+      1 entreats
+      1 entreated
+      1 entreat
+      1 entire
+      1 entertainments
+      1 entertain
+      1 enters
+      1 enriching
+      1 enormous
+      1 enmities
+      1 enlisting
+      1 enlarged
+      1 engagements
+      1 engaged
+      1 engage
+      1 enforced
+      1 ends
+      1 endowed
+      1 encounter
+      1 encampments
+      1 enabling
+      1 enabled
+      1 employs
+      1 eminence
+      1 embroil
+      1 elevated
+      1 elect
+      1 eight
+      1 egyptians
+      1 egypt
+      1 efficacious
+      1 effeminacy
+      1 effects
+      1 edifice
+      1 economy
+      1 eating
+      1 earned
+      1 earn
+      1 early
+      1 duty
+      1 duties
+      1 duration
+      1 dura
+      1 dukes
+      1 duels
+      1 drove
+      1 driving
+      1 drives
+      1 drinking
+      1 drilled
+      1 drew
+      1 drawing
+      1 downright
+      1 dividing
+      1 divides
+      1 diverted
+      1 divers
+      1 diverge
+      1 ditches
+      1 ditch
+      1 disunion
+      1 disturbance
+      1 distributed
+      1 distracted
+      1 distinguish
+      1 distinct
+      1 dissolving
+      1 dissolution
+      1 dissensions
+      1 dissembler
+      1 disregard
+      1 disputes
+      1 dispossessed
+      1 dispositions
+      1 display
+      1 dispensed
+      1 dismayed
+      1 dismantled
+      1 dismantle
+      1 disloyal
+      1 disguise
+      1 disdain
+      1 discussions
+      1 discrimination
+      1 discriminating
+      1 discoursed
+      1 discourage
+      1 discontent
+      1 discerning
+      1 discern
+      1 disastrous
+      1 disaster
+      1 disadvantageous
+      1 disadvantage
+      1 directs
+      1 diminished
+      1 diligence
+      1 dignified
+      1 differently
+      1 differences
+      1 dido
+      1 di
+      1 dexterity
+      1 devotion
+      1 devised
+      1 deviated
+      1 deviate
+      1 deterred
+      1 detected
+      1 destructive
+      1 destroys
+      1 despiser
+      1 desperation
+      1 desperate
+      1 despair
+      1 desolation
+      1 desist
+      1 desiring
+      1 desirable
+      1 designing
+      1 description
+      1 describe
+      1 descending
+      1 depriving
+      1 deprives
+      1 depots
+      1 dependent
+      1 depended
+      1 depart
+      1 deny
+      1 denouncing
+      1 demonstrate
+      1 demolish
+      1 demands
+      1 demand
+      1 delivered
+      1 deliverance
+      1 deliver
+      1 delinquents
+      1 delicate
+      1 delayed
+      1 defiance
+      1 defends
+      1 defending
+      1 defenders
+      1 defender
+      1 defeated
+      1 defeat
+      1 deeming
+      1 decrease
+      1 deceits
+      1 dearer
+      1 dealings
+      1 dealing
+      1 de
+      1 dastardy
+      1 dashed
+      1 d
+      1 cut
+      1 custode
+      1 cuor
+      1 crime
+      1 credited
+      1 cowardice
+      1 covetous
+      1 courts
+      1 courtesy
+      1 countess
+      1 counterfeit
+      1 counteract
+      1 counter
+      1 counsellors
+      1 councillors
+      1 council
+      1 costly
+      1 cost
+      1 corto
+      1 corruption
+      1 corrupting
+      1 corrupter
+      1 corrupt
+      1 copiously
+      1 coolness
+      1 cooled
+      1 converting
+      1 converge
+      1 convenient
+      1 contumeliously
+      1 contro
+      1 continue
+      1 continuance
+      1 continual
+      1 contesting
+      1 contended
+      1 contend
+      1 consummating
+      1 consummate
+      1 consulted
+      1 constraint
+      1 constrain
+      1 constitutions
+      1 constitution
+      1 constantinople
+      1 constant
+      1 conspiracy
+      1 consort
+      1 consolidated
+      1 consists
+      1 consisting
+      1 consistent
+      1 considerations
+      1 conquests
+      1 conquest
+      1 conjecture
+      1 conio
+      1 confusions
+      1 confront
+      1 conformed
+      1 confirming
+      1 confining
+      1 confidence
+      1 confess
+      1 conferred
+      1 condottieri
+      1 condition
+      1 condemn
+      1 concur
+      1 conclusions
+      1 concerned
+      1 conceived
+      1 conceded
+      1 concealed
+      1 conceal
+      1 comprehensively
+      1 comprehend
+      1 completely
+      1 complained
+      1 complacent
+      1 compete
+      1 compels
+      1 compassionate
+      1 comparison
+      1 compared
+      1 compare
+      1 companions
+      1 companion
+      1 communicate
+      1 commotion
+      1 commerce
+      1 commended
+      1 commencing
+      1 commanded
+      1 combatter
+      1 combats
+      1 colony
+      1 colleague
+      1 coldly
+      1 cogunt
+      1 cloud
+      1 closed
+      1 close
+      1 cloak
+      1 clement
+      1 clearing
+      1 clearer
+      1 cleanse
+      1 classes
+      1 citta
+      1 cite
+      1 circumvent
+      1 circumstance
+      1 circumspect
+      1 christian
+      1 christendom
+      1 chose
+      1 chooses
+      1 chiron
+      1 children
+      1 childhood
+      1 chiefs
+      1 cherish
+      1 che
+      1 chastity
+      1 chastisements
+      1 chaste
+      1 chase
+      1 charge
+      1 changeful
+      1 changeable
+      1 chances
+      1 champion
+      1 chamber
+      1 challenge
+      1 cesena
+      1 centaur
+      1 celebrated
+      1 cautiously
+      1 castle
+      1 castile
+      1 castello
+      1 carthaginian
+      1 carthage
+      1 carrying
+      1 carried
+      1 carmignola
+      1 caring
+      1 career
+      1 caravaggio
+      1 captured
+      1 capacity
+      1 capabilities
+      1 cancel
+      1 canal
+      1 campaigns
+      1 campaign
+      1 camp
+      1 camerino
+      1 calm
+      1 calls
+      1 callings
+      1 call
+      1 buy
+      1 business
+      1 burn
+      1 burgundy
+      1 burdening
+      1 burden
+      1 buildings
+      1 building
+      1 brutal
+      1 broken
+      1 brittany
+      1 bridle
+      1 breeds
+      1 breasts
+      1 brave
+      1 branch
+      1 bracceschi
+      1 bow
+      1 bounds
+      1 boundless
+      1 borne
+      1 borders
+      1 bondmen
+      1 bond
+      1 bolognese
+      1 boldly
+      1 bodyguard
+      1 bodies
+      1 blunder
+      1 blow
+      1 bloody
+      1 bloodshed
+      1 block
+      1 blacksmith
+      1 binds
+      1 binding
+      1 billets
+      1 bid
+      1 betook
+      1 bestows
+      1 besiege
+      1 beset
+      1 bernabo
+      1 bergamo
+      1 bentivogli
+      1 benignant
+      1 benefited
+      1 benefit
+      1 benefactor
+      1 belong
+      1 behoved
+      1 behind
+      1 behave
+      1 begun
+      1 begets
+      1 befall
+      1 beasts
+      1 bearing
+      1 battalions
+      1 baseness
+      1 based
+      1 bartolomeo
+      1 barbarians
+      1 banquets
+      1 banquet
+      1 banner
+      1 balanced
+      1 baglioni
+      1 backwards
+      1 axiom
+      1 awed
+      1 aware
+      1 avoids
+      1 avenged
+      1 avaricious
+      1 avarice
+      1 available
+      1 auspices
+      1 aurelius
+      1 audacity
+      1 attribute
+      1 attraction
+      1 attracted
+      1 attract
+      1 attentively
+      1 attentions
+      1 attempt
+      1 attachment
+      1 atop
+      1 athens
+      1 astuteness
+      1 astute
+      1 astonished
+      1 assured
+      1 assumed
+      1 assume
+      1 assists
+      1 assisting
+      1 assigned
+      1 asserting
+      1 asserted
+      1 assent
+      1 assembled
+      1 assault
+      1 assassination
+      1 assailed
+      1 aspired
+      1 aspect
+      1 asks
+      1 aside
+      1 asiatic
+      1 ascent
+      1 ascends
+      1 ascendancy
+      1 artillery
+      1 artfully
+      1 arrow
+      1 arrive
+      1 array
+      1 arrangement
+      1 arrange
+      1 arming
+      1 arme
+      1 argue
+      1 architect
+      1 archers
+      1 arc
+      1 arbiters
+      1 aquileia
+      1 appropriate
+      1 approaches
+      1 approach
+      1 apprehends
+      1 appreciates
+      1 appreciate
+      1 appointed
+      1 applied
+      1 applicable
+      1 apparel
+      1 antonio
+      1 antico
+      1 anticipating
+      1 anticipated
+      1 annoyances
+      1 animosity
+      1 ancor
+      1 ancestors
+      1 anarchy
+      1 amusing
+      1 amity
+      1 altered
+      1 ally
+      1 allows
+      1 allowing
+      1 alleged
+      1 allege
+      1 aliens
+      1 alienate
+      1 alexandria
+      1 alessandria
+      1 alberigo
+      1 alba
+      1 al
+      1 air
+      1 aims
+      1 agriculture
+      1 agrees
+      1 agreement
+      1 agreeable
+      1 ago
+      1 agility
+      1 ages
+      1 age
+      1 affirm
+      1 affections
+      1 affected
+      1 affair
+      1 affable
+      1 affability
+      1 advocates
+      1 advisers
+      1 advisable
+      1 adverse
+      1 advances
+      1 adroitly
+      1 adorned
+      1 admits
+      1 admit
+      1 admire
+      1 admiration
+      1 administrators
+      1 adhered
+      1 address
+      1 additional
+      1 addict
+      1 add
+      1 acuto
+      1 acts
+      1 acted
+      1 acquainted
+      1 achieved
+      1 accustoms
+      1 accuse
+      1 accumulate
+      1 accorded
+      1 accord
+      1 accommodate
+      1 accident
+      1 accession
+      1 acceptable
+      1 accept
+      1 abstains
+      1 abstain
+      1 absolutely
+      1 absence
+      1 abates
+      1 abate
+      1 abandonment
+      1 abandon

Added: test-suite/trunk/MultiSource/Applications/lua/lapi.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lapi.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lapi.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lapi.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,1087 @@
+/*
+** $Id: lapi.c,v 2.55.1.5 2008/07/04 18:41:18 roberto Exp $
+** Lua API
+** See Copyright Notice in lua.h
+*/
+
+
+#include <assert.h>
+#include <math.h>
+#include <stdarg.h>
+#include <string.h>
+
+#define lapi_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "lapi.h"
+#include "ldebug.h"
+#include "ldo.h"
+#include "lfunc.h"
+#include "lgc.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "ltable.h"
+#include "ltm.h"
+#include "lundump.h"
+#include "lvm.h"
+
+
+
+const char lua_ident[] =
+  "$Lua: " LUA_RELEASE " " LUA_COPYRIGHT " $\n"
+  "$Authors: " LUA_AUTHORS " $\n"
+  "$URL: www.lua.org $\n";
+
+
+
+#define api_checknelems(L, n)	api_check(L, (n) <= (L->top - L->base))
+
+#define api_checkvalidindex(L, i)	api_check(L, (i) != luaO_nilobject)
+
+#define api_incr_top(L)   {api_check(L, L->top < L->ci->top); L->top++;}
+
+
+
+static TValue *index2adr (lua_State *L, int idx) {
+  if (idx > 0) {
+    TValue *o = L->base + (idx - 1);
+    api_check(L, idx <= L->ci->top - L->base);
+    if (o >= L->top) return cast(TValue *, luaO_nilobject);
+    else return o;
+  }
+  else if (idx > LUA_REGISTRYINDEX) {
+    api_check(L, idx != 0 && -idx <= L->top - L->base);
+    return L->top + idx;
+  }
+  else switch (idx) {  /* pseudo-indices */
+    case LUA_REGISTRYINDEX: return registry(L);
+    case LUA_ENVIRONINDEX: {
+      Closure *func = curr_func(L);
+      sethvalue(L, &L->env, func->c.env);
+      return &L->env;
+    }
+    case LUA_GLOBALSINDEX: return gt(L);
+    default: {
+      Closure *func = curr_func(L);
+      idx = LUA_GLOBALSINDEX - idx;
+      return (idx <= func->c.nupvalues)
+                ? &func->c.upvalue[idx-1]
+                : cast(TValue *, luaO_nilobject);
+    }
+  }
+}
+
+
+static Table *getcurrenv (lua_State *L) {
+  if (L->ci == L->base_ci)  /* no enclosing function? */
+    return hvalue(gt(L));  /* use global table as environment */
+  else {
+    Closure *func = curr_func(L);
+    return func->c.env;
+  }
+}
+
+
+void luaA_pushobject (lua_State *L, const TValue *o) {
+  setobj2s(L, L->top, o);
+  api_incr_top(L);
+}
+
+
+LUA_API int lua_checkstack (lua_State *L, int size) {
+  int res = 1;
+  lua_lock(L);
+  if (size > LUAI_MAXCSTACK || (L->top - L->base + size) > LUAI_MAXCSTACK)
+    res = 0;  /* stack overflow */
+  else if (size > 0) {
+    luaD_checkstack(L, size);
+    if (L->ci->top < L->top + size)
+      L->ci->top = L->top + size;
+  }
+  lua_unlock(L);
+  return res;
+}
+
+
+LUA_API void lua_xmove (lua_State *from, lua_State *to, int n) {
+  int i;
+  if (from == to) return;
+  lua_lock(to);
+  api_checknelems(from, n);
+  api_check(from, G(from) == G(to));
+  api_check(from, to->ci->top - to->top >= n);
+  from->top -= n;
+  for (i = 0; i < n; i++) {
+    setobj2s(to, to->top++, from->top + i);
+  }
+  lua_unlock(to);
+}
+
+
+LUA_API void lua_setlevel (lua_State *from, lua_State *to) {
+  to->nCcalls = from->nCcalls;
+}
+
+
+LUA_API lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf) {
+  lua_CFunction old;
+  lua_lock(L);
+  old = G(L)->panic;
+  G(L)->panic = panicf;
+  lua_unlock(L);
+  return old;
+}
+
+
+LUA_API lua_State *lua_newthread (lua_State *L) {
+  lua_State *L1;
+  lua_lock(L);
+  luaC_checkGC(L);
+  L1 = luaE_newthread(L);
+  setthvalue(L, L->top, L1);
+  api_incr_top(L);
+  lua_unlock(L);
+  luai_userstatethread(L, L1);
+  return L1;
+}
+
+
+
+/*
+** basic stack manipulation
+*/
+
+
+LUA_API int lua_gettop (lua_State *L) {
+  return cast_int(L->top - L->base);
+}
+
+
+LUA_API void lua_settop (lua_State *L, int idx) {
+  lua_lock(L);
+  if (idx >= 0) {
+    api_check(L, idx <= L->stack_last - L->base);
+    while (L->top < L->base + idx)
+      setnilvalue(L->top++);
+    L->top = L->base + idx;
+  }
+  else {
+    api_check(L, -(idx+1) <= (L->top - L->base));
+    L->top += idx+1;  /* `subtract' index (index is negative) */
+  }
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_remove (lua_State *L, int idx) {
+  StkId p;
+  lua_lock(L);
+  p = index2adr(L, idx);
+  api_checkvalidindex(L, p);
+  while (++p < L->top) setobjs2s(L, p-1, p);
+  L->top--;
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_insert (lua_State *L, int idx) {
+  StkId p;
+  StkId q;
+  lua_lock(L);
+  p = index2adr(L, idx);
+  api_checkvalidindex(L, p);
+  for (q = L->top; q>p; q--) setobjs2s(L, q, q-1);
+  setobjs2s(L, p, L->top);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_replace (lua_State *L, int idx) {
+  StkId o;
+  lua_lock(L);
+  /* explicit test for incompatible code */
+  if (idx == LUA_ENVIRONINDEX && L->ci == L->base_ci)
+    luaG_runerror(L, "no calling environment");
+  api_checknelems(L, 1);
+  o = index2adr(L, idx);
+  api_checkvalidindex(L, o);
+  if (idx == LUA_ENVIRONINDEX) {
+    Closure *func = curr_func(L);
+    api_check(L, ttistable(L->top - 1)); 
+    func->c.env = hvalue(L->top - 1);
+    luaC_barrier(L, func, L->top - 1);
+  }
+  else {
+    setobj(L, o, L->top - 1);
+    if (idx < LUA_GLOBALSINDEX)  /* function upvalue? */
+      luaC_barrier(L, curr_func(L), L->top - 1);
+  }
+  L->top--;
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_pushvalue (lua_State *L, int idx) {
+  lua_lock(L);
+  setobj2s(L, L->top, index2adr(L, idx));
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+
+/*
+** access functions (stack -> C)
+*/
+
+
+LUA_API int lua_type (lua_State *L, int idx) {
+  StkId o = index2adr(L, idx);
+  return (o == luaO_nilobject) ? LUA_TNONE : ttype(o);
+}
+
+
+LUA_API const char *lua_typename (lua_State *L, int t) {
+  UNUSED(L);
+  return (t == LUA_TNONE) ? "no value" : luaT_typenames[t];
+}
+
+
+LUA_API int lua_iscfunction (lua_State *L, int idx) {
+  StkId o = index2adr(L, idx);
+  return iscfunction(o);
+}
+
+
+LUA_API int lua_isnumber (lua_State *L, int idx) {
+  TValue n;
+  const TValue *o = index2adr(L, idx);
+  return tonumber(o, &n);
+}
+
+
+LUA_API int lua_isstring (lua_State *L, int idx) {
+  int t = lua_type(L, idx);
+  return (t == LUA_TSTRING || t == LUA_TNUMBER);
+}
+
+
+LUA_API int lua_isuserdata (lua_State *L, int idx) {
+  const TValue *o = index2adr(L, idx);
+  return (ttisuserdata(o) || ttislightuserdata(o));
+}
+
+
+LUA_API int lua_rawequal (lua_State *L, int index1, int index2) {
+  StkId o1 = index2adr(L, index1);
+  StkId o2 = index2adr(L, index2);
+  return (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0
+         : luaO_rawequalObj(o1, o2);
+}
+
+
+LUA_API int lua_equal (lua_State *L, int index1, int index2) {
+  StkId o1, o2;
+  int i;
+  lua_lock(L);  /* may call tag method */
+  o1 = index2adr(L, index1);
+  o2 = index2adr(L, index2);
+  i = (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0 : equalobj(L, o1, o2);
+  lua_unlock(L);
+  return i;
+}
+
+
+LUA_API int lua_lessthan (lua_State *L, int index1, int index2) {
+  StkId o1, o2;
+  int i;
+  lua_lock(L);  /* may call tag method */
+  o1 = index2adr(L, index1);
+  o2 = index2adr(L, index2);
+  i = (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0
+       : luaV_lessthan(L, o1, o2);
+  lua_unlock(L);
+  return i;
+}
+
+
+
+LUA_API lua_Number lua_tonumber (lua_State *L, int idx) {
+  TValue n;
+  const TValue *o = index2adr(L, idx);
+  if (tonumber(o, &n))
+    return nvalue(o);
+  else
+    return 0;
+}
+
+
+LUA_API lua_Integer lua_tointeger (lua_State *L, int idx) {
+  TValue n;
+  const TValue *o = index2adr(L, idx);
+  if (tonumber(o, &n)) {
+    lua_Integer res;
+    lua_Number num = nvalue(o);
+    lua_number2integer(res, num);
+    return res;
+  }
+  else
+    return 0;
+}
+
+
+LUA_API int lua_toboolean (lua_State *L, int idx) {
+  const TValue *o = index2adr(L, idx);
+  return !l_isfalse(o);
+}
+
+
+LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) {
+  StkId o = index2adr(L, idx);
+  if (!ttisstring(o)) {
+    lua_lock(L);  /* `luaV_tostring' may create a new string */
+    if (!luaV_tostring(L, o)) {  /* conversion failed? */
+      if (len != NULL) *len = 0;
+      lua_unlock(L);
+      return NULL;
+    }
+    luaC_checkGC(L);
+    o = index2adr(L, idx);  /* previous call may reallocate the stack */
+    lua_unlock(L);
+  }
+  if (len != NULL) *len = tsvalue(o)->len;
+  return svalue(o);
+}
+
+
+LUA_API size_t lua_objlen (lua_State *L, int idx) {
+  StkId o = index2adr(L, idx);
+  switch (ttype(o)) {
+    case LUA_TSTRING: return tsvalue(o)->len;
+    case LUA_TUSERDATA: return uvalue(o)->len;
+    case LUA_TTABLE: return luaH_getn(hvalue(o));
+    case LUA_TNUMBER: {
+      size_t l;
+      lua_lock(L);  /* `luaV_tostring' may create a new string */
+      l = (luaV_tostring(L, o) ? tsvalue(o)->len : 0);
+      lua_unlock(L);
+      return l;
+    }
+    default: return 0;
+  }
+}
+
+
+LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) {
+  StkId o = index2adr(L, idx);
+  return (!iscfunction(o)) ? NULL : clvalue(o)->c.f;
+}
+
+
+LUA_API void *lua_touserdata (lua_State *L, int idx) {
+  StkId o = index2adr(L, idx);
+  switch (ttype(o)) {
+    case LUA_TUSERDATA: return (rawuvalue(o) + 1);
+    case LUA_TLIGHTUSERDATA: return pvalue(o);
+    default: return NULL;
+  }
+}
+
+
+LUA_API lua_State *lua_tothread (lua_State *L, int idx) {
+  StkId o = index2adr(L, idx);
+  return (!ttisthread(o)) ? NULL : thvalue(o);
+}
+
+
+LUA_API const void *lua_topointer (lua_State *L, int idx) {
+  StkId o = index2adr(L, idx);
+  switch (ttype(o)) {
+    case LUA_TTABLE: return hvalue(o);
+    case LUA_TFUNCTION: return clvalue(o);
+    case LUA_TTHREAD: return thvalue(o);
+    case LUA_TUSERDATA:
+    case LUA_TLIGHTUSERDATA:
+      return lua_touserdata(L, idx);
+    default: return NULL;
+  }
+}
+
+
+
+/*
+** push functions (C -> stack)
+*/
+
+
+LUA_API void lua_pushnil (lua_State *L) {
+  lua_lock(L);
+  setnilvalue(L->top);
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_pushnumber (lua_State *L, lua_Number n) {
+  lua_lock(L);
+  setnvalue(L->top, n);
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_pushinteger (lua_State *L, lua_Integer n) {
+  lua_lock(L);
+  setnvalue(L->top, cast_num(n));
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len) {
+  lua_lock(L);
+  luaC_checkGC(L);
+  setsvalue2s(L, L->top, luaS_newlstr(L, s, len));
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_pushstring (lua_State *L, const char *s) {
+  if (s == NULL)
+    lua_pushnil(L);
+  else
+    lua_pushlstring(L, s, strlen(s));
+}
+
+
+LUA_API const char *lua_pushvfstring (lua_State *L, const char *fmt,
+                                      va_list argp) {
+  const char *ret;
+  lua_lock(L);
+  luaC_checkGC(L);
+  ret = luaO_pushvfstring(L, fmt, argp);
+  lua_unlock(L);
+  return ret;
+}
+
+
+LUA_API const char *lua_pushfstring (lua_State *L, const char *fmt, ...) {
+  const char *ret;
+  va_list argp;
+  lua_lock(L);
+  luaC_checkGC(L);
+  va_start(argp, fmt);
+  ret = luaO_pushvfstring(L, fmt, argp);
+  va_end(argp);
+  lua_unlock(L);
+  return ret;
+}
+
+
+LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) {
+  Closure *cl;
+  lua_lock(L);
+  luaC_checkGC(L);
+  api_checknelems(L, n);
+  cl = luaF_newCclosure(L, n, getcurrenv(L));
+  cl->c.f = fn;
+  L->top -= n;
+  while (n--)
+    setobj2n(L, &cl->c.upvalue[n], L->top+n);
+  setclvalue(L, L->top, cl);
+  lua_assert(iswhite(obj2gco(cl)));
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_pushboolean (lua_State *L, int b) {
+  lua_lock(L);
+  setbvalue(L->top, (b != 0));  /* ensure that true is 1 */
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_pushlightuserdata (lua_State *L, void *p) {
+  lua_lock(L);
+  setpvalue(L->top, p);
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API int lua_pushthread (lua_State *L) {
+  lua_lock(L);
+  setthvalue(L, L->top, L);
+  api_incr_top(L);
+  lua_unlock(L);
+  return (G(L)->mainthread == L);
+}
+
+
+
+/*
+** get functions (Lua -> stack)
+*/
+
+
+LUA_API void lua_gettable (lua_State *L, int idx) {
+  StkId t;
+  lua_lock(L);
+  t = index2adr(L, idx);
+  api_checkvalidindex(L, t);
+  luaV_gettable(L, t, L->top - 1, L->top - 1);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_getfield (lua_State *L, int idx, const char *k) {
+  StkId t;
+  TValue key;
+  lua_lock(L);
+  t = index2adr(L, idx);
+  api_checkvalidindex(L, t);
+  setsvalue(L, &key, luaS_new(L, k));
+  luaV_gettable(L, t, &key, L->top);
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_rawget (lua_State *L, int idx) {
+  StkId t;
+  lua_lock(L);
+  t = index2adr(L, idx);
+  api_check(L, ttistable(t));
+  setobj2s(L, L->top - 1, luaH_get(hvalue(t), L->top - 1));
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_rawgeti (lua_State *L, int idx, int n) {
+  StkId o;
+  lua_lock(L);
+  o = index2adr(L, idx);
+  api_check(L, ttistable(o));
+  setobj2s(L, L->top, luaH_getnum(hvalue(o), n));
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_createtable (lua_State *L, int narray, int nrec) {
+  lua_lock(L);
+  luaC_checkGC(L);
+  sethvalue(L, L->top, luaH_new(L, narray, nrec));
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+LUA_API int lua_getmetatable (lua_State *L, int objindex) {
+  const TValue *obj;
+  Table *mt = NULL;
+  int res;
+  lua_lock(L);
+  obj = index2adr(L, objindex);
+  switch (ttype(obj)) {
+    case LUA_TTABLE:
+      mt = hvalue(obj)->metatable;
+      break;
+    case LUA_TUSERDATA:
+      mt = uvalue(obj)->metatable;
+      break;
+    default:
+      mt = G(L)->mt[ttype(obj)];
+      break;
+  }
+  if (mt == NULL)
+    res = 0;
+  else {
+    sethvalue(L, L->top, mt);
+    api_incr_top(L);
+    res = 1;
+  }
+  lua_unlock(L);
+  return res;
+}
+
+
+LUA_API void lua_getfenv (lua_State *L, int idx) {
+  StkId o;
+  lua_lock(L);
+  o = index2adr(L, idx);
+  api_checkvalidindex(L, o);
+  switch (ttype(o)) {
+    case LUA_TFUNCTION:
+      sethvalue(L, L->top, clvalue(o)->c.env);
+      break;
+    case LUA_TUSERDATA:
+      sethvalue(L, L->top, uvalue(o)->env);
+      break;
+    case LUA_TTHREAD:
+      setobj2s(L, L->top,  gt(thvalue(o)));
+      break;
+    default:
+      setnilvalue(L->top);
+      break;
+  }
+  api_incr_top(L);
+  lua_unlock(L);
+}
+
+
+/*
+** set functions (stack -> Lua)
+*/
+
+
+LUA_API void lua_settable (lua_State *L, int idx) {
+  StkId t;
+  lua_lock(L);
+  api_checknelems(L, 2);
+  t = index2adr(L, idx);
+  api_checkvalidindex(L, t);
+  luaV_settable(L, t, L->top - 2, L->top - 1);
+  L->top -= 2;  /* pop index and value */
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_setfield (lua_State *L, int idx, const char *k) {
+  StkId t;
+  TValue key;
+  lua_lock(L);
+  api_checknelems(L, 1);
+  t = index2adr(L, idx);
+  api_checkvalidindex(L, t);
+  setsvalue(L, &key, luaS_new(L, k));
+  luaV_settable(L, t, &key, L->top - 1);
+  L->top--;  /* pop value */
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_rawset (lua_State *L, int idx) {
+  StkId t;
+  lua_lock(L);
+  api_checknelems(L, 2);
+  t = index2adr(L, idx);
+  api_check(L, ttistable(t));
+  setobj2t(L, luaH_set(L, hvalue(t), L->top-2), L->top-1);
+  luaC_barriert(L, hvalue(t), L->top-1);
+  L->top -= 2;
+  lua_unlock(L);
+}
+
+
+LUA_API void lua_rawseti (lua_State *L, int idx, int n) {
+  StkId o;
+  lua_lock(L);
+  api_checknelems(L, 1);
+  o = index2adr(L, idx);
+  api_check(L, ttistable(o));
+  setobj2t(L, luaH_setnum(L, hvalue(o), n), L->top-1);
+  luaC_barriert(L, hvalue(o), L->top-1);
+  L->top--;
+  lua_unlock(L);
+}
+
+
+LUA_API int lua_setmetatable (lua_State *L, int objindex) {
+  TValue *obj;
+  Table *mt;
+  lua_lock(L);
+  api_checknelems(L, 1);
+  obj = index2adr(L, objindex);
+  api_checkvalidindex(L, obj);
+  if (ttisnil(L->top - 1))
+    mt = NULL;
+  else {
+    api_check(L, ttistable(L->top - 1));
+    mt = hvalue(L->top - 1);
+  }
+  switch (ttype(obj)) {
+    case LUA_TTABLE: {
+      hvalue(obj)->metatable = mt;
+      if (mt)
+        luaC_objbarriert(L, hvalue(obj), mt);
+      break;
+    }
+    case LUA_TUSERDATA: {
+      uvalue(obj)->metatable = mt;
+      if (mt)
+        luaC_objbarrier(L, rawuvalue(obj), mt);
+      break;
+    }
+    default: {
+      G(L)->mt[ttype(obj)] = mt;
+      break;
+    }
+  }
+  L->top--;
+  lua_unlock(L);
+  return 1;
+}
+
+
+LUA_API int lua_setfenv (lua_State *L, int idx) {
+  StkId o;
+  int res = 1;
+  lua_lock(L);
+  api_checknelems(L, 1);
+  o = index2adr(L, idx);
+  api_checkvalidindex(L, o);
+  api_check(L, ttistable(L->top - 1));
+  switch (ttype(o)) {
+    case LUA_TFUNCTION:
+      clvalue(o)->c.env = hvalue(L->top - 1);
+      break;
+    case LUA_TUSERDATA:
+      uvalue(o)->env = hvalue(L->top - 1);
+      break;
+    case LUA_TTHREAD:
+      sethvalue(L, gt(thvalue(o)), hvalue(L->top - 1));
+      break;
+    default:
+      res = 0;
+      break;
+  }
+  if (res) luaC_objbarrier(L, gcvalue(o), hvalue(L->top - 1));
+  L->top--;
+  lua_unlock(L);
+  return res;
+}
+
+
+/*
+** `load' and `call' functions (run Lua code)
+*/
+
+
+#define adjustresults(L,nres) \
+    { if (nres == LUA_MULTRET && L->top >= L->ci->top) L->ci->top = L->top; }
+
+
+#define checkresults(L,na,nr) \
+     api_check(L, (nr) == LUA_MULTRET || (L->ci->top - L->top >= (nr) - (na)))
+	
+
+LUA_API void lua_call (lua_State *L, int nargs, int nresults) {
+  StkId func;
+  lua_lock(L);
+  api_checknelems(L, nargs+1);
+  checkresults(L, nargs, nresults);
+  func = L->top - (nargs+1);
+  luaD_call(L, func, nresults);
+  adjustresults(L, nresults);
+  lua_unlock(L);
+}
+
+
+
+/*
+** Execute a protected call.
+*/
+struct CallS {  /* data to `f_call' */
+  StkId func;
+  int nresults;
+};
+
+
+static void f_call (lua_State *L, void *ud) {
+  struct CallS *c = cast(struct CallS *, ud);
+  luaD_call(L, c->func, c->nresults);
+}
+
+
+
+LUA_API int lua_pcall (lua_State *L, int nargs, int nresults, int errfunc) {
+  struct CallS c;
+  int status;
+  ptrdiff_t func;
+  lua_lock(L);
+  api_checknelems(L, nargs+1);
+  checkresults(L, nargs, nresults);
+  if (errfunc == 0)
+    func = 0;
+  else {
+    StkId o = index2adr(L, errfunc);
+    api_checkvalidindex(L, o);
+    func = savestack(L, o);
+  }
+  c.func = L->top - (nargs+1);  /* function to be called */
+  c.nresults = nresults;
+  status = luaD_pcall(L, f_call, &c, savestack(L, c.func), func);
+  adjustresults(L, nresults);
+  lua_unlock(L);
+  return status;
+}
+
+
+/*
+** Execute a protected C call.
+*/
+struct CCallS {  /* data to `f_Ccall' */
+  lua_CFunction func;
+  void *ud;
+};
+
+
+static void f_Ccall (lua_State *L, void *ud) {
+  struct CCallS *c = cast(struct CCallS *, ud);
+  Closure *cl;
+  cl = luaF_newCclosure(L, 0, getcurrenv(L));
+  cl->c.f = c->func;
+  setclvalue(L, L->top, cl);  /* push function */
+  api_incr_top(L);
+  setpvalue(L->top, c->ud);  /* push only argument */
+  api_incr_top(L);
+  luaD_call(L, L->top - 2, 0);
+}
+
+
+LUA_API int lua_cpcall (lua_State *L, lua_CFunction func, void *ud) {
+  struct CCallS c;
+  int status;
+  lua_lock(L);
+  c.func = func;
+  c.ud = ud;
+  status = luaD_pcall(L, f_Ccall, &c, savestack(L, L->top), 0);
+  lua_unlock(L);
+  return status;
+}
+
+
+LUA_API int lua_load (lua_State *L, lua_Reader reader, void *data,
+                      const char *chunkname) {
+  ZIO z;
+  int status;
+  lua_lock(L);
+  if (!chunkname) chunkname = "?";
+  luaZ_init(L, &z, reader, data);
+  status = luaD_protectedparser(L, &z, chunkname);
+  lua_unlock(L);
+  return status;
+}
+
+
+LUA_API int lua_dump (lua_State *L, lua_Writer writer, void *data) {
+  int status;
+  TValue *o;
+  lua_lock(L);
+  api_checknelems(L, 1);
+  o = L->top - 1;
+  if (isLfunction(o))
+    status = luaU_dump(L, clvalue(o)->l.p, writer, data, 0);
+  else
+    status = 1;
+  lua_unlock(L);
+  return status;
+}
+
+
+LUA_API int  lua_status (lua_State *L) {
+  return L->status;
+}
+
+
+/*
+** Garbage-collection function
+*/
+
+LUA_API int lua_gc (lua_State *L, int what, int data) {
+  int res = 0;
+  global_State *g;
+  lua_lock(L);
+  g = G(L);
+  switch (what) {
+    case LUA_GCSTOP: {
+      g->GCthreshold = MAX_LUMEM;
+      break;
+    }
+    case LUA_GCRESTART: {
+      g->GCthreshold = g->totalbytes;
+      break;
+    }
+    case LUA_GCCOLLECT: {
+      luaC_fullgc(L);
+      break;
+    }
+    case LUA_GCCOUNT: {
+      /* GC values are expressed in Kbytes: #bytes/2^10 */
+      res = cast_int(g->totalbytes >> 10);
+      break;
+    }
+    case LUA_GCCOUNTB: {
+      res = cast_int(g->totalbytes & 0x3ff);
+      break;
+    }
+    case LUA_GCSTEP: {
+      lu_mem a = (cast(lu_mem, data) << 10);
+      if (a <= g->totalbytes)
+        g->GCthreshold = g->totalbytes - a;
+      else
+        g->GCthreshold = 0;
+      while (g->GCthreshold <= g->totalbytes) {
+        luaC_step(L);
+        if (g->gcstate == GCSpause) {  /* end of cycle? */
+          res = 1;  /* signal it */
+          break;
+        }
+      }
+      break;
+    }
+    case LUA_GCSETPAUSE: {
+      res = g->gcpause;
+      g->gcpause = data;
+      break;
+    }
+    case LUA_GCSETSTEPMUL: {
+      res = g->gcstepmul;
+      g->gcstepmul = data;
+      break;
+    }
+    default: res = -1;  /* invalid option */
+  }
+  lua_unlock(L);
+  return res;
+}
+
+
+
+/*
+** miscellaneous functions
+*/
+
+
+LUA_API int lua_error (lua_State *L) {
+  lua_lock(L);
+  api_checknelems(L, 1);
+  luaG_errormsg(L);
+  lua_unlock(L);
+  return 0;  /* to avoid warnings */
+}
+
+
+LUA_API int lua_next (lua_State *L, int idx) {
+  StkId t;
+  int more;
+  lua_lock(L);
+  t = index2adr(L, idx);
+  api_check(L, ttistable(t));
+  more = luaH_next(L, hvalue(t), L->top - 1);
+  if (more) {
+    api_incr_top(L);
+  }
+  else  /* no more elements */
+    L->top -= 1;  /* remove key */
+  lua_unlock(L);
+  return more;
+}
+
+
+LUA_API void lua_concat (lua_State *L, int n) {
+  lua_lock(L);
+  api_checknelems(L, n);
+  if (n >= 2) {
+    luaC_checkGC(L);
+    luaV_concat(L, n, cast_int(L->top - L->base) - 1);
+    L->top -= (n-1);
+  }
+  else if (n == 0) {  /* push empty string */
+    setsvalue2s(L, L->top, luaS_newlstr(L, "", 0));
+    api_incr_top(L);
+  }
+  /* else n == 1; nothing to do */
+  lua_unlock(L);
+}
+
+
+LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) {
+  lua_Alloc f;
+  lua_lock(L);
+  if (ud) *ud = G(L)->ud;
+  f = G(L)->frealloc;
+  lua_unlock(L);
+  return f;
+}
+
+
+LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud) {
+  lua_lock(L);
+  G(L)->ud = ud;
+  G(L)->frealloc = f;
+  lua_unlock(L);
+}
+
+
+LUA_API void *lua_newuserdata (lua_State *L, size_t size) {
+  Udata *u;
+  lua_lock(L);
+  luaC_checkGC(L);
+  u = luaS_newudata(L, size, getcurrenv(L));
+  setuvalue(L, L->top, u);
+  api_incr_top(L);
+  lua_unlock(L);
+  return u + 1;
+}
+
+
+
+
+static const char *aux_upvalue (StkId fi, int n, TValue **val) {
+  Closure *f;
+  if (!ttisfunction(fi)) return NULL;
+  f = clvalue(fi);
+  if (f->c.isC) {
+    if (!(1 <= n && n <= f->c.nupvalues)) return NULL;
+    *val = &f->c.upvalue[n-1];
+    return "";
+  }
+  else {
+    Proto *p = f->l.p;
+    if (!(1 <= n && n <= p->sizeupvalues)) return NULL;
+    *val = f->l.upvals[n-1]->v;
+    return getstr(p->upvalues[n-1]);
+  }
+}
+
+
+LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n) {
+  const char *name;
+  TValue *val;
+  lua_lock(L);
+  name = aux_upvalue(index2adr(L, funcindex), n, &val);
+  if (name) {
+    setobj2s(L, L->top, val);
+    api_incr_top(L);
+  }
+  lua_unlock(L);
+  return name;
+}
+
+
+LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) {
+  const char *name;
+  TValue *val;
+  StkId fi;
+  lua_lock(L);
+  fi = index2adr(L, funcindex);
+  api_checknelems(L, 1);
+  name = aux_upvalue(fi, n, &val);
+  if (name) {
+    L->top--;
+    setobj(L, val, L->top);
+    luaC_barrier(L, clvalue(fi), L->top);
+  }
+  lua_unlock(L);
+  return name;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lapi.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lapi.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lapi.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lapi.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,16 @@
+/*
+** $Id: lapi.h,v 2.2.1.1 2007/12/27 13:02:25 roberto Exp $
+** Auxiliary functions from Lua API
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lapi_h
+#define lapi_h
+
+
+#include "lobject.h"
+
+
+LUAI_FUNC void luaA_pushobject (lua_State *L, const TValue *o);
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/lauxlib.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lauxlib.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lauxlib.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lauxlib.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,652 @@
+/*
+** $Id: lauxlib.c,v 1.159.1.3 2008/01/21 13:20:51 roberto Exp $
+** Auxiliary functions for building Lua libraries
+** See Copyright Notice in lua.h
+*/
+
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+/* This file uses only the official API of Lua.
+** Any function declared here could be written as an application function.
+*/
+
+#define lauxlib_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lauxlib.h"
+
+
+#define FREELIST_REF	0	/* free list of references */
+
+
+/* convert a stack index to positive */
+#define abs_index(L, i)		((i) > 0 || (i) <= LUA_REGISTRYINDEX ? (i) : \
+					lua_gettop(L) + (i) + 1)
+
+
+/*
+** {======================================================
+** Error-report functions
+** =======================================================
+*/
+
+
+LUALIB_API int luaL_argerror (lua_State *L, int narg, const char *extramsg) {
+  lua_Debug ar;
+  if (!lua_getstack(L, 0, &ar))  /* no stack frame? */
+    return luaL_error(L, "bad argument #%d (%s)", narg, extramsg);
+  lua_getinfo(L, "n", &ar);
+  if (strcmp(ar.namewhat, "method") == 0) {
+    narg--;  /* do not count `self' */
+    if (narg == 0)  /* error is in the self argument itself? */
+      return luaL_error(L, "calling " LUA_QS " on bad self (%s)",
+                           ar.name, extramsg);
+  }
+  if (ar.name == NULL)
+    ar.name = "?";
+  return luaL_error(L, "bad argument #%d to " LUA_QS " (%s)",
+                        narg, ar.name, extramsg);
+}
+
+
+LUALIB_API int luaL_typerror (lua_State *L, int narg, const char *tname) {
+  const char *msg = lua_pushfstring(L, "%s expected, got %s",
+                                    tname, luaL_typename(L, narg));
+  return luaL_argerror(L, narg, msg);
+}
+
+
+static void tag_error (lua_State *L, int narg, int tag) {
+  luaL_typerror(L, narg, lua_typename(L, tag));
+}
+
+
+LUALIB_API void luaL_where (lua_State *L, int level) {
+  lua_Debug ar;
+  if (lua_getstack(L, level, &ar)) {  /* check function at level */
+    lua_getinfo(L, "Sl", &ar);  /* get info about it */
+    if (ar.currentline > 0) {  /* is there info? */
+      lua_pushfstring(L, "%s:%d: ", ar.short_src, ar.currentline);
+      return;
+    }
+  }
+  lua_pushliteral(L, "");  /* else, no information available... */
+}
+
+
+LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) {
+  va_list argp;
+  va_start(argp, fmt);
+  luaL_where(L, 1);
+  lua_pushvfstring(L, fmt, argp);
+  va_end(argp);
+  lua_concat(L, 2);
+  return lua_error(L);
+}
+
+/* }====================================================== */
+
+
+LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def,
+                                 const char *const lst[]) {
+  const char *name = (def) ? luaL_optstring(L, narg, def) :
+                             luaL_checkstring(L, narg);
+  int i;
+  for (i=0; lst[i]; i++)
+    if (strcmp(lst[i], name) == 0)
+      return i;
+  return luaL_argerror(L, narg,
+                       lua_pushfstring(L, "invalid option " LUA_QS, name));
+}
+
+
+LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname) {
+  lua_getfield(L, LUA_REGISTRYINDEX, tname);  /* get registry.name */
+  if (!lua_isnil(L, -1))  /* name already in use? */
+    return 0;  /* leave previous value on top, but return 0 */
+  lua_pop(L, 1);
+  lua_newtable(L);  /* create metatable */
+  lua_pushvalue(L, -1);
+  lua_setfield(L, LUA_REGISTRYINDEX, tname);  /* registry.name = metatable */
+  return 1;
+}
+
+
+LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tname) {
+  void *p = lua_touserdata(L, ud);
+  if (p != NULL) {  /* value is a userdata? */
+    if (lua_getmetatable(L, ud)) {  /* does it have a metatable? */
+      lua_getfield(L, LUA_REGISTRYINDEX, tname);  /* get correct metatable */
+      if (lua_rawequal(L, -1, -2)) {  /* does it have the correct mt? */
+        lua_pop(L, 2);  /* remove both metatables */
+        return p;
+      }
+    }
+  }
+  luaL_typerror(L, ud, tname);  /* else error */
+  return NULL;  /* to avoid warnings */
+}
+
+
+LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *mes) {
+  if (!lua_checkstack(L, space))
+    luaL_error(L, "stack overflow (%s)", mes);
+}
+
+
+LUALIB_API void luaL_checktype (lua_State *L, int narg, int t) {
+  if (lua_type(L, narg) != t)
+    tag_error(L, narg, t);
+}
+
+
+LUALIB_API void luaL_checkany (lua_State *L, int narg) {
+  if (lua_type(L, narg) == LUA_TNONE)
+    luaL_argerror(L, narg, "value expected");
+}
+
+
+LUALIB_API const char *luaL_checklstring (lua_State *L, int narg, size_t *len) {
+  const char *s = lua_tolstring(L, narg, len);
+  if (!s) tag_error(L, narg, LUA_TSTRING);
+  return s;
+}
+
+
+LUALIB_API const char *luaL_optlstring (lua_State *L, int narg,
+                                        const char *def, size_t *len) {
+  if (lua_isnoneornil(L, narg)) {
+    if (len)
+      *len = (def ? strlen(def) : 0);
+    return def;
+  }
+  else return luaL_checklstring(L, narg, len);
+}
+
+
+LUALIB_API lua_Number luaL_checknumber (lua_State *L, int narg) {
+  lua_Number d = lua_tonumber(L, narg);
+  if (d == 0 && !lua_isnumber(L, narg))  /* avoid extra test when d is not 0 */
+    tag_error(L, narg, LUA_TNUMBER);
+  return d;
+}
+
+
+LUALIB_API lua_Number luaL_optnumber (lua_State *L, int narg, lua_Number def) {
+  return luaL_opt(L, luaL_checknumber, narg, def);
+}
+
+
+LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int narg) {
+  lua_Integer d = lua_tointeger(L, narg);
+  if (d == 0 && !lua_isnumber(L, narg))  /* avoid extra test when d is not 0 */
+    tag_error(L, narg, LUA_TNUMBER);
+  return d;
+}
+
+
+LUALIB_API lua_Integer luaL_optinteger (lua_State *L, int narg,
+                                                      lua_Integer def) {
+  return luaL_opt(L, luaL_checkinteger, narg, def);
+}
+
+
+LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *event) {
+  if (!lua_getmetatable(L, obj))  /* no metatable? */
+    return 0;
+  lua_pushstring(L, event);
+  lua_rawget(L, -2);
+  if (lua_isnil(L, -1)) {
+    lua_pop(L, 2);  /* remove metatable and metafield */
+    return 0;
+  }
+  else {
+    lua_remove(L, -2);  /* remove only metatable */
+    return 1;
+  }
+}
+
+
+LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *event) {
+  obj = abs_index(L, obj);
+  if (!luaL_getmetafield(L, obj, event))  /* no metafield? */
+    return 0;
+  lua_pushvalue(L, obj);
+  lua_call(L, 1, 1);
+  return 1;
+}
+
+
+LUALIB_API void (luaL_register) (lua_State *L, const char *libname,
+                                const luaL_Reg *l) {
+  luaI_openlib(L, libname, l, 0);
+}
+
+
+static int libsize (const luaL_Reg *l) {
+  int size = 0;
+  for (; l->name; l++) size++;
+  return size;
+}
+
+
+LUALIB_API void luaI_openlib (lua_State *L, const char *libname,
+                              const luaL_Reg *l, int nup) {
+  if (libname) {
+    int size = libsize(l);
+    /* check whether lib already exists */
+    luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 1);
+    lua_getfield(L, -1, libname);  /* get _LOADED[libname] */
+    if (!lua_istable(L, -1)) {  /* not found? */
+      lua_pop(L, 1);  /* remove previous result */
+      /* try global variable (and create one if it does not exist) */
+      if (luaL_findtable(L, LUA_GLOBALSINDEX, libname, size) != NULL)
+        luaL_error(L, "name conflict for module " LUA_QS, libname);
+      lua_pushvalue(L, -1);
+      lua_setfield(L, -3, libname);  /* _LOADED[libname] = new table */
+    }
+    lua_remove(L, -2);  /* remove _LOADED table */
+    lua_insert(L, -(nup+1));  /* move library table to below upvalues */
+  }
+  for (; l->name; l++) {
+    int i;
+    for (i=0; i<nup; i++)  /* copy upvalues to the top */
+      lua_pushvalue(L, -nup);
+    lua_pushcclosure(L, l->func, nup);
+    lua_setfield(L, -(nup+2), l->name);
+  }
+  lua_pop(L, nup);  /* remove upvalues */
+}
+
+
+
+/*
+** {======================================================
+** getn-setn: size for arrays
+** =======================================================
+*/
+
+#if defined(LUA_COMPAT_GETN)
+
+static int checkint (lua_State *L, int topop) {
+  int n = (lua_type(L, -1) == LUA_TNUMBER) ? lua_tointeger(L, -1) : -1;
+  lua_pop(L, topop);
+  return n;
+}
+
+
+static void getsizes (lua_State *L) {
+  lua_getfield(L, LUA_REGISTRYINDEX, "LUA_SIZES");
+  if (lua_isnil(L, -1)) {  /* no `size' table? */
+    lua_pop(L, 1);  /* remove nil */
+    lua_newtable(L);  /* create it */
+    lua_pushvalue(L, -1);  /* `size' will be its own metatable */
+    lua_setmetatable(L, -2);
+    lua_pushliteral(L, "kv");
+    lua_setfield(L, -2, "__mode");  /* metatable(N).__mode = "kv" */
+    lua_pushvalue(L, -1);
+    lua_setfield(L, LUA_REGISTRYINDEX, "LUA_SIZES");  /* store in register */
+  }
+}
+
+
+LUALIB_API void luaL_setn (lua_State *L, int t, int n) {
+  t = abs_index(L, t);
+  lua_pushliteral(L, "n");
+  lua_rawget(L, t);
+  if (checkint(L, 1) >= 0) {  /* is there a numeric field `n'? */
+    lua_pushliteral(L, "n");  /* use it */
+    lua_pushinteger(L, n);
+    lua_rawset(L, t);
+  }
+  else {  /* use `sizes' */
+    getsizes(L);
+    lua_pushvalue(L, t);
+    lua_pushinteger(L, n);
+    lua_rawset(L, -3);  /* sizes[t] = n */
+    lua_pop(L, 1);  /* remove `sizes' */
+  }
+}
+
+
+LUALIB_API int luaL_getn (lua_State *L, int t) {
+  int n;
+  t = abs_index(L, t);
+  lua_pushliteral(L, "n");  /* try t.n */
+  lua_rawget(L, t);
+  if ((n = checkint(L, 1)) >= 0) return n;
+  getsizes(L);  /* else try sizes[t] */
+  lua_pushvalue(L, t);
+  lua_rawget(L, -2);
+  if ((n = checkint(L, 2)) >= 0) return n;
+  return (int)lua_objlen(L, t);
+}
+
+#endif
+
+/* }====================================================== */
+
+
+
+LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const char *p,
+                                                               const char *r) {
+  const char *wild;
+  size_t l = strlen(p);
+  luaL_Buffer b;
+  luaL_buffinit(L, &b);
+  while ((wild = strstr(s, p)) != NULL) {
+    luaL_addlstring(&b, s, wild - s);  /* push prefix */
+    luaL_addstring(&b, r);  /* push replacement in place of pattern */
+    s = wild + l;  /* continue after `p' */
+  }
+  luaL_addstring(&b, s);  /* push last suffix */
+  luaL_pushresult(&b);
+  return lua_tostring(L, -1);
+}
+
+
+LUALIB_API const char *luaL_findtable (lua_State *L, int idx,
+                                       const char *fname, int szhint) {
+  const char *e;
+  lua_pushvalue(L, idx);
+  do {
+    e = strchr(fname, '.');
+    if (e == NULL) e = fname + strlen(fname);
+    lua_pushlstring(L, fname, e - fname);
+    lua_rawget(L, -2);
+    if (lua_isnil(L, -1)) {  /* no such field? */
+      lua_pop(L, 1);  /* remove this nil */
+      lua_createtable(L, 0, (*e == '.' ? 1 : szhint)); /* new table for field */
+      lua_pushlstring(L, fname, e - fname);
+      lua_pushvalue(L, -2);
+      lua_settable(L, -4);  /* set new table into field */
+    }
+    else if (!lua_istable(L, -1)) {  /* field has a non-table value? */
+      lua_pop(L, 2);  /* remove table and value */
+      return fname;  /* return problematic part of the name */
+    }
+    lua_remove(L, -2);  /* remove previous table */
+    fname = e + 1;
+  } while (*e == '.');
+  return NULL;
+}
+
+
+
+/*
+** {======================================================
+** Generic Buffer manipulation
+** =======================================================
+*/
+
+
+#define bufflen(B)	((B)->p - (B)->buffer)
+#define bufffree(B)	((size_t)(LUAL_BUFFERSIZE - bufflen(B)))
+
+#define LIMIT	(LUA_MINSTACK/2)
+
+
+static int emptybuffer (luaL_Buffer *B) {
+  size_t l = bufflen(B);
+  if (l == 0) return 0;  /* put nothing on stack */
+  else {
+    lua_pushlstring(B->L, B->buffer, l);
+    B->p = B->buffer;
+    B->lvl++;
+    return 1;
+  }
+}
+
+
+static void adjuststack (luaL_Buffer *B) {
+  if (B->lvl > 1) {
+    lua_State *L = B->L;
+    int toget = 1;  /* number of levels to concat */
+    size_t toplen = lua_strlen(L, -1);
+    do {
+      size_t l = lua_strlen(L, -(toget+1));
+      if (B->lvl - toget + 1 >= LIMIT || toplen > l) {
+        toplen += l;
+        toget++;
+      }
+      else break;
+    } while (toget < B->lvl);
+    lua_concat(L, toget);
+    B->lvl = B->lvl - toget + 1;
+  }
+}
+
+
+LUALIB_API char *luaL_prepbuffer (luaL_Buffer *B) {
+  if (emptybuffer(B))
+    adjuststack(B);
+  return B->buffer;
+}
+
+
+LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) {
+  while (l--)
+    luaL_addchar(B, *s++);
+}
+
+
+LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) {
+  luaL_addlstring(B, s, strlen(s));
+}
+
+
+LUALIB_API void luaL_pushresult (luaL_Buffer *B) {
+  emptybuffer(B);
+  lua_concat(B->L, B->lvl);
+  B->lvl = 1;
+}
+
+
+LUALIB_API void luaL_addvalue (luaL_Buffer *B) {
+  lua_State *L = B->L;
+  size_t vl;
+  const char *s = lua_tolstring(L, -1, &vl);
+  if (vl <= bufffree(B)) {  /* fit into buffer? */
+    memcpy(B->p, s, vl);  /* put it there */
+    B->p += vl;
+    lua_pop(L, 1);  /* remove from stack */
+  }
+  else {
+    if (emptybuffer(B))
+      lua_insert(L, -2);  /* put buffer before new value */
+    B->lvl++;  /* add new value into B stack */
+    adjuststack(B);
+  }
+}
+
+
+LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B) {
+  B->L = L;
+  B->p = B->buffer;
+  B->lvl = 0;
+}
+
+/* }====================================================== */
+
+
+LUALIB_API int luaL_ref (lua_State *L, int t) {
+  int ref;
+  t = abs_index(L, t);
+  if (lua_isnil(L, -1)) {
+    lua_pop(L, 1);  /* remove from stack */
+    return LUA_REFNIL;  /* `nil' has a unique fixed reference */
+  }
+  lua_rawgeti(L, t, FREELIST_REF);  /* get first free element */
+  ref = (int)lua_tointeger(L, -1);  /* ref = t[FREELIST_REF] */
+  lua_pop(L, 1);  /* remove it from stack */
+  if (ref != 0) {  /* any free element? */
+    lua_rawgeti(L, t, ref);  /* remove it from list */
+    lua_rawseti(L, t, FREELIST_REF);  /* (t[FREELIST_REF] = t[ref]) */
+  }
+  else {  /* no free elements */
+    ref = (int)lua_objlen(L, t);
+    ref++;  /* create new reference */
+  }
+  lua_rawseti(L, t, ref);
+  return ref;
+}
+
+
+LUALIB_API void luaL_unref (lua_State *L, int t, int ref) {
+  if (ref >= 0) {
+    t = abs_index(L, t);
+    lua_rawgeti(L, t, FREELIST_REF);
+    lua_rawseti(L, t, ref);  /* t[ref] = t[FREELIST_REF] */
+    lua_pushinteger(L, ref);
+    lua_rawseti(L, t, FREELIST_REF);  /* t[FREELIST_REF] = ref */
+  }
+}
+
+
+
+/*
+** {======================================================
+** Load functions
+** =======================================================
+*/
+
+typedef struct LoadF {
+  int extraline;
+  FILE *f;
+  char buff[LUAL_BUFFERSIZE];
+} LoadF;
+
+
+static const char *getF (lua_State *L, void *ud, size_t *size) {
+  LoadF *lf = (LoadF *)ud;
+  (void)L;
+  if (lf->extraline) {
+    lf->extraline = 0;
+    *size = 1;
+    return "\n";
+  }
+  if (feof(lf->f)) return NULL;
+  *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f);
+  return (*size > 0) ? lf->buff : NULL;
+}
+
+
+static int errfile (lua_State *L, const char *what, int fnameindex) {
+  const char *serr = strerror(errno);
+  const char *filename = lua_tostring(L, fnameindex) + 1;
+  lua_pushfstring(L, "cannot %s %s: %s", what, filename, serr);
+  lua_remove(L, fnameindex);
+  return LUA_ERRFILE;
+}
+
+
+LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {
+  LoadF lf;
+  int status, readstatus;
+  int c;
+  int fnameindex = lua_gettop(L) + 1;  /* index of filename on the stack */
+  lf.extraline = 0;
+  if (filename == NULL) {
+    lua_pushliteral(L, "=stdin");
+    lf.f = stdin;
+  }
+  else {
+    lua_pushfstring(L, "@%s", filename);
+    lf.f = fopen(filename, "r");
+    if (lf.f == NULL) return errfile(L, "open", fnameindex);
+  }
+  c = getc(lf.f);
+  if (c == '#') {  /* Unix exec. file? */
+    lf.extraline = 1;
+    while ((c = getc(lf.f)) != EOF && c != '\n') ;  /* skip first line */
+    if (c == '\n') c = getc(lf.f);
+  }
+  if (c == LUA_SIGNATURE[0] && filename) {  /* binary file? */
+    lf.f = freopen(filename, "rb", lf.f);  /* reopen in binary mode */
+    if (lf.f == NULL) return errfile(L, "reopen", fnameindex);
+    /* skip eventual `#!...' */
+   while ((c = getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) ;
+    lf.extraline = 0;
+  }
+  ungetc(c, lf.f);
+  status = lua_load(L, getF, &lf, lua_tostring(L, -1));
+  readstatus = ferror(lf.f);
+  if (filename) fclose(lf.f);  /* close file (even in case of errors) */
+  if (readstatus) {
+    lua_settop(L, fnameindex);  /* ignore results from `lua_load' */
+    return errfile(L, "read", fnameindex);
+  }
+  lua_remove(L, fnameindex);
+  return status;
+}
+
+
+typedef struct LoadS {
+  const char *s;
+  size_t size;
+} LoadS;
+
+
+static const char *getS (lua_State *L, void *ud, size_t *size) {
+  LoadS *ls = (LoadS *)ud;
+  (void)L;
+  if (ls->size == 0) return NULL;
+  *size = ls->size;
+  ls->size = 0;
+  return ls->s;
+}
+
+
+LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t size,
+                                const char *name) {
+  LoadS ls;
+  ls.s = buff;
+  ls.size = size;
+  return lua_load(L, getS, &ls, name);
+}
+
+
+LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s) {
+  return luaL_loadbuffer(L, s, strlen(s), s);
+}
+
+
+
+/* }====================================================== */
+
+
+static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
+  (void)ud;
+  (void)osize;
+  if (nsize == 0) {
+    free(ptr);
+    return NULL;
+  }
+  else
+    return realloc(ptr, nsize);
+}
+
+
+static int panic (lua_State *L) {
+  (void)L;  /* to avoid warnings */
+  fprintf(stderr, "PANIC: unprotected error in call to Lua API (%s)\n",
+                   lua_tostring(L, -1));
+  return 0;
+}
+
+
+LUALIB_API lua_State *luaL_newstate (void) {
+  lua_State *L = lua_newstate(l_alloc, NULL);
+  if (L) lua_atpanic(L, &panic);
+  return L;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lauxlib.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lauxlib.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lauxlib.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lauxlib.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,174 @@
+/*
+** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $
+** Auxiliary functions for building Lua libraries
+** See Copyright Notice in lua.h
+*/
+
+
+#ifndef lauxlib_h
+#define lauxlib_h
+
+
+#include <stddef.h>
+#include <stdio.h>
+
+#include "lua.h"
+
+
+#if defined(LUA_COMPAT_GETN)
+LUALIB_API int (luaL_getn) (lua_State *L, int t);
+LUALIB_API void (luaL_setn) (lua_State *L, int t, int n);
+#else
+#define luaL_getn(L,i)          ((int)lua_objlen(L, i))
+#define luaL_setn(L,i,j)        ((void)0)  /* no op! */
+#endif
+
+#if defined(LUA_COMPAT_OPENLIB)
+#define luaI_openlib	luaL_openlib
+#endif
+
+
+/* extra error code for `luaL_load' */
+#define LUA_ERRFILE     (LUA_ERRERR+1)
+
+
+typedef struct luaL_Reg {
+  const char *name;
+  lua_CFunction func;
+} luaL_Reg;
+
+
+
+LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname,
+                                const luaL_Reg *l, int nup);
+LUALIB_API void (luaL_register) (lua_State *L, const char *libname,
+                                const luaL_Reg *l);
+LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
+LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
+LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname);
+LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
+LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg,
+                                                          size_t *l);
+LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg,
+                                          const char *def, size_t *l);
+LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg);
+LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def);
+
+LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg);
+LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg,
+                                          lua_Integer def);
+
+LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg);
+LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t);
+LUALIB_API void (luaL_checkany) (lua_State *L, int narg);
+
+LUALIB_API int   (luaL_newmetatable) (lua_State *L, const char *tname);
+LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
+
+LUALIB_API void (luaL_where) (lua_State *L, int lvl);
+LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...);
+
+LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def,
+                                   const char *const lst[]);
+
+LUALIB_API int (luaL_ref) (lua_State *L, int t);
+LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
+
+LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename);
+LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz,
+                                  const char *name);
+LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s);
+
+LUALIB_API lua_State *(luaL_newstate) (void);
+
+
+LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
+                                                  const char *r);
+
+LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx,
+                                         const char *fname, int szhint);
+
+
+
+
+/*
+** ===============================================================
+** some useful macros
+** ===============================================================
+*/
+
+#define luaL_argcheck(L, cond,numarg,extramsg)	\
+		((void)((cond) || luaL_argerror(L, (numarg), (extramsg))))
+#define luaL_checkstring(L,n)	(luaL_checklstring(L, (n), NULL))
+#define luaL_optstring(L,n,d)	(luaL_optlstring(L, (n), (d), NULL))
+#define luaL_checkint(L,n)	((int)luaL_checkinteger(L, (n)))
+#define luaL_optint(L,n,d)	((int)luaL_optinteger(L, (n), (d)))
+#define luaL_checklong(L,n)	((long)luaL_checkinteger(L, (n)))
+#define luaL_optlong(L,n,d)	((long)luaL_optinteger(L, (n), (d)))
+
+#define luaL_typename(L,i)	lua_typename(L, lua_type(L,(i)))
+
+#define luaL_dofile(L, fn) \
+	(luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
+
+#define luaL_dostring(L, s) \
+	(luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
+
+#define luaL_getmetatable(L,n)	(lua_getfield(L, LUA_REGISTRYINDEX, (n)))
+
+#define luaL_opt(L,f,n,d)	(lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
+
+/*
+** {======================================================
+** Generic Buffer manipulation
+** =======================================================
+*/
+
+
+
+typedef struct luaL_Buffer {
+  char *p;			/* current position in buffer */
+  int lvl;  /* number of strings in the stack (level) */
+  lua_State *L;
+  char buffer[LUAL_BUFFERSIZE];
+} luaL_Buffer;
+
+#define luaL_addchar(B,c) \
+  ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \
+   (*(B)->p++ = (char)(c)))
+
+/* compatibility only */
+#define luaL_putchar(B,c)	luaL_addchar(B,c)
+
+#define luaL_addsize(B,n)	((B)->p += (n))
+
+LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
+LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B);
+LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
+LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s);
+LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
+LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
+
+
+/* }====================================================== */
+
+
+/* compatibility with ref system */
+
+/* pre-defined references */
+#define LUA_NOREF       (-2)
+#define LUA_REFNIL      (-1)
+
+#define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \
+      (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0))
+
+#define lua_unref(L,ref)        luaL_unref(L, LUA_REGISTRYINDEX, (ref))
+
+#define lua_getref(L,ref)       lua_rawgeti(L, LUA_REGISTRYINDEX, (ref))
+
+
+#define luaL_reg	luaL_Reg
+
+#endif
+
+

Added: test-suite/trunk/MultiSource/Applications/lua/lbaselib.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lbaselib.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lbaselib.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lbaselib.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,653 @@
+/*
+** $Id: lbaselib.c,v 1.191.1.6 2008/02/14 16:46:22 roberto Exp $
+** Basic library
+** See Copyright Notice in lua.h
+*/
+
+
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define lbaselib_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lauxlib.h"
+#include "lualib.h"
+
+
+
+
+/*
+** If your system does not support `stdout', you can just remove this function.
+** If you need, you can define your own `print' function, following this
+** model but changing `fputs' to put the strings at a proper place
+** (a console window or a log file, for instance).
+*/
+static int luaB_print (lua_State *L) {
+  int n = lua_gettop(L);  /* number of arguments */
+  int i;
+  lua_getglobal(L, "tostring");
+  for (i=1; i<=n; i++) {
+    const char *s;
+    lua_pushvalue(L, -1);  /* function to be called */
+    lua_pushvalue(L, i);   /* value to print */
+    lua_call(L, 1, 1);
+    s = lua_tostring(L, -1);  /* get result */
+    if (s == NULL)
+      return luaL_error(L, LUA_QL("tostring") " must return a string to "
+                           LUA_QL("print"));
+    if (i>1) fputs("\t", stdout);
+    fputs(s, stdout);
+    lua_pop(L, 1);  /* pop result */
+  }
+  fputs("\n", stdout);
+  return 0;
+}
+
+
+static int luaB_tonumber (lua_State *L) {
+  int base = luaL_optint(L, 2, 10);
+  if (base == 10) {  /* standard conversion */
+    luaL_checkany(L, 1);
+    if (lua_isnumber(L, 1)) {
+      lua_pushnumber(L, lua_tonumber(L, 1));
+      return 1;
+    }
+  }
+  else {
+    const char *s1 = luaL_checkstring(L, 1);
+    char *s2;
+    unsigned long n;
+    luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range");
+    n = strtoul(s1, &s2, base);
+    if (s1 != s2) {  /* at least one valid digit? */
+      while (isspace((unsigned char)(*s2))) s2++;  /* skip trailing spaces */
+      if (*s2 == '\0') {  /* no invalid trailing characters? */
+        lua_pushnumber(L, (lua_Number)n);
+        return 1;
+      }
+    }
+  }
+  lua_pushnil(L);  /* else not a number */
+  return 1;
+}
+
+
+static int luaB_error (lua_State *L) {
+  int level = luaL_optint(L, 2, 1);
+  lua_settop(L, 1);
+  if (lua_isstring(L, 1) && level > 0) {  /* add extra information? */
+    luaL_where(L, level);
+    lua_pushvalue(L, 1);
+    lua_concat(L, 2);
+  }
+  return lua_error(L);
+}
+
+
+static int luaB_getmetatable (lua_State *L) {
+  luaL_checkany(L, 1);
+  if (!lua_getmetatable(L, 1)) {
+    lua_pushnil(L);
+    return 1;  /* no metatable */
+  }
+  luaL_getmetafield(L, 1, "__metatable");
+  return 1;  /* returns either __metatable field (if present) or metatable */
+}
+
+
+static int luaB_setmetatable (lua_State *L) {
+  int t = lua_type(L, 2);
+  luaL_checktype(L, 1, LUA_TTABLE);
+  luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2,
+                    "nil or table expected");
+  if (luaL_getmetafield(L, 1, "__metatable"))
+    luaL_error(L, "cannot change a protected metatable");
+  lua_settop(L, 2);
+  lua_setmetatable(L, 1);
+  return 1;
+}
+
+
+static void getfunc (lua_State *L, int opt) {
+  if (lua_isfunction(L, 1)) lua_pushvalue(L, 1);
+  else {
+    lua_Debug ar;
+    int level = opt ? luaL_optint(L, 1, 1) : luaL_checkint(L, 1);
+    luaL_argcheck(L, level >= 0, 1, "level must be non-negative");
+    if (lua_getstack(L, level, &ar) == 0)
+      luaL_argerror(L, 1, "invalid level");
+    lua_getinfo(L, "f", &ar);
+    if (lua_isnil(L, -1))
+      luaL_error(L, "no function environment for tail call at level %d",
+                    level);
+  }
+}
+
+
+static int luaB_getfenv (lua_State *L) {
+  getfunc(L, 1);
+  if (lua_iscfunction(L, -1))  /* is a C function? */
+    lua_pushvalue(L, LUA_GLOBALSINDEX);  /* return the thread's global env. */
+  else
+    lua_getfenv(L, -1);
+  return 1;
+}
+
+
+static int luaB_setfenv (lua_State *L) {
+  luaL_checktype(L, 2, LUA_TTABLE);
+  getfunc(L, 0);
+  lua_pushvalue(L, 2);
+  if (lua_isnumber(L, 1) && lua_tonumber(L, 1) == 0) {
+    /* change environment of current thread */
+    lua_pushthread(L);
+    lua_insert(L, -2);
+    lua_setfenv(L, -2);
+    return 0;
+  }
+  else if (lua_iscfunction(L, -2) || lua_setfenv(L, -2) == 0)
+    luaL_error(L,
+          LUA_QL("setfenv") " cannot change environment of given object");
+  return 1;
+}
+
+
+static int luaB_rawequal (lua_State *L) {
+  luaL_checkany(L, 1);
+  luaL_checkany(L, 2);
+  lua_pushboolean(L, lua_rawequal(L, 1, 2));
+  return 1;
+}
+
+
+static int luaB_rawget (lua_State *L) {
+  luaL_checktype(L, 1, LUA_TTABLE);
+  luaL_checkany(L, 2);
+  lua_settop(L, 2);
+  lua_rawget(L, 1);
+  return 1;
+}
+
+static int luaB_rawset (lua_State *L) {
+  luaL_checktype(L, 1, LUA_TTABLE);
+  luaL_checkany(L, 2);
+  luaL_checkany(L, 3);
+  lua_settop(L, 3);
+  lua_rawset(L, 1);
+  return 1;
+}
+
+
+static int luaB_gcinfo (lua_State *L) {
+  lua_pushinteger(L, lua_getgccount(L));
+  return 1;
+}
+
+
+static int luaB_collectgarbage (lua_State *L) {
+  static const char *const opts[] = {"stop", "restart", "collect",
+    "count", "step", "setpause", "setstepmul", NULL};
+  static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT,
+    LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL};
+  int o = luaL_checkoption(L, 1, "collect", opts);
+  int ex = luaL_optint(L, 2, 0);
+  int res = lua_gc(L, optsnum[o], ex);
+  switch (optsnum[o]) {
+    case LUA_GCCOUNT: {
+      int b = lua_gc(L, LUA_GCCOUNTB, 0);
+      lua_pushnumber(L, res + ((lua_Number)b/1024));
+      return 1;
+    }
+    case LUA_GCSTEP: {
+      lua_pushboolean(L, res);
+      return 1;
+    }
+    default: {
+      lua_pushnumber(L, res);
+      return 1;
+    }
+  }
+}
+
+
+static int luaB_type (lua_State *L) {
+  luaL_checkany(L, 1);
+  lua_pushstring(L, luaL_typename(L, 1));
+  return 1;
+}
+
+
+static int luaB_next (lua_State *L) {
+  luaL_checktype(L, 1, LUA_TTABLE);
+  lua_settop(L, 2);  /* create a 2nd argument if there isn't one */
+  if (lua_next(L, 1))
+    return 2;
+  else {
+    lua_pushnil(L);
+    return 1;
+  }
+}
+
+
+static int luaB_pairs (lua_State *L) {
+  luaL_checktype(L, 1, LUA_TTABLE);
+  lua_pushvalue(L, lua_upvalueindex(1));  /* return generator, */
+  lua_pushvalue(L, 1);  /* state, */
+  lua_pushnil(L);  /* and initial value */
+  return 3;
+}
+
+
+static int ipairsaux (lua_State *L) {
+  int i = luaL_checkint(L, 2);
+  luaL_checktype(L, 1, LUA_TTABLE);
+  i++;  /* next value */
+  lua_pushinteger(L, i);
+  lua_rawgeti(L, 1, i);
+  return (lua_isnil(L, -1)) ? 0 : 2;
+}
+
+
+static int luaB_ipairs (lua_State *L) {
+  luaL_checktype(L, 1, LUA_TTABLE);
+  lua_pushvalue(L, lua_upvalueindex(1));  /* return generator, */
+  lua_pushvalue(L, 1);  /* state, */
+  lua_pushinteger(L, 0);  /* and initial value */
+  return 3;
+}
+
+
+static int load_aux (lua_State *L, int status) {
+  if (status == 0)  /* OK? */
+    return 1;
+  else {
+    lua_pushnil(L);
+    lua_insert(L, -2);  /* put before error message */
+    return 2;  /* return nil plus error message */
+  }
+}
+
+
+static int luaB_loadstring (lua_State *L) {
+  size_t l;
+  const char *s = luaL_checklstring(L, 1, &l);
+  const char *chunkname = luaL_optstring(L, 2, s);
+  return load_aux(L, luaL_loadbuffer(L, s, l, chunkname));
+}
+
+
+static int luaB_loadfile (lua_State *L) {
+  const char *fname = luaL_optstring(L, 1, NULL);
+  return load_aux(L, luaL_loadfile(L, fname));
+}
+
+
+/*
+** Reader for generic `load' function: `lua_load' uses the
+** stack for internal stuff, so the reader cannot change the
+** stack top. Instead, it keeps its resulting string in a
+** reserved slot inside the stack.
+*/
+static const char *generic_reader (lua_State *L, void *ud, size_t *size) {
+  (void)ud;  /* to avoid warnings */
+  luaL_checkstack(L, 2, "too many nested functions");
+  lua_pushvalue(L, 1);  /* get function */
+  lua_call(L, 0, 1);  /* call it */
+  if (lua_isnil(L, -1)) {
+    *size = 0;
+    return NULL;
+  }
+  else if (lua_isstring(L, -1)) {
+    lua_replace(L, 3);  /* save string in a reserved stack slot */
+    return lua_tolstring(L, 3, size);
+  }
+  else luaL_error(L, "reader function must return a string");
+  return NULL;  /* to avoid warnings */
+}
+
+
+static int luaB_load (lua_State *L) {
+  int status;
+  const char *cname = luaL_optstring(L, 2, "=(load)");
+  luaL_checktype(L, 1, LUA_TFUNCTION);
+  lua_settop(L, 3);  /* function, eventual name, plus one reserved slot */
+  status = lua_load(L, generic_reader, NULL, cname);
+  return load_aux(L, status);
+}
+
+
+static int luaB_dofile (lua_State *L) {
+  const char *fname = luaL_optstring(L, 1, NULL);
+  int n = lua_gettop(L);
+  if (luaL_loadfile(L, fname) != 0) lua_error(L);
+  lua_call(L, 0, LUA_MULTRET);
+  return lua_gettop(L) - n;
+}
+
+
+static int luaB_assert (lua_State *L) {
+  luaL_checkany(L, 1);
+  if (!lua_toboolean(L, 1))
+    return luaL_error(L, "%s", luaL_optstring(L, 2, "assertion failed!"));
+  return lua_gettop(L);
+}
+
+
+static int luaB_unpack (lua_State *L) {
+  int i, e, n;
+  luaL_checktype(L, 1, LUA_TTABLE);
+  i = luaL_optint(L, 2, 1);
+  e = luaL_opt(L, luaL_checkint, 3, luaL_getn(L, 1));
+  if (i > e) return 0;  /* empty range */
+  n = e - i + 1;  /* number of elements */
+  if (n <= 0 || !lua_checkstack(L, n))  /* n <= 0 means arith. overflow */
+    return luaL_error(L, "too many results to unpack");
+  lua_rawgeti(L, 1, i);  /* push arg[i] (avoiding overflow problems) */
+  while (i++ < e)  /* push arg[i + 1...e] */
+    lua_rawgeti(L, 1, i);
+  return n;
+}
+
+
+static int luaB_select (lua_State *L) {
+  int n = lua_gettop(L);
+  if (lua_type(L, 1) == LUA_TSTRING && *lua_tostring(L, 1) == '#') {
+    lua_pushinteger(L, n-1);
+    return 1;
+  }
+  else {
+    int i = luaL_checkint(L, 1);
+    if (i < 0) i = n + i;
+    else if (i > n) i = n;
+    luaL_argcheck(L, 1 <= i, 1, "index out of range");
+    return n - i;
+  }
+}
+
+
+static int luaB_pcall (lua_State *L) {
+  int status;
+  luaL_checkany(L, 1);
+  status = lua_pcall(L, lua_gettop(L) - 1, LUA_MULTRET, 0);
+  lua_pushboolean(L, (status == 0));
+  lua_insert(L, 1);
+  return lua_gettop(L);  /* return status + all results */
+}
+
+
+static int luaB_xpcall (lua_State *L) {
+  int status;
+  luaL_checkany(L, 2);
+  lua_settop(L, 2);
+  lua_insert(L, 1);  /* put error function under function to be called */
+  status = lua_pcall(L, 0, LUA_MULTRET, 1);
+  lua_pushboolean(L, (status == 0));
+  lua_replace(L, 1);
+  return lua_gettop(L);  /* return status + all results */
+}
+
+
+static int luaB_tostring (lua_State *L) {
+  luaL_checkany(L, 1);
+  if (luaL_callmeta(L, 1, "__tostring"))  /* is there a metafield? */
+    return 1;  /* use its value */
+  switch (lua_type(L, 1)) {
+    case LUA_TNUMBER:
+      lua_pushstring(L, lua_tostring(L, 1));
+      break;
+    case LUA_TSTRING:
+      lua_pushvalue(L, 1);
+      break;
+    case LUA_TBOOLEAN:
+      lua_pushstring(L, (lua_toboolean(L, 1) ? "true" : "false"));
+      break;
+    case LUA_TNIL:
+      lua_pushliteral(L, "nil");
+      break;
+    default:
+      lua_pushfstring(L, "%s: %p", luaL_typename(L, 1), lua_topointer(L, 1));
+      break;
+  }
+  return 1;
+}
+
+
+static int luaB_newproxy (lua_State *L) {
+  lua_settop(L, 1);
+  lua_newuserdata(L, 0);  /* create proxy */
+  if (lua_toboolean(L, 1) == 0)
+    return 1;  /* no metatable */
+  else if (lua_isboolean(L, 1)) {
+    lua_newtable(L);  /* create a new metatable `m' ... */
+    lua_pushvalue(L, -1);  /* ... and mark `m' as a valid metatable */
+    lua_pushboolean(L, 1);
+    lua_rawset(L, lua_upvalueindex(1));  /* weaktable[m] = true */
+  }
+  else {
+    int validproxy = 0;  /* to check if weaktable[metatable(u)] == true */
+    if (lua_getmetatable(L, 1)) {
+      lua_rawget(L, lua_upvalueindex(1));
+      validproxy = lua_toboolean(L, -1);
+      lua_pop(L, 1);  /* remove value */
+    }
+    luaL_argcheck(L, validproxy, 1, "boolean or proxy expected");
+    lua_getmetatable(L, 1);  /* metatable is valid; get it */
+  }
+  lua_setmetatable(L, 2);
+  return 1;
+}
+
+
+static const luaL_Reg base_funcs[] = {
+  {"assert", luaB_assert},
+  {"collectgarbage", luaB_collectgarbage},
+  {"dofile", luaB_dofile},
+  {"error", luaB_error},
+  {"gcinfo", luaB_gcinfo},
+  {"getfenv", luaB_getfenv},
+  {"getmetatable", luaB_getmetatable},
+  {"loadfile", luaB_loadfile},
+  {"load", luaB_load},
+  {"loadstring", luaB_loadstring},
+  {"next", luaB_next},
+  {"pcall", luaB_pcall},
+  {"print", luaB_print},
+  {"rawequal", luaB_rawequal},
+  {"rawget", luaB_rawget},
+  {"rawset", luaB_rawset},
+  {"select", luaB_select},
+  {"setfenv", luaB_setfenv},
+  {"setmetatable", luaB_setmetatable},
+  {"tonumber", luaB_tonumber},
+  {"tostring", luaB_tostring},
+  {"type", luaB_type},
+  {"unpack", luaB_unpack},
+  {"xpcall", luaB_xpcall},
+  {NULL, NULL}
+};
+
+
+/*
+** {======================================================
+** Coroutine library
+** =======================================================
+*/
+
+#define CO_RUN	0	/* running */
+#define CO_SUS	1	/* suspended */
+#define CO_NOR	2	/* 'normal' (it resumed another coroutine) */
+#define CO_DEAD	3
+
+static const char *const statnames[] =
+    {"running", "suspended", "normal", "dead"};
+
+static int costatus (lua_State *L, lua_State *co) {
+  if (L == co) return CO_RUN;
+  switch (lua_status(co)) {
+    case LUA_YIELD:
+      return CO_SUS;
+    case 0: {
+      lua_Debug ar;
+      if (lua_getstack(co, 0, &ar) > 0)  /* does it have frames? */
+        return CO_NOR;  /* it is running */
+      else if (lua_gettop(co) == 0)
+          return CO_DEAD;
+      else
+        return CO_SUS;  /* initial state */
+    }
+    default:  /* some error occured */
+      return CO_DEAD;
+  }
+}
+
+
+static int luaB_costatus (lua_State *L) {
+  lua_State *co = lua_tothread(L, 1);
+  luaL_argcheck(L, co, 1, "coroutine expected");
+  lua_pushstring(L, statnames[costatus(L, co)]);
+  return 1;
+}
+
+
+static int auxresume (lua_State *L, lua_State *co, int narg) {
+  int status = costatus(L, co);
+  if (!lua_checkstack(co, narg))
+    luaL_error(L, "too many arguments to resume");
+  if (status != CO_SUS) {
+    lua_pushfstring(L, "cannot resume %s coroutine", statnames[status]);
+    return -1;  /* error flag */
+  }
+  lua_xmove(L, co, narg);
+  lua_setlevel(L, co);
+  status = lua_resume(co, narg);
+  if (status == 0 || status == LUA_YIELD) {
+    int nres = lua_gettop(co);
+    if (!lua_checkstack(L, nres + 1))
+      luaL_error(L, "too many results to resume");
+    lua_xmove(co, L, nres);  /* move yielded values */
+    return nres;
+  }
+  else {
+    lua_xmove(co, L, 1);  /* move error message */
+    return -1;  /* error flag */
+  }
+}
+
+
+static int luaB_coresume (lua_State *L) {
+  lua_State *co = lua_tothread(L, 1);
+  int r;
+  luaL_argcheck(L, co, 1, "coroutine expected");
+  r = auxresume(L, co, lua_gettop(L) - 1);
+  if (r < 0) {
+    lua_pushboolean(L, 0);
+    lua_insert(L, -2);
+    return 2;  /* return false + error message */
+  }
+  else {
+    lua_pushboolean(L, 1);
+    lua_insert(L, -(r + 1));
+    return r + 1;  /* return true + `resume' returns */
+  }
+}
+
+
+static int luaB_auxwrap (lua_State *L) {
+  lua_State *co = lua_tothread(L, lua_upvalueindex(1));
+  int r = auxresume(L, co, lua_gettop(L));
+  if (r < 0) {
+    if (lua_isstring(L, -1)) {  /* error object is a string? */
+      luaL_where(L, 1);  /* add extra info */
+      lua_insert(L, -2);
+      lua_concat(L, 2);
+    }
+    lua_error(L);  /* propagate error */
+  }
+  return r;
+}
+
+
+static int luaB_cocreate (lua_State *L) {
+  lua_State *NL = lua_newthread(L);
+  luaL_argcheck(L, lua_isfunction(L, 1) && !lua_iscfunction(L, 1), 1,
+    "Lua function expected");
+  lua_pushvalue(L, 1);  /* move function to top */
+  lua_xmove(L, NL, 1);  /* move function from L to NL */
+  return 1;
+}
+
+
+static int luaB_cowrap (lua_State *L) {
+  luaB_cocreate(L);
+  lua_pushcclosure(L, luaB_auxwrap, 1);
+  return 1;
+}
+
+
+static int luaB_yield (lua_State *L) {
+  return lua_yield(L, lua_gettop(L));
+}
+
+
+static int luaB_corunning (lua_State *L) {
+  if (lua_pushthread(L))
+    lua_pushnil(L);  /* main thread is not a coroutine */
+  return 1;
+}
+
+
+static const luaL_Reg co_funcs[] = {
+  {"create", luaB_cocreate},
+  {"resume", luaB_coresume},
+  {"running", luaB_corunning},
+  {"status", luaB_costatus},
+  {"wrap", luaB_cowrap},
+  {"yield", luaB_yield},
+  {NULL, NULL}
+};
+
+/* }====================================================== */
+
+
+static void auxopen (lua_State *L, const char *name,
+                     lua_CFunction f, lua_CFunction u) {
+  lua_pushcfunction(L, u);
+  lua_pushcclosure(L, f, 1);
+  lua_setfield(L, -2, name);
+}
+
+
+static void base_open (lua_State *L) {
+  /* set global _G */
+  lua_pushvalue(L, LUA_GLOBALSINDEX);
+  lua_setglobal(L, "_G");
+  /* open lib into global table */
+  luaL_register(L, "_G", base_funcs);
+  lua_pushliteral(L, LUA_VERSION);
+  lua_setglobal(L, "_VERSION");  /* set global _VERSION */
+  /* `ipairs' and `pairs' need auxliliary functions as upvalues */
+  auxopen(L, "ipairs", luaB_ipairs, ipairsaux);
+  auxopen(L, "pairs", luaB_pairs, luaB_next);
+  /* `newproxy' needs a weaktable as upvalue */
+  lua_createtable(L, 0, 1);  /* new table `w' */
+  lua_pushvalue(L, -1);  /* `w' will be its own metatable */
+  lua_setmetatable(L, -2);
+  lua_pushliteral(L, "kv");
+  lua_setfield(L, -2, "__mode");  /* metatable(w).__mode = "kv" */
+  lua_pushcclosure(L, luaB_newproxy, 1);
+  lua_setglobal(L, "newproxy");  /* set global `newproxy' */
+}
+
+
+LUALIB_API int luaopen_base (lua_State *L) {
+  base_open(L);
+  luaL_register(L, LUA_COLIBNAME, co_funcs);
+  return 2;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lcode.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lcode.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lcode.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lcode.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,839 @@
+/*
+** $Id: lcode.c,v 2.25.1.3 2007/12/28 15:32:23 roberto Exp $
+** Code generator for Lua
+** See Copyright Notice in lua.h
+*/
+
+
+#include <stdlib.h>
+
+#define lcode_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "lcode.h"
+#include "ldebug.h"
+#include "ldo.h"
+#include "lgc.h"
+#include "llex.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lopcodes.h"
+#include "lparser.h"
+#include "ltable.h"
+
+
+#define hasjumps(e)	((e)->t != (e)->f)
+
+
+static int isnumeral(expdesc *e) {
+  return (e->k == VKNUM && e->t == NO_JUMP && e->f == NO_JUMP);
+}
+
+
+void luaK_nil (FuncState *fs, int from, int n) {
+  Instruction *previous;
+  if (fs->pc > fs->lasttarget) {  /* no jumps to current position? */
+    if (fs->pc == 0) {  /* function start? */
+      if (from >= fs->nactvar)
+        return;  /* positions are already clean */
+    }
+    else {
+      previous = &fs->f->code[fs->pc-1];
+      if (GET_OPCODE(*previous) == OP_LOADNIL) {
+        int pfrom = GETARG_A(*previous);
+        int pto = GETARG_B(*previous);
+        if (pfrom <= from && from <= pto+1) {  /* can connect both? */
+          if (from+n-1 > pto)
+            SETARG_B(*previous, from+n-1);
+          return;
+        }
+      }
+    }
+  }
+  luaK_codeABC(fs, OP_LOADNIL, from, from+n-1, 0);  /* else no optimization */
+}
+
+
+int luaK_jump (FuncState *fs) {
+  int jpc = fs->jpc;  /* save list of jumps to here */
+  int j;
+  fs->jpc = NO_JUMP;
+  j = luaK_codeAsBx(fs, OP_JMP, 0, NO_JUMP);
+  luaK_concat(fs, &j, jpc);  /* keep them on hold */
+  return j;
+}
+
+
+void luaK_ret (FuncState *fs, int first, int nret) {
+  luaK_codeABC(fs, OP_RETURN, first, nret+1, 0);
+}
+
+
+static int condjump (FuncState *fs, OpCode op, int A, int B, int C) {
+  luaK_codeABC(fs, op, A, B, C);
+  return luaK_jump(fs);
+}
+
+
+static void fixjump (FuncState *fs, int pc, int dest) {
+  Instruction *jmp = &fs->f->code[pc];
+  int offset = dest-(pc+1);
+  lua_assert(dest != NO_JUMP);
+  if (abs(offset) > MAXARG_sBx)
+    luaX_syntaxerror(fs->ls, "control structure too long");
+  SETARG_sBx(*jmp, offset);
+}
+
+
+/*
+** returns current `pc' and marks it as a jump target (to avoid wrong
+** optimizations with consecutive instructions not in the same basic block).
+*/
+int luaK_getlabel (FuncState *fs) {
+  fs->lasttarget = fs->pc;
+  return fs->pc;
+}
+
+
+static int getjump (FuncState *fs, int pc) {
+  int offset = GETARG_sBx(fs->f->code[pc]);
+  if (offset == NO_JUMP)  /* point to itself represents end of list */
+    return NO_JUMP;  /* end of list */
+  else
+    return (pc+1)+offset;  /* turn offset into absolute position */
+}
+
+
+static Instruction *getjumpcontrol (FuncState *fs, int pc) {
+  Instruction *pi = &fs->f->code[pc];
+  if (pc >= 1 && testTMode(GET_OPCODE(*(pi-1))))
+    return pi-1;
+  else
+    return pi;
+}
+
+
+/*
+** check whether list has any jump that do not produce a value
+** (or produce an inverted value)
+*/
+static int need_value (FuncState *fs, int list) {
+  for (; list != NO_JUMP; list = getjump(fs, list)) {
+    Instruction i = *getjumpcontrol(fs, list);
+    if (GET_OPCODE(i) != OP_TESTSET) return 1;
+  }
+  return 0;  /* not found */
+}
+
+
+static int patchtestreg (FuncState *fs, int node, int reg) {
+  Instruction *i = getjumpcontrol(fs, node);
+  if (GET_OPCODE(*i) != OP_TESTSET)
+    return 0;  /* cannot patch other instructions */
+  if (reg != NO_REG && reg != GETARG_B(*i))
+    SETARG_A(*i, reg);
+  else  /* no register to put value or register already has the value */
+    *i = CREATE_ABC(OP_TEST, GETARG_B(*i), 0, GETARG_C(*i));
+
+  return 1;
+}
+
+
+static void removevalues (FuncState *fs, int list) {
+  for (; list != NO_JUMP; list = getjump(fs, list))
+      patchtestreg(fs, list, NO_REG);
+}
+
+
+static void patchlistaux (FuncState *fs, int list, int vtarget, int reg,
+                          int dtarget) {
+  while (list != NO_JUMP) {
+    int next = getjump(fs, list);
+    if (patchtestreg(fs, list, reg))
+      fixjump(fs, list, vtarget);
+    else
+      fixjump(fs, list, dtarget);  /* jump to default target */
+    list = next;
+  }
+}
+
+
+static void dischargejpc (FuncState *fs) {
+  patchlistaux(fs, fs->jpc, fs->pc, NO_REG, fs->pc);
+  fs->jpc = NO_JUMP;
+}
+
+
+void luaK_patchlist (FuncState *fs, int list, int target) {
+  if (target == fs->pc)
+    luaK_patchtohere(fs, list);
+  else {
+    lua_assert(target < fs->pc);
+    patchlistaux(fs, list, target, NO_REG, target);
+  }
+}
+
+
+void luaK_patchtohere (FuncState *fs, int list) {
+  luaK_getlabel(fs);
+  luaK_concat(fs, &fs->jpc, list);
+}
+
+
+void luaK_concat (FuncState *fs, int *l1, int l2) {
+  if (l2 == NO_JUMP) return;
+  else if (*l1 == NO_JUMP)
+    *l1 = l2;
+  else {
+    int list = *l1;
+    int next;
+    while ((next = getjump(fs, list)) != NO_JUMP)  /* find last element */
+      list = next;
+    fixjump(fs, list, l2);
+  }
+}
+
+
+void luaK_checkstack (FuncState *fs, int n) {
+  int newstack = fs->freereg + n;
+  if (newstack > fs->f->maxstacksize) {
+    if (newstack >= MAXSTACK)
+      luaX_syntaxerror(fs->ls, "function or expression too complex");
+    fs->f->maxstacksize = cast_byte(newstack);
+  }
+}
+
+
+void luaK_reserveregs (FuncState *fs, int n) {
+  luaK_checkstack(fs, n);
+  fs->freereg += n;
+}
+
+
+static void freereg (FuncState *fs, int reg) {
+  if (!ISK(reg) && reg >= fs->nactvar) {
+    fs->freereg--;
+    lua_assert(reg == fs->freereg);
+  }
+}
+
+
+static void freeexp (FuncState *fs, expdesc *e) {
+  if (e->k == VNONRELOC)
+    freereg(fs, e->u.s.info);
+}
+
+
+static int addk (FuncState *fs, TValue *k, TValue *v) {
+  lua_State *L = fs->L;
+  TValue *idx = luaH_set(L, fs->h, k);
+  Proto *f = fs->f;
+  int oldsize = f->sizek;
+  if (ttisnumber(idx)) {
+    lua_assert(luaO_rawequalObj(&fs->f->k[cast_int(nvalue(idx))], v));
+    return cast_int(nvalue(idx));
+  }
+  else {  /* constant not found; create a new entry */
+    setnvalue(idx, cast_num(fs->nk));
+    luaM_growvector(L, f->k, fs->nk, f->sizek, TValue,
+                    MAXARG_Bx, "constant table overflow");
+    while (oldsize < f->sizek) setnilvalue(&f->k[oldsize++]);
+    setobj(L, &f->k[fs->nk], v);
+    luaC_barrier(L, f, v);
+    return fs->nk++;
+  }
+}
+
+
+int luaK_stringK (FuncState *fs, TString *s) {
+  TValue o;
+  setsvalue(fs->L, &o, s);
+  return addk(fs, &o, &o);
+}
+
+
+int luaK_numberK (FuncState *fs, lua_Number r) {
+  TValue o;
+  setnvalue(&o, r);
+  return addk(fs, &o, &o);
+}
+
+
+static int boolK (FuncState *fs, int b) {
+  TValue o;
+  setbvalue(&o, b);
+  return addk(fs, &o, &o);
+}
+
+
+static int nilK (FuncState *fs) {
+  TValue k, v;
+  setnilvalue(&v);
+  /* cannot use nil as key; instead use table itself to represent nil */
+  sethvalue(fs->L, &k, fs->h);
+  return addk(fs, &k, &v);
+}
+
+
+void luaK_setreturns (FuncState *fs, expdesc *e, int nresults) {
+  if (e->k == VCALL) {  /* expression is an open function call? */
+    SETARG_C(getcode(fs, e), nresults+1);
+  }
+  else if (e->k == VVARARG) {
+    SETARG_B(getcode(fs, e), nresults+1);
+    SETARG_A(getcode(fs, e), fs->freereg);
+    luaK_reserveregs(fs, 1);
+  }
+}
+
+
+void luaK_setoneret (FuncState *fs, expdesc *e) {
+  if (e->k == VCALL) {  /* expression is an open function call? */
+    e->k = VNONRELOC;
+    e->u.s.info = GETARG_A(getcode(fs, e));
+  }
+  else if (e->k == VVARARG) {
+    SETARG_B(getcode(fs, e), 2);
+    e->k = VRELOCABLE;  /* can relocate its simple result */
+  }
+}
+
+
+void luaK_dischargevars (FuncState *fs, expdesc *e) {
+  switch (e->k) {
+    case VLOCAL: {
+      e->k = VNONRELOC;
+      break;
+    }
+    case VUPVAL: {
+      e->u.s.info = luaK_codeABC(fs, OP_GETUPVAL, 0, e->u.s.info, 0);
+      e->k = VRELOCABLE;
+      break;
+    }
+    case VGLOBAL: {
+      e->u.s.info = luaK_codeABx(fs, OP_GETGLOBAL, 0, e->u.s.info);
+      e->k = VRELOCABLE;
+      break;
+    }
+    case VINDEXED: {
+      freereg(fs, e->u.s.aux);
+      freereg(fs, e->u.s.info);
+      e->u.s.info = luaK_codeABC(fs, OP_GETTABLE, 0, e->u.s.info, e->u.s.aux);
+      e->k = VRELOCABLE;
+      break;
+    }
+    case VVARARG:
+    case VCALL: {
+      luaK_setoneret(fs, e);
+      break;
+    }
+    default: break;  /* there is one value available (somewhere) */
+  }
+}
+
+
+static int code_label (FuncState *fs, int A, int b, int jump) {
+  luaK_getlabel(fs);  /* those instructions may be jump targets */
+  return luaK_codeABC(fs, OP_LOADBOOL, A, b, jump);
+}
+
+
+static void discharge2reg (FuncState *fs, expdesc *e, int reg) {
+  luaK_dischargevars(fs, e);
+  switch (e->k) {
+    case VNIL: {
+      luaK_nil(fs, reg, 1);
+      break;
+    }
+    case VFALSE:  case VTRUE: {
+      luaK_codeABC(fs, OP_LOADBOOL, reg, e->k == VTRUE, 0);
+      break;
+    }
+    case VK: {
+      luaK_codeABx(fs, OP_LOADK, reg, e->u.s.info);
+      break;
+    }
+    case VKNUM: {
+      luaK_codeABx(fs, OP_LOADK, reg, luaK_numberK(fs, e->u.nval));
+      break;
+    }
+    case VRELOCABLE: {
+      Instruction *pc = &getcode(fs, e);
+      SETARG_A(*pc, reg);
+      break;
+    }
+    case VNONRELOC: {
+      if (reg != e->u.s.info)
+        luaK_codeABC(fs, OP_MOVE, reg, e->u.s.info, 0);
+      break;
+    }
+    default: {
+      lua_assert(e->k == VVOID || e->k == VJMP);
+      return;  /* nothing to do... */
+    }
+  }
+  e->u.s.info = reg;
+  e->k = VNONRELOC;
+}
+
+
+static void discharge2anyreg (FuncState *fs, expdesc *e) {
+  if (e->k != VNONRELOC) {
+    luaK_reserveregs(fs, 1);
+    discharge2reg(fs, e, fs->freereg-1);
+  }
+}
+
+
+static void exp2reg (FuncState *fs, expdesc *e, int reg) {
+  discharge2reg(fs, e, reg);
+  if (e->k == VJMP)
+    luaK_concat(fs, &e->t, e->u.s.info);  /* put this jump in `t' list */
+  if (hasjumps(e)) {
+    int final;  /* position after whole expression */
+    int p_f = NO_JUMP;  /* position of an eventual LOAD false */
+    int p_t = NO_JUMP;  /* position of an eventual LOAD true */
+    if (need_value(fs, e->t) || need_value(fs, e->f)) {
+      int fj = (e->k == VJMP) ? NO_JUMP : luaK_jump(fs);
+      p_f = code_label(fs, reg, 0, 1);
+      p_t = code_label(fs, reg, 1, 0);
+      luaK_patchtohere(fs, fj);
+    }
+    final = luaK_getlabel(fs);
+    patchlistaux(fs, e->f, final, reg, p_f);
+    patchlistaux(fs, e->t, final, reg, p_t);
+  }
+  e->f = e->t = NO_JUMP;
+  e->u.s.info = reg;
+  e->k = VNONRELOC;
+}
+
+
+void luaK_exp2nextreg (FuncState *fs, expdesc *e) {
+  luaK_dischargevars(fs, e);
+  freeexp(fs, e);
+  luaK_reserveregs(fs, 1);
+  exp2reg(fs, e, fs->freereg - 1);
+}
+
+
+int luaK_exp2anyreg (FuncState *fs, expdesc *e) {
+  luaK_dischargevars(fs, e);
+  if (e->k == VNONRELOC) {
+    if (!hasjumps(e)) return e->u.s.info;  /* exp is already in a register */
+    if (e->u.s.info >= fs->nactvar) {  /* reg. is not a local? */
+      exp2reg(fs, e, e->u.s.info);  /* put value on it */
+      return e->u.s.info;
+    }
+  }
+  luaK_exp2nextreg(fs, e);  /* default */
+  return e->u.s.info;
+}
+
+
+void luaK_exp2val (FuncState *fs, expdesc *e) {
+  if (hasjumps(e))
+    luaK_exp2anyreg(fs, e);
+  else
+    luaK_dischargevars(fs, e);
+}
+
+
+int luaK_exp2RK (FuncState *fs, expdesc *e) {
+  luaK_exp2val(fs, e);
+  switch (e->k) {
+    case VKNUM:
+    case VTRUE:
+    case VFALSE:
+    case VNIL: {
+      if (fs->nk <= MAXINDEXRK) {  /* constant fit in RK operand? */
+        e->u.s.info = (e->k == VNIL)  ? nilK(fs) :
+                      (e->k == VKNUM) ? luaK_numberK(fs, e->u.nval) :
+                                        boolK(fs, (e->k == VTRUE));
+        e->k = VK;
+        return RKASK(e->u.s.info);
+      }
+      else break;
+    }
+    case VK: {
+      if (e->u.s.info <= MAXINDEXRK)  /* constant fit in argC? */
+        return RKASK(e->u.s.info);
+      else break;
+    }
+    default: break;
+  }
+  /* not a constant in the right range: put it in a register */
+  return luaK_exp2anyreg(fs, e);
+}
+
+
+void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) {
+  switch (var->k) {
+    case VLOCAL: {
+      freeexp(fs, ex);
+      exp2reg(fs, ex, var->u.s.info);
+      return;
+    }
+    case VUPVAL: {
+      int e = luaK_exp2anyreg(fs, ex);
+      luaK_codeABC(fs, OP_SETUPVAL, e, var->u.s.info, 0);
+      break;
+    }
+    case VGLOBAL: {
+      int e = luaK_exp2anyreg(fs, ex);
+      luaK_codeABx(fs, OP_SETGLOBAL, e, var->u.s.info);
+      break;
+    }
+    case VINDEXED: {
+      int e = luaK_exp2RK(fs, ex);
+      luaK_codeABC(fs, OP_SETTABLE, var->u.s.info, var->u.s.aux, e);
+      break;
+    }
+    default: {
+      lua_assert(0);  /* invalid var kind to store */
+      break;
+    }
+  }
+  freeexp(fs, ex);
+}
+
+
+void luaK_self (FuncState *fs, expdesc *e, expdesc *key) {
+  int func;
+  luaK_exp2anyreg(fs, e);
+  freeexp(fs, e);
+  func = fs->freereg;
+  luaK_reserveregs(fs, 2);
+  luaK_codeABC(fs, OP_SELF, func, e->u.s.info, luaK_exp2RK(fs, key));
+  freeexp(fs, key);
+  e->u.s.info = func;
+  e->k = VNONRELOC;
+}
+
+
+static void invertjump (FuncState *fs, expdesc *e) {
+  Instruction *pc = getjumpcontrol(fs, e->u.s.info);
+  lua_assert(testTMode(GET_OPCODE(*pc)) && GET_OPCODE(*pc) != OP_TESTSET &&
+                                           GET_OPCODE(*pc) != OP_TEST);
+  SETARG_A(*pc, !(GETARG_A(*pc)));
+}
+
+
+static int jumponcond (FuncState *fs, expdesc *e, int cond) {
+  if (e->k == VRELOCABLE) {
+    Instruction ie = getcode(fs, e);
+    if (GET_OPCODE(ie) == OP_NOT) {
+      fs->pc--;  /* remove previous OP_NOT */
+      return condjump(fs, OP_TEST, GETARG_B(ie), 0, !cond);
+    }
+    /* else go through */
+  }
+  discharge2anyreg(fs, e);
+  freeexp(fs, e);
+  return condjump(fs, OP_TESTSET, NO_REG, e->u.s.info, cond);
+}
+
+
+void luaK_goiftrue (FuncState *fs, expdesc *e) {
+  int pc;  /* pc of last jump */
+  luaK_dischargevars(fs, e);
+  switch (e->k) {
+    case VK: case VKNUM: case VTRUE: {
+      pc = NO_JUMP;  /* always true; do nothing */
+      break;
+    }
+    case VFALSE: {
+      pc = luaK_jump(fs);  /* always jump */
+      break;
+    }
+    case VJMP: {
+      invertjump(fs, e);
+      pc = e->u.s.info;
+      break;
+    }
+    default: {
+      pc = jumponcond(fs, e, 0);
+      break;
+    }
+  }
+  luaK_concat(fs, &e->f, pc);  /* insert last jump in `f' list */
+  luaK_patchtohere(fs, e->t);
+  e->t = NO_JUMP;
+}
+
+
+static void luaK_goiffalse (FuncState *fs, expdesc *e) {
+  int pc;  /* pc of last jump */
+  luaK_dischargevars(fs, e);
+  switch (e->k) {
+    case VNIL: case VFALSE: {
+      pc = NO_JUMP;  /* always false; do nothing */
+      break;
+    }
+    case VTRUE: {
+      pc = luaK_jump(fs);  /* always jump */
+      break;
+    }
+    case VJMP: {
+      pc = e->u.s.info;
+      break;
+    }
+    default: {
+      pc = jumponcond(fs, e, 1);
+      break;
+    }
+  }
+  luaK_concat(fs, &e->t, pc);  /* insert last jump in `t' list */
+  luaK_patchtohere(fs, e->f);
+  e->f = NO_JUMP;
+}
+
+
+static void codenot (FuncState *fs, expdesc *e) {
+  luaK_dischargevars(fs, e);
+  switch (e->k) {
+    case VNIL: case VFALSE: {
+      e->k = VTRUE;
+      break;
+    }
+    case VK: case VKNUM: case VTRUE: {
+      e->k = VFALSE;
+      break;
+    }
+    case VJMP: {
+      invertjump(fs, e);
+      break;
+    }
+    case VRELOCABLE:
+    case VNONRELOC: {
+      discharge2anyreg(fs, e);
+      freeexp(fs, e);
+      e->u.s.info = luaK_codeABC(fs, OP_NOT, 0, e->u.s.info, 0);
+      e->k = VRELOCABLE;
+      break;
+    }
+    default: {
+      lua_assert(0);  /* cannot happen */
+      break;
+    }
+  }
+  /* interchange true and false lists */
+  { int temp = e->f; e->f = e->t; e->t = temp; }
+  removevalues(fs, e->f);
+  removevalues(fs, e->t);
+}
+
+
+void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k) {
+  t->u.s.aux = luaK_exp2RK(fs, k);
+  t->k = VINDEXED;
+}
+
+
+static int constfolding (OpCode op, expdesc *e1, expdesc *e2) {
+  lua_Number v1, v2, r;
+  if (!isnumeral(e1) || !isnumeral(e2)) return 0;
+  v1 = e1->u.nval;
+  v2 = e2->u.nval;
+  switch (op) {
+    case OP_ADD: r = luai_numadd(v1, v2); break;
+    case OP_SUB: r = luai_numsub(v1, v2); break;
+    case OP_MUL: r = luai_nummul(v1, v2); break;
+    case OP_DIV:
+      if (v2 == 0) return 0;  /* do not attempt to divide by 0 */
+      r = luai_numdiv(v1, v2); break;
+    case OP_MOD:
+      if (v2 == 0) return 0;  /* do not attempt to divide by 0 */
+      r = luai_nummod(v1, v2); break;
+    case OP_POW: r = luai_numpow(v1, v2); break;
+    case OP_UNM: r = luai_numunm(v1); break;
+    case OP_LEN: return 0;  /* no constant folding for 'len' */
+    default: lua_assert(0); r = 0; break;
+  }
+  if (luai_numisnan(r)) return 0;  /* do not attempt to produce NaN */
+  e1->u.nval = r;
+  return 1;
+}
+
+
+static void codearith (FuncState *fs, OpCode op, expdesc *e1, expdesc *e2) {
+  if (constfolding(op, e1, e2))
+    return;
+  else {
+    int o2 = (op != OP_UNM && op != OP_LEN) ? luaK_exp2RK(fs, e2) : 0;
+    int o1 = luaK_exp2RK(fs, e1);
+    if (o1 > o2) {
+      freeexp(fs, e1);
+      freeexp(fs, e2);
+    }
+    else {
+      freeexp(fs, e2);
+      freeexp(fs, e1);
+    }
+    e1->u.s.info = luaK_codeABC(fs, op, 0, o1, o2);
+    e1->k = VRELOCABLE;
+  }
+}
+
+
+static void codecomp (FuncState *fs, OpCode op, int cond, expdesc *e1,
+                                                          expdesc *e2) {
+  int o1 = luaK_exp2RK(fs, e1);
+  int o2 = luaK_exp2RK(fs, e2);
+  freeexp(fs, e2);
+  freeexp(fs, e1);
+  if (cond == 0 && op != OP_EQ) {
+    int temp;  /* exchange args to replace by `<' or `<=' */
+    temp = o1; o1 = o2; o2 = temp;  /* o1 <==> o2 */
+    cond = 1;
+  }
+  e1->u.s.info = condjump(fs, op, cond, o1, o2);
+  e1->k = VJMP;
+}
+
+
+void luaK_prefix (FuncState *fs, UnOpr op, expdesc *e) {
+  expdesc e2;
+  e2.t = e2.f = NO_JUMP; e2.k = VKNUM; e2.u.nval = 0;
+  switch (op) {
+    case OPR_MINUS: {
+      if (!isnumeral(e))
+        luaK_exp2anyreg(fs, e);  /* cannot operate on non-numeric constants */
+      codearith(fs, OP_UNM, e, &e2);
+      break;
+    }
+    case OPR_NOT: codenot(fs, e); break;
+    case OPR_LEN: {
+      luaK_exp2anyreg(fs, e);  /* cannot operate on constants */
+      codearith(fs, OP_LEN, e, &e2);
+      break;
+    }
+    default: lua_assert(0);
+  }
+}
+
+
+void luaK_infix (FuncState *fs, BinOpr op, expdesc *v) {
+  switch (op) {
+    case OPR_AND: {
+      luaK_goiftrue(fs, v);
+      break;
+    }
+    case OPR_OR: {
+      luaK_goiffalse(fs, v);
+      break;
+    }
+    case OPR_CONCAT: {
+      luaK_exp2nextreg(fs, v);  /* operand must be on the `stack' */
+      break;
+    }
+    case OPR_ADD: case OPR_SUB: case OPR_MUL: case OPR_DIV:
+    case OPR_MOD: case OPR_POW: {
+      if (!isnumeral(v)) luaK_exp2RK(fs, v);
+      break;
+    }
+    default: {
+      luaK_exp2RK(fs, v);
+      break;
+    }
+  }
+}
+
+
+void luaK_posfix (FuncState *fs, BinOpr op, expdesc *e1, expdesc *e2) {
+  switch (op) {
+    case OPR_AND: {
+      lua_assert(e1->t == NO_JUMP);  /* list must be closed */
+      luaK_dischargevars(fs, e2);
+      luaK_concat(fs, &e2->f, e1->f);
+      *e1 = *e2;
+      break;
+    }
+    case OPR_OR: {
+      lua_assert(e1->f == NO_JUMP);  /* list must be closed */
+      luaK_dischargevars(fs, e2);
+      luaK_concat(fs, &e2->t, e1->t);
+      *e1 = *e2;
+      break;
+    }
+    case OPR_CONCAT: {
+      luaK_exp2val(fs, e2);
+      if (e2->k == VRELOCABLE && GET_OPCODE(getcode(fs, e2)) == OP_CONCAT) {
+        lua_assert(e1->u.s.info == GETARG_B(getcode(fs, e2))-1);
+        freeexp(fs, e1);
+        SETARG_B(getcode(fs, e2), e1->u.s.info);
+        e1->k = VRELOCABLE; e1->u.s.info = e2->u.s.info;
+      }
+      else {
+        luaK_exp2nextreg(fs, e2);  /* operand must be on the 'stack' */
+        codearith(fs, OP_CONCAT, e1, e2);
+      }
+      break;
+    }
+    case OPR_ADD: codearith(fs, OP_ADD, e1, e2); break;
+    case OPR_SUB: codearith(fs, OP_SUB, e1, e2); break;
+    case OPR_MUL: codearith(fs, OP_MUL, e1, e2); break;
+    case OPR_DIV: codearith(fs, OP_DIV, e1, e2); break;
+    case OPR_MOD: codearith(fs, OP_MOD, e1, e2); break;
+    case OPR_POW: codearith(fs, OP_POW, e1, e2); break;
+    case OPR_EQ: codecomp(fs, OP_EQ, 1, e1, e2); break;
+    case OPR_NE: codecomp(fs, OP_EQ, 0, e1, e2); break;
+    case OPR_LT: codecomp(fs, OP_LT, 1, e1, e2); break;
+    case OPR_LE: codecomp(fs, OP_LE, 1, e1, e2); break;
+    case OPR_GT: codecomp(fs, OP_LT, 0, e1, e2); break;
+    case OPR_GE: codecomp(fs, OP_LE, 0, e1, e2); break;
+    default: lua_assert(0);
+  }
+}
+
+
+void luaK_fixline (FuncState *fs, int line) {
+  fs->f->lineinfo[fs->pc - 1] = line;
+}
+
+
+static int luaK_code (FuncState *fs, Instruction i, int line) {
+  Proto *f = fs->f;
+  dischargejpc(fs);  /* `pc' will change */
+  /* put new instruction in code array */
+  luaM_growvector(fs->L, f->code, fs->pc, f->sizecode, Instruction,
+                  MAX_INT, "code size overflow");
+  f->code[fs->pc] = i;
+  /* save corresponding line information */
+  luaM_growvector(fs->L, f->lineinfo, fs->pc, f->sizelineinfo, int,
+                  MAX_INT, "code size overflow");
+  f->lineinfo[fs->pc] = line;
+  return fs->pc++;
+}
+
+
+int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) {
+  lua_assert(getOpMode(o) == iABC);
+  lua_assert(getBMode(o) != OpArgN || b == 0);
+  lua_assert(getCMode(o) != OpArgN || c == 0);
+  return luaK_code(fs, CREATE_ABC(o, a, b, c), fs->ls->lastline);
+}
+
+
+int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) {
+  lua_assert(getOpMode(o) == iABx || getOpMode(o) == iAsBx);
+  lua_assert(getCMode(o) == OpArgN);
+  return luaK_code(fs, CREATE_ABx(o, a, bc), fs->ls->lastline);
+}
+
+
+void luaK_setlist (FuncState *fs, int base, int nelems, int tostore) {
+  int c =  (nelems - 1)/LFIELDS_PER_FLUSH + 1;
+  int b = (tostore == LUA_MULTRET) ? 0 : tostore;
+  lua_assert(tostore != 0);
+  if (c <= MAXARG_C)
+    luaK_codeABC(fs, OP_SETLIST, base, b, c);
+  else {
+    luaK_codeABC(fs, OP_SETLIST, base, b, 0);
+    luaK_code(fs, cast(Instruction, c), fs->ls->lastline);
+  }
+  fs->freereg = base + 1;  /* free registers with list values */
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lcode.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lcode.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lcode.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lcode.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,76 @@
+/*
+** $Id: lcode.h,v 1.48.1.1 2007/12/27 13:02:25 roberto Exp $
+** Code generator for Lua
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lcode_h
+#define lcode_h
+
+#include "llex.h"
+#include "lobject.h"
+#include "lopcodes.h"
+#include "lparser.h"
+
+
+/*
+** Marks the end of a patch list. It is an invalid value both as an absolute
+** address, and as a list link (would link an element to itself).
+*/
+#define NO_JUMP (-1)
+
+
+/*
+** grep "ORDER OPR" if you change these enums
+*/
+typedef enum BinOpr {
+  OPR_ADD, OPR_SUB, OPR_MUL, OPR_DIV, OPR_MOD, OPR_POW,
+  OPR_CONCAT,
+  OPR_NE, OPR_EQ,
+  OPR_LT, OPR_LE, OPR_GT, OPR_GE,
+  OPR_AND, OPR_OR,
+  OPR_NOBINOPR
+} BinOpr;
+
+
+typedef enum UnOpr { OPR_MINUS, OPR_NOT, OPR_LEN, OPR_NOUNOPR } UnOpr;
+
+
+#define getcode(fs,e)	((fs)->f->code[(e)->u.s.info])
+
+#define luaK_codeAsBx(fs,o,A,sBx)	luaK_codeABx(fs,o,A,(sBx)+MAXARG_sBx)
+
+#define luaK_setmultret(fs,e)	luaK_setreturns(fs, e, LUA_MULTRET)
+
+LUAI_FUNC int luaK_codeABx (FuncState *fs, OpCode o, int A, unsigned int Bx);
+LUAI_FUNC int luaK_codeABC (FuncState *fs, OpCode o, int A, int B, int C);
+LUAI_FUNC void luaK_fixline (FuncState *fs, int line);
+LUAI_FUNC void luaK_nil (FuncState *fs, int from, int n);
+LUAI_FUNC void luaK_reserveregs (FuncState *fs, int n);
+LUAI_FUNC void luaK_checkstack (FuncState *fs, int n);
+LUAI_FUNC int luaK_stringK (FuncState *fs, TString *s);
+LUAI_FUNC int luaK_numberK (FuncState *fs, lua_Number r);
+LUAI_FUNC void luaK_dischargevars (FuncState *fs, expdesc *e);
+LUAI_FUNC int luaK_exp2anyreg (FuncState *fs, expdesc *e);
+LUAI_FUNC void luaK_exp2nextreg (FuncState *fs, expdesc *e);
+LUAI_FUNC void luaK_exp2val (FuncState *fs, expdesc *e);
+LUAI_FUNC int luaK_exp2RK (FuncState *fs, expdesc *e);
+LUAI_FUNC void luaK_self (FuncState *fs, expdesc *e, expdesc *key);
+LUAI_FUNC void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k);
+LUAI_FUNC void luaK_goiftrue (FuncState *fs, expdesc *e);
+LUAI_FUNC void luaK_storevar (FuncState *fs, expdesc *var, expdesc *e);
+LUAI_FUNC void luaK_setreturns (FuncState *fs, expdesc *e, int nresults);
+LUAI_FUNC void luaK_setoneret (FuncState *fs, expdesc *e);
+LUAI_FUNC int luaK_jump (FuncState *fs);
+LUAI_FUNC void luaK_ret (FuncState *fs, int first, int nret);
+LUAI_FUNC void luaK_patchlist (FuncState *fs, int list, int target);
+LUAI_FUNC void luaK_patchtohere (FuncState *fs, int list);
+LUAI_FUNC void luaK_concat (FuncState *fs, int *l1, int l2);
+LUAI_FUNC int luaK_getlabel (FuncState *fs);
+LUAI_FUNC void luaK_prefix (FuncState *fs, UnOpr op, expdesc *v);
+LUAI_FUNC void luaK_infix (FuncState *fs, BinOpr op, expdesc *v);
+LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *v1, expdesc *v2);
+LUAI_FUNC void luaK_setlist (FuncState *fs, int base, int nelems, int tostore);
+
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/ldblib.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/ldblib.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/ldblib.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/ldblib.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,397 @@
+/*
+** $Id: ldblib.c,v 1.104.1.3 2008/01/21 13:11:21 roberto Exp $
+** Interface from Lua to its debug API
+** See Copyright Notice in lua.h
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ldblib_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lauxlib.h"
+#include "lualib.h"
+
+
+
+static int db_getregistry (lua_State *L) {
+  lua_pushvalue(L, LUA_REGISTRYINDEX);
+  return 1;
+}
+
+
+static int db_getmetatable (lua_State *L) {
+  luaL_checkany(L, 1);
+  if (!lua_getmetatable(L, 1)) {
+    lua_pushnil(L);  /* no metatable */
+  }
+  return 1;
+}
+
+
+static int db_setmetatable (lua_State *L) {
+  int t = lua_type(L, 2);
+  luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2,
+                    "nil or table expected");
+  lua_settop(L, 2);
+  lua_pushboolean(L, lua_setmetatable(L, 1));
+  return 1;
+}
+
+
+static int db_getfenv (lua_State *L) {
+  lua_getfenv(L, 1);
+  return 1;
+}
+
+
+static int db_setfenv (lua_State *L) {
+  luaL_checktype(L, 2, LUA_TTABLE);
+  lua_settop(L, 2);
+  if (lua_setfenv(L, 1) == 0)
+    luaL_error(L, LUA_QL("setfenv")
+                  " cannot change environment of given object");
+  return 1;
+}
+
+
+static void settabss (lua_State *L, const char *i, const char *v) {
+  lua_pushstring(L, v);
+  lua_setfield(L, -2, i);
+}
+
+
+static void settabsi (lua_State *L, const char *i, int v) {
+  lua_pushinteger(L, v);
+  lua_setfield(L, -2, i);
+}
+
+
+static lua_State *getthread (lua_State *L, int *arg) {
+  if (lua_isthread(L, 1)) {
+    *arg = 1;
+    return lua_tothread(L, 1);
+  }
+  else {
+    *arg = 0;
+    return L;
+  }
+}
+
+
+static void treatstackoption (lua_State *L, lua_State *L1, const char *fname) {
+  if (L == L1) {
+    lua_pushvalue(L, -2);
+    lua_remove(L, -3);
+  }
+  else
+    lua_xmove(L1, L, 1);
+  lua_setfield(L, -2, fname);
+}
+
+
+static int db_getinfo (lua_State *L) {
+  lua_Debug ar;
+  int arg;
+  lua_State *L1 = getthread(L, &arg);
+  const char *options = luaL_optstring(L, arg+2, "flnSu");
+  if (lua_isnumber(L, arg+1)) {
+    if (!lua_getstack(L1, (int)lua_tointeger(L, arg+1), &ar)) {
+      lua_pushnil(L);  /* level out of range */
+      return 1;
+    }
+  }
+  else if (lua_isfunction(L, arg+1)) {
+    lua_pushfstring(L, ">%s", options);
+    options = lua_tostring(L, -1);
+    lua_pushvalue(L, arg+1);
+    lua_xmove(L, L1, 1);
+  }
+  else
+    return luaL_argerror(L, arg+1, "function or level expected");
+  if (!lua_getinfo(L1, options, &ar))
+    return luaL_argerror(L, arg+2, "invalid option");
+  lua_createtable(L, 0, 2);
+  if (strchr(options, 'S')) {
+    settabss(L, "source", ar.source);
+    settabss(L, "short_src", ar.short_src);
+    settabsi(L, "linedefined", ar.linedefined);
+    settabsi(L, "lastlinedefined", ar.lastlinedefined);
+    settabss(L, "what", ar.what);
+  }
+  if (strchr(options, 'l'))
+    settabsi(L, "currentline", ar.currentline);
+  if (strchr(options, 'u'))
+    settabsi(L, "nups", ar.nups);
+  if (strchr(options, 'n')) {
+    settabss(L, "name", ar.name);
+    settabss(L, "namewhat", ar.namewhat);
+  }
+  if (strchr(options, 'L'))
+    treatstackoption(L, L1, "activelines");
+  if (strchr(options, 'f'))
+    treatstackoption(L, L1, "func");
+  return 1;  /* return table */
+}
+    
+
+static int db_getlocal (lua_State *L) {
+  int arg;
+  lua_State *L1 = getthread(L, &arg);
+  lua_Debug ar;
+  const char *name;
+  if (!lua_getstack(L1, luaL_checkint(L, arg+1), &ar))  /* out of range? */
+    return luaL_argerror(L, arg+1, "level out of range");
+  name = lua_getlocal(L1, &ar, luaL_checkint(L, arg+2));
+  if (name) {
+    lua_xmove(L1, L, 1);
+    lua_pushstring(L, name);
+    lua_pushvalue(L, -2);
+    return 2;
+  }
+  else {
+    lua_pushnil(L);
+    return 1;
+  }
+}
+
+
+static int db_setlocal (lua_State *L) {
+  int arg;
+  lua_State *L1 = getthread(L, &arg);
+  lua_Debug ar;
+  if (!lua_getstack(L1, luaL_checkint(L, arg+1), &ar))  /* out of range? */
+    return luaL_argerror(L, arg+1, "level out of range");
+  luaL_checkany(L, arg+3);
+  lua_settop(L, arg+3);
+  lua_xmove(L, L1, 1);
+  lua_pushstring(L, lua_setlocal(L1, &ar, luaL_checkint(L, arg+2)));
+  return 1;
+}
+
+
+static int auxupvalue (lua_State *L, int get) {
+  const char *name;
+  int n = luaL_checkint(L, 2);
+  luaL_checktype(L, 1, LUA_TFUNCTION);
+  if (lua_iscfunction(L, 1)) return 0;  /* cannot touch C upvalues from Lua */
+  name = get ? lua_getupvalue(L, 1, n) : lua_setupvalue(L, 1, n);
+  if (name == NULL) return 0;
+  lua_pushstring(L, name);
+  lua_insert(L, -(get+1));
+  return get + 1;
+}
+
+
+static int db_getupvalue (lua_State *L) {
+  return auxupvalue(L, 1);
+}
+
+
+static int db_setupvalue (lua_State *L) {
+  luaL_checkany(L, 3);
+  return auxupvalue(L, 0);
+}
+
+
+
+static const char KEY_HOOK = 'h';
+
+
+static void hookf (lua_State *L, lua_Debug *ar) {
+  static const char *const hooknames[] =
+    {"call", "return", "line", "count", "tail return"};
+  lua_pushlightuserdata(L, (void *)&KEY_HOOK);
+  lua_rawget(L, LUA_REGISTRYINDEX);
+  lua_pushlightuserdata(L, L);
+  lua_rawget(L, -2);
+  if (lua_isfunction(L, -1)) {
+    lua_pushstring(L, hooknames[(int)ar->event]);
+    if (ar->currentline >= 0)
+      lua_pushinteger(L, ar->currentline);
+    else lua_pushnil(L);
+    lua_assert(lua_getinfo(L, "lS", ar));
+    lua_call(L, 2, 0);
+  }
+}
+
+
+static int makemask (const char *smask, int count) {
+  int mask = 0;
+  if (strchr(smask, 'c')) mask |= LUA_MASKCALL;
+  if (strchr(smask, 'r')) mask |= LUA_MASKRET;
+  if (strchr(smask, 'l')) mask |= LUA_MASKLINE;
+  if (count > 0) mask |= LUA_MASKCOUNT;
+  return mask;
+}
+
+
+static char *unmakemask (int mask, char *smask) {
+  int i = 0;
+  if (mask & LUA_MASKCALL) smask[i++] = 'c';
+  if (mask & LUA_MASKRET) smask[i++] = 'r';
+  if (mask & LUA_MASKLINE) smask[i++] = 'l';
+  smask[i] = '\0';
+  return smask;
+}
+
+
+static void gethooktable (lua_State *L) {
+  lua_pushlightuserdata(L, (void *)&KEY_HOOK);
+  lua_rawget(L, LUA_REGISTRYINDEX);
+  if (!lua_istable(L, -1)) {
+    lua_pop(L, 1);
+    lua_createtable(L, 0, 1);
+    lua_pushlightuserdata(L, (void *)&KEY_HOOK);
+    lua_pushvalue(L, -2);
+    lua_rawset(L, LUA_REGISTRYINDEX);
+  }
+}
+
+
+static int db_sethook (lua_State *L) {
+  int arg, mask, count;
+  lua_Hook func;
+  lua_State *L1 = getthread(L, &arg);
+  if (lua_isnoneornil(L, arg+1)) {
+    lua_settop(L, arg+1);
+    func = NULL; mask = 0; count = 0;  /* turn off hooks */
+  }
+  else {
+    const char *smask = luaL_checkstring(L, arg+2);
+    luaL_checktype(L, arg+1, LUA_TFUNCTION);
+    count = luaL_optint(L, arg+3, 0);
+    func = hookf; mask = makemask(smask, count);
+  }
+  gethooktable(L);
+  lua_pushlightuserdata(L, L1);
+  lua_pushvalue(L, arg+1);
+  lua_rawset(L, -3);  /* set new hook */
+  lua_pop(L, 1);  /* remove hook table */
+  lua_sethook(L1, func, mask, count);  /* set hooks */
+  return 0;
+}
+
+
+static int db_gethook (lua_State *L) {
+  int arg;
+  lua_State *L1 = getthread(L, &arg);
+  char buff[5];
+  int mask = lua_gethookmask(L1);
+  lua_Hook hook = lua_gethook(L1);
+  if (hook != NULL && hook != hookf)  /* external hook? */
+    lua_pushliteral(L, "external hook");
+  else {
+    gethooktable(L);
+    lua_pushlightuserdata(L, L1);
+    lua_rawget(L, -2);   /* get hook */
+    lua_remove(L, -2);  /* remove hook table */
+  }
+  lua_pushstring(L, unmakemask(mask, buff));
+  lua_pushinteger(L, lua_gethookcount(L1));
+  return 3;
+}
+
+
+static int db_debug (lua_State *L) {
+  for (;;) {
+    char buffer[250];
+    fputs("lua_debug> ", stderr);
+    if (fgets(buffer, sizeof(buffer), stdin) == 0 ||
+        strcmp(buffer, "cont\n") == 0)
+      return 0;
+    if (luaL_loadbuffer(L, buffer, strlen(buffer), "=(debug command)") ||
+        lua_pcall(L, 0, 0, 0)) {
+      fputs(lua_tostring(L, -1), stderr);
+      fputs("\n", stderr);
+    }
+    lua_settop(L, 0);  /* remove eventual returns */
+  }
+}
+
+
+#define LEVELS1	12	/* size of the first part of the stack */
+#define LEVELS2	10	/* size of the second part of the stack */
+
+static int db_errorfb (lua_State *L) {
+  int level;
+  int firstpart = 1;  /* still before eventual `...' */
+  int arg;
+  lua_State *L1 = getthread(L, &arg);
+  lua_Debug ar;
+  if (lua_isnumber(L, arg+2)) {
+    level = (int)lua_tointeger(L, arg+2);
+    lua_pop(L, 1);
+  }
+  else
+    level = (L == L1) ? 1 : 0;  /* level 0 may be this own function */
+  if (lua_gettop(L) == arg)
+    lua_pushliteral(L, "");
+  else if (!lua_isstring(L, arg+1)) return 1;  /* message is not a string */
+  else lua_pushliteral(L, "\n");
+  lua_pushliteral(L, "stack traceback:");
+  while (lua_getstack(L1, level++, &ar)) {
+    if (level > LEVELS1 && firstpart) {
+      /* no more than `LEVELS2' more levels? */
+      if (!lua_getstack(L1, level+LEVELS2, &ar))
+        level--;  /* keep going */
+      else {
+        lua_pushliteral(L, "\n\t...");  /* too many levels */
+        while (lua_getstack(L1, level+LEVELS2, &ar))  /* find last levels */
+          level++;
+      }
+      firstpart = 0;
+      continue;
+    }
+    lua_pushliteral(L, "\n\t");
+    lua_getinfo(L1, "Snl", &ar);
+    lua_pushfstring(L, "%s:", ar.short_src);
+    if (ar.currentline > 0)
+      lua_pushfstring(L, "%d:", ar.currentline);
+    if (*ar.namewhat != '\0')  /* is there a name? */
+        lua_pushfstring(L, " in function " LUA_QS, ar.name);
+    else {
+      if (*ar.what == 'm')  /* main? */
+        lua_pushfstring(L, " in main chunk");
+      else if (*ar.what == 'C' || *ar.what == 't')
+        lua_pushliteral(L, " ?");  /* C function or tail call */
+      else
+        lua_pushfstring(L, " in function <%s:%d>",
+                           ar.short_src, ar.linedefined);
+    }
+    lua_concat(L, lua_gettop(L) - arg);
+  }
+  lua_concat(L, lua_gettop(L) - arg);
+  return 1;
+}
+
+
+static const luaL_Reg dblib[] = {
+  {"debug", db_debug},
+  {"getfenv", db_getfenv},
+  {"gethook", db_gethook},
+  {"getinfo", db_getinfo},
+  {"getlocal", db_getlocal},
+  {"getregistry", db_getregistry},
+  {"getmetatable", db_getmetatable},
+  {"getupvalue", db_getupvalue},
+  {"setfenv", db_setfenv},
+  {"sethook", db_sethook},
+  {"setlocal", db_setlocal},
+  {"setmetatable", db_setmetatable},
+  {"setupvalue", db_setupvalue},
+  {"traceback", db_errorfb},
+  {NULL, NULL}
+};
+
+
+LUALIB_API int luaopen_debug (lua_State *L) {
+  luaL_register(L, LUA_DBLIBNAME, dblib);
+  return 1;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/ldebug.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/ldebug.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/ldebug.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/ldebug.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,638 @@
+/*
+** $Id: ldebug.c,v 2.29.1.6 2008/05/08 16:56:26 roberto Exp $
+** Debug Interface
+** See Copyright Notice in lua.h
+*/
+
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <string.h>
+
+
+#define ldebug_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "lapi.h"
+#include "lcode.h"
+#include "ldebug.h"
+#include "ldo.h"
+#include "lfunc.h"
+#include "lobject.h"
+#include "lopcodes.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "ltable.h"
+#include "ltm.h"
+#include "lvm.h"
+
+
+
+static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name);
+
+
+static int currentpc (lua_State *L, CallInfo *ci) {
+  if (!isLua(ci)) return -1;  /* function is not a Lua function? */
+  if (ci == L->ci)
+    ci->savedpc = L->savedpc;
+  return pcRel(ci->savedpc, ci_func(ci)->l.p);
+}
+
+
+static int currentline (lua_State *L, CallInfo *ci) {
+  int pc = currentpc(L, ci);
+  if (pc < 0)
+    return -1;  /* only active lua functions have current-line information */
+  else
+    return getline(ci_func(ci)->l.p, pc);
+}
+
+
+/*
+** this function can be called asynchronous (e.g. during a signal)
+*/
+LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count) {
+  if (func == NULL || mask == 0) {  /* turn off hooks? */
+    mask = 0;
+    func = NULL;
+  }
+  L->hook = func;
+  L->basehookcount = count;
+  resethookcount(L);
+  L->hookmask = cast_byte(mask);
+  return 1;
+}
+
+
+LUA_API lua_Hook lua_gethook (lua_State *L) {
+  return L->hook;
+}
+
+
+LUA_API int lua_gethookmask (lua_State *L) {
+  return L->hookmask;
+}
+
+
+LUA_API int lua_gethookcount (lua_State *L) {
+  return L->basehookcount;
+}
+
+
+LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) {
+  int status;
+  CallInfo *ci;
+  lua_lock(L);
+  for (ci = L->ci; level > 0 && ci > L->base_ci; ci--) {
+    level--;
+    if (f_isLua(ci))  /* Lua function? */
+      level -= ci->tailcalls;  /* skip lost tail calls */
+  }
+  if (level == 0 && ci > L->base_ci) {  /* level found? */
+    status = 1;
+    ar->i_ci = cast_int(ci - L->base_ci);
+  }
+  else if (level < 0) {  /* level is of a lost tail call? */
+    status = 1;
+    ar->i_ci = 0;
+  }
+  else status = 0;  /* no such level */
+  lua_unlock(L);
+  return status;
+}
+
+
+static Proto *getluaproto (CallInfo *ci) {
+  return (isLua(ci) ? ci_func(ci)->l.p : NULL);
+}
+
+
+static const char *findlocal (lua_State *L, CallInfo *ci, int n) {
+  const char *name;
+  Proto *fp = getluaproto(ci);
+  if (fp && (name = luaF_getlocalname(fp, n, currentpc(L, ci))) != NULL)
+    return name;  /* is a local variable in a Lua function */
+  else {
+    StkId limit = (ci == L->ci) ? L->top : (ci+1)->func;
+    if (limit - ci->base >= n && n > 0)  /* is 'n' inside 'ci' stack? */
+      return "(*temporary)";
+    else
+      return NULL;
+  }
+}
+
+
+LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n) {
+  CallInfo *ci = L->base_ci + ar->i_ci;
+  const char *name = findlocal(L, ci, n);
+  lua_lock(L);
+  if (name)
+      luaA_pushobject(L, ci->base + (n - 1));
+  lua_unlock(L);
+  return name;
+}
+
+
+LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n) {
+  CallInfo *ci = L->base_ci + ar->i_ci;
+  const char *name = findlocal(L, ci, n);
+  lua_lock(L);
+  if (name)
+      setobjs2s(L, ci->base + (n - 1), L->top - 1);
+  L->top--;  /* pop value */
+  lua_unlock(L);
+  return name;
+}
+
+
+static void funcinfo (lua_Debug *ar, Closure *cl) {
+  if (cl->c.isC) {
+    ar->source = "=[C]";
+    ar->linedefined = -1;
+    ar->lastlinedefined = -1;
+    ar->what = "C";
+  }
+  else {
+    ar->source = getstr(cl->l.p->source);
+    ar->linedefined = cl->l.p->linedefined;
+    ar->lastlinedefined = cl->l.p->lastlinedefined;
+    ar->what = (ar->linedefined == 0) ? "main" : "Lua";
+  }
+  luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE);
+}
+
+
+static void info_tailcall (lua_Debug *ar) {
+  ar->name = ar->namewhat = "";
+  ar->what = "tail";
+  ar->lastlinedefined = ar->linedefined = ar->currentline = -1;
+  ar->source = "=(tail call)";
+  luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE);
+  ar->nups = 0;
+}
+
+
+static void collectvalidlines (lua_State *L, Closure *f) {
+  if (f == NULL || f->c.isC) {
+    setnilvalue(L->top);
+  }
+  else {
+    Table *t = luaH_new(L, 0, 0);
+    int *lineinfo = f->l.p->lineinfo;
+    int i;
+    for (i=0; i<f->l.p->sizelineinfo; i++)
+      setbvalue(luaH_setnum(L, t, lineinfo[i]), 1);
+    sethvalue(L, L->top, t); 
+  }
+  incr_top(L);
+}
+
+
+static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar,
+                    Closure *f, CallInfo *ci) {
+  int status = 1;
+  if (f == NULL) {
+    info_tailcall(ar);
+    return status;
+  }
+  for (; *what; what++) {
+    switch (*what) {
+      case 'S': {
+        funcinfo(ar, f);
+        break;
+      }
+      case 'l': {
+        ar->currentline = (ci) ? currentline(L, ci) : -1;
+        break;
+      }
+      case 'u': {
+        ar->nups = f->c.nupvalues;
+        break;
+      }
+      case 'n': {
+        ar->namewhat = (ci) ? getfuncname(L, ci, &ar->name) : NULL;
+        if (ar->namewhat == NULL) {
+          ar->namewhat = "";  /* not found */
+          ar->name = NULL;
+        }
+        break;
+      }
+      case 'L':
+      case 'f':  /* handled by lua_getinfo */
+        break;
+      default: status = 0;  /* invalid option */
+    }
+  }
+  return status;
+}
+
+
+LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) {
+  int status;
+  Closure *f = NULL;
+  CallInfo *ci = NULL;
+  lua_lock(L);
+  if (*what == '>') {
+    StkId func = L->top - 1;
+    luai_apicheck(L, ttisfunction(func));
+    what++;  /* skip the '>' */
+    f = clvalue(func);
+    L->top--;  /* pop function */
+  }
+  else if (ar->i_ci != 0) {  /* no tail call? */
+    ci = L->base_ci + ar->i_ci;
+    lua_assert(ttisfunction(ci->func));
+    f = clvalue(ci->func);
+  }
+  status = auxgetinfo(L, what, ar, f, ci);
+  if (strchr(what, 'f')) {
+    if (f == NULL) setnilvalue(L->top);
+    else setclvalue(L, L->top, f);
+    incr_top(L);
+  }
+  if (strchr(what, 'L'))
+    collectvalidlines(L, f);
+  lua_unlock(L);
+  return status;
+}
+
+
+/*
+** {======================================================
+** Symbolic Execution and code checker
+** =======================================================
+*/
+
+#define check(x)		if (!(x)) return 0;
+
+#define checkjump(pt,pc)	check(0 <= pc && pc < pt->sizecode)
+
+#define checkreg(pt,reg)	check((reg) < (pt)->maxstacksize)
+
+
+
+static int precheck (const Proto *pt) {
+  check(pt->maxstacksize <= MAXSTACK);
+  check(pt->numparams+(pt->is_vararg & VARARG_HASARG) <= pt->maxstacksize);
+  check(!(pt->is_vararg & VARARG_NEEDSARG) ||
+              (pt->is_vararg & VARARG_HASARG));
+  check(pt->sizeupvalues <= pt->nups);
+  check(pt->sizelineinfo == pt->sizecode || pt->sizelineinfo == 0);
+  check(pt->sizecode > 0 && GET_OPCODE(pt->code[pt->sizecode-1]) == OP_RETURN);
+  return 1;
+}
+
+
+#define checkopenop(pt,pc)	luaG_checkopenop((pt)->code[(pc)+1])
+
+int luaG_checkopenop (Instruction i) {
+  switch (GET_OPCODE(i)) {
+    case OP_CALL:
+    case OP_TAILCALL:
+    case OP_RETURN:
+    case OP_SETLIST: {
+      check(GETARG_B(i) == 0);
+      return 1;
+    }
+    default: return 0;  /* invalid instruction after an open call */
+  }
+}
+
+
+static int checkArgMode (const Proto *pt, int r, enum OpArgMask mode) {
+  switch (mode) {
+    case OpArgN: check(r == 0); break;
+    case OpArgU: break;
+    case OpArgR: checkreg(pt, r); break;
+    case OpArgK:
+      check(ISK(r) ? INDEXK(r) < pt->sizek : r < pt->maxstacksize);
+      break;
+  }
+  return 1;
+}
+
+
+static Instruction symbexec (const Proto *pt, int lastpc, int reg) {
+  int pc;
+  int last;  /* stores position of last instruction that changed `reg' */
+  last = pt->sizecode-1;  /* points to final return (a `neutral' instruction) */
+  check(precheck(pt));
+  for (pc = 0; pc < lastpc; pc++) {
+    Instruction i = pt->code[pc];
+    OpCode op = GET_OPCODE(i);
+    int a = GETARG_A(i);
+    int b = 0;
+    int c = 0;
+    check(op < NUM_OPCODES);
+    checkreg(pt, a);
+    switch (getOpMode(op)) {
+      case iABC: {
+        b = GETARG_B(i);
+        c = GETARG_C(i);
+        check(checkArgMode(pt, b, getBMode(op)));
+        check(checkArgMode(pt, c, getCMode(op)));
+        break;
+      }
+      case iABx: {
+        b = GETARG_Bx(i);
+        if (getBMode(op) == OpArgK) check(b < pt->sizek);
+        break;
+      }
+      case iAsBx: {
+        b = GETARG_sBx(i);
+        if (getBMode(op) == OpArgR) {
+          int dest = pc+1+b;
+          check(0 <= dest && dest < pt->sizecode);
+          if (dest > 0) {
+            int j;
+            /* check that it does not jump to a setlist count; this
+               is tricky, because the count from a previous setlist may
+               have the same value of an invalid setlist; so, we must
+               go all the way back to the first of them (if any) */
+            for (j = 0; j < dest; j++) {
+              Instruction d = pt->code[dest-1-j];
+              if (!(GET_OPCODE(d) == OP_SETLIST && GETARG_C(d) == 0)) break;
+            }
+            /* if 'j' is even, previous value is not a setlist (even if
+               it looks like one) */
+            check((j&1) == 0);
+          }
+        }
+        break;
+      }
+    }
+    if (testAMode(op)) {
+      if (a == reg) last = pc;  /* change register `a' */
+    }
+    if (testTMode(op)) {
+      check(pc+2 < pt->sizecode);  /* check skip */
+      check(GET_OPCODE(pt->code[pc+1]) == OP_JMP);
+    }
+    switch (op) {
+      case OP_LOADBOOL: {
+        if (c == 1) {  /* does it jump? */
+          check(pc+2 < pt->sizecode);  /* check its jump */
+          check(GET_OPCODE(pt->code[pc+1]) != OP_SETLIST ||
+                GETARG_C(pt->code[pc+1]) != 0);
+        }
+        break;
+      }
+      case OP_LOADNIL: {
+        if (a <= reg && reg <= b)
+          last = pc;  /* set registers from `a' to `b' */
+        break;
+      }
+      case OP_GETUPVAL:
+      case OP_SETUPVAL: {
+        check(b < pt->nups);
+        break;
+      }
+      case OP_GETGLOBAL:
+      case OP_SETGLOBAL: {
+        check(ttisstring(&pt->k[b]));
+        break;
+      }
+      case OP_SELF: {
+        checkreg(pt, a+1);
+        if (reg == a+1) last = pc;
+        break;
+      }
+      case OP_CONCAT: {
+        check(b < c);  /* at least two operands */
+        break;
+      }
+      case OP_TFORLOOP: {
+        check(c >= 1);  /* at least one result (control variable) */
+        checkreg(pt, a+2+c);  /* space for results */
+        if (reg >= a+2) last = pc;  /* affect all regs above its base */
+        break;
+      }
+      case OP_FORLOOP:
+      case OP_FORPREP:
+        checkreg(pt, a+3);
+        /* go through */
+      case OP_JMP: {
+        int dest = pc+1+b;
+        /* not full check and jump is forward and do not skip `lastpc'? */
+        if (reg != NO_REG && pc < dest && dest <= lastpc)
+          pc += b;  /* do the jump */
+        break;
+      }
+      case OP_CALL:
+      case OP_TAILCALL: {
+        if (b != 0) {
+          checkreg(pt, a+b-1);
+        }
+        c--;  /* c = num. returns */
+        if (c == LUA_MULTRET) {
+          check(checkopenop(pt, pc));
+        }
+        else if (c != 0)
+          checkreg(pt, a+c-1);
+        if (reg >= a) last = pc;  /* affect all registers above base */
+        break;
+      }
+      case OP_RETURN: {
+        b--;  /* b = num. returns */
+        if (b > 0) checkreg(pt, a+b-1);
+        break;
+      }
+      case OP_SETLIST: {
+        if (b > 0) checkreg(pt, a + b);
+        if (c == 0) {
+          pc++;
+          check(pc < pt->sizecode - 1);
+        }
+        break;
+      }
+      case OP_CLOSURE: {
+        int nup, j;
+        check(b < pt->sizep);
+        nup = pt->p[b]->nups;
+        check(pc + nup < pt->sizecode);
+        for (j = 1; j <= nup; j++) {
+          OpCode op1 = GET_OPCODE(pt->code[pc + j]);
+          check(op1 == OP_GETUPVAL || op1 == OP_MOVE);
+        }
+        if (reg != NO_REG)  /* tracing? */
+          pc += nup;  /* do not 'execute' these pseudo-instructions */
+        break;
+      }
+      case OP_VARARG: {
+        check((pt->is_vararg & VARARG_ISVARARG) &&
+             !(pt->is_vararg & VARARG_NEEDSARG));
+        b--;
+        if (b == LUA_MULTRET) check(checkopenop(pt, pc));
+        checkreg(pt, a+b-1);
+        break;
+      }
+      default: break;
+    }
+  }
+  return pt->code[last];
+}
+
+#undef check
+#undef checkjump
+#undef checkreg
+
+/* }====================================================== */
+
+
+int luaG_checkcode (const Proto *pt) {
+  return (symbexec(pt, pt->sizecode, NO_REG) != 0);
+}
+
+
+static const char *kname (Proto *p, int c) {
+  if (ISK(c) && ttisstring(&p->k[INDEXK(c)]))
+    return svalue(&p->k[INDEXK(c)]);
+  else
+    return "?";
+}
+
+
+static const char *getobjname (lua_State *L, CallInfo *ci, int stackpos,
+                               const char **name) {
+  if (isLua(ci)) {  /* a Lua function? */
+    Proto *p = ci_func(ci)->l.p;
+    int pc = currentpc(L, ci);
+    Instruction i;
+    *name = luaF_getlocalname(p, stackpos+1, pc);
+    if (*name)  /* is a local? */
+      return "local";
+    i = symbexec(p, pc, stackpos);  /* try symbolic execution */
+    lua_assert(pc != -1);
+    switch (GET_OPCODE(i)) {
+      case OP_GETGLOBAL: {
+        int g = GETARG_Bx(i);  /* global index */
+        lua_assert(ttisstring(&p->k[g]));
+        *name = svalue(&p->k[g]);
+        return "global";
+      }
+      case OP_MOVE: {
+        int a = GETARG_A(i);
+        int b = GETARG_B(i);  /* move from `b' to `a' */
+        if (b < a)
+          return getobjname(L, ci, b, name);  /* get name for `b' */
+        break;
+      }
+      case OP_GETTABLE: {
+        int k = GETARG_C(i);  /* key index */
+        *name = kname(p, k);
+        return "field";
+      }
+      case OP_GETUPVAL: {
+        int u = GETARG_B(i);  /* upvalue index */
+        *name = p->upvalues ? getstr(p->upvalues[u]) : "?";
+        return "upvalue";
+      }
+      case OP_SELF: {
+        int k = GETARG_C(i);  /* key index */
+        *name = kname(p, k);
+        return "method";
+      }
+      default: break;
+    }
+  }
+  return NULL;  /* no useful name found */
+}
+
+
+static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name) {
+  Instruction i;
+  if ((isLua(ci) && ci->tailcalls > 0) || !isLua(ci - 1))
+    return NULL;  /* calling function is not Lua (or is unknown) */
+  ci--;  /* calling function */
+  i = ci_func(ci)->l.p->code[currentpc(L, ci)];
+  if (GET_OPCODE(i) == OP_CALL || GET_OPCODE(i) == OP_TAILCALL ||
+      GET_OPCODE(i) == OP_TFORLOOP)
+    return getobjname(L, ci, GETARG_A(i), name);
+  else
+    return NULL;  /* no useful name can be found */
+}
+
+
+/* only ANSI way to check whether a pointer points to an array */
+static int isinstack (CallInfo *ci, const TValue *o) {
+  StkId p;
+  for (p = ci->base; p < ci->top; p++)
+    if (o == p) return 1;
+  return 0;
+}
+
+
+void luaG_typeerror (lua_State *L, const TValue *o, const char *op) {
+  const char *name = NULL;
+  const char *t = luaT_typenames[ttype(o)];
+  const char *kind = (isinstack(L->ci, o)) ?
+                         getobjname(L, L->ci, cast_int(o - L->base), &name) :
+                         NULL;
+  if (kind)
+    luaG_runerror(L, "attempt to %s %s " LUA_QS " (a %s value)",
+                op, kind, name, t);
+  else
+    luaG_runerror(L, "attempt to %s a %s value", op, t);
+}
+
+
+void luaG_concaterror (lua_State *L, StkId p1, StkId p2) {
+  if (ttisstring(p1) || ttisnumber(p1)) p1 = p2;
+  lua_assert(!ttisstring(p1) && !ttisnumber(p1));
+  luaG_typeerror(L, p1, "concatenate");
+}
+
+
+void luaG_aritherror (lua_State *L, const TValue *p1, const TValue *p2) {
+  TValue temp;
+  if (luaV_tonumber(p1, &temp) == NULL)
+    p2 = p1;  /* first operand is wrong */
+  luaG_typeerror(L, p2, "perform arithmetic on");
+}
+
+
+int luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) {
+  const char *t1 = luaT_typenames[ttype(p1)];
+  const char *t2 = luaT_typenames[ttype(p2)];
+  if (t1[2] == t2[2])
+    luaG_runerror(L, "attempt to compare two %s values", t1);
+  else
+    luaG_runerror(L, "attempt to compare %s with %s", t1, t2);
+  return 0;
+}
+
+
+static void addinfo (lua_State *L, const char *msg) {
+  CallInfo *ci = L->ci;
+  if (isLua(ci)) {  /* is Lua code? */
+    char buff[LUA_IDSIZE];  /* add file:line information */
+    int line = currentline(L, ci);
+    luaO_chunkid(buff, getstr(getluaproto(ci)->source), LUA_IDSIZE);
+    luaO_pushfstring(L, "%s:%d: %s", buff, line, msg);
+  }
+}
+
+
+void luaG_errormsg (lua_State *L) {
+  if (L->errfunc != 0) {  /* is there an error handling function? */
+    StkId errfunc = restorestack(L, L->errfunc);
+    if (!ttisfunction(errfunc)) luaD_throw(L, LUA_ERRERR);
+    setobjs2s(L, L->top, L->top - 1);  /* move argument */
+    setobjs2s(L, L->top - 1, errfunc);  /* push function */
+    incr_top(L);
+    luaD_call(L, L->top - 2, 1);  /* call it */
+  }
+  luaD_throw(L, LUA_ERRRUN);
+}
+
+
+void luaG_runerror (lua_State *L, const char *fmt, ...) {
+  va_list argp;
+  va_start(argp, fmt);
+  addinfo(L, luaO_pushvfstring(L, fmt, argp));
+  va_end(argp);
+  luaG_errormsg(L);
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/ldebug.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/ldebug.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/ldebug.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/ldebug.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,33 @@
+/*
+** $Id: ldebug.h,v 2.3.1.1 2007/12/27 13:02:25 roberto Exp $
+** Auxiliary functions from Debug Interface module
+** See Copyright Notice in lua.h
+*/
+
+#ifndef ldebug_h
+#define ldebug_h
+
+
+#include "lstate.h"
+
+
+#define pcRel(pc, p)	(cast(int, (pc) - (p)->code) - 1)
+
+#define getline(f,pc)	(((f)->lineinfo) ? (f)->lineinfo[pc] : 0)
+
+#define resethookcount(L)	(L->hookcount = L->basehookcount)
+
+
+LUAI_FUNC void luaG_typeerror (lua_State *L, const TValue *o,
+                                             const char *opname);
+LUAI_FUNC void luaG_concaterror (lua_State *L, StkId p1, StkId p2);
+LUAI_FUNC void luaG_aritherror (lua_State *L, const TValue *p1,
+                                              const TValue *p2);
+LUAI_FUNC int luaG_ordererror (lua_State *L, const TValue *p1,
+                                             const TValue *p2);
+LUAI_FUNC void luaG_runerror (lua_State *L, const char *fmt, ...);
+LUAI_FUNC void luaG_errormsg (lua_State *L);
+LUAI_FUNC int luaG_checkcode (const Proto *pt);
+LUAI_FUNC int luaG_checkopenop (Instruction i);
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/ldo.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/ldo.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/ldo.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/ldo.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,518 @@
+/*
+** $Id: ldo.c,v 2.38.1.3 2008/01/18 22:31:22 roberto Exp $
+** Stack and Call structure of Lua
+** See Copyright Notice in lua.h
+*/
+
+
+#include <setjmp.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ldo_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "ldebug.h"
+#include "ldo.h"
+#include "lfunc.h"
+#include "lgc.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lopcodes.h"
+#include "lparser.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "ltable.h"
+#include "ltm.h"
+#include "lundump.h"
+#include "lvm.h"
+#include "lzio.h"
+
+
+
+
+/*
+** {======================================================
+** Error-recovery functions
+** =======================================================
+*/
+
+
+/* chain list of long jump buffers */
+struct lua_longjmp {
+  struct lua_longjmp *previous;
+  luai_jmpbuf b;
+  volatile int status;  /* error code */
+};
+
+
+void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop) {
+  switch (errcode) {
+    case LUA_ERRMEM: {
+      setsvalue2s(L, oldtop, luaS_newliteral(L, MEMERRMSG));
+      break;
+    }
+    case LUA_ERRERR: {
+      setsvalue2s(L, oldtop, luaS_newliteral(L, "error in error handling"));
+      break;
+    }
+    case LUA_ERRSYNTAX:
+    case LUA_ERRRUN: {
+      setobjs2s(L, oldtop, L->top - 1);  /* error message on current top */
+      break;
+    }
+  }
+  L->top = oldtop + 1;
+}
+
+
+static void restore_stack_limit (lua_State *L) {
+  lua_assert(L->stack_last - L->stack == L->stacksize - EXTRA_STACK - 1);
+  if (L->size_ci > LUAI_MAXCALLS) {  /* there was an overflow? */
+    int inuse = cast_int(L->ci - L->base_ci);
+    if (inuse + 1 < LUAI_MAXCALLS)  /* can `undo' overflow? */
+      luaD_reallocCI(L, LUAI_MAXCALLS);
+  }
+}
+
+
+static void resetstack (lua_State *L, int status) {
+  L->ci = L->base_ci;
+  L->base = L->ci->base;
+  luaF_close(L, L->base);  /* close eventual pending closures */
+  luaD_seterrorobj(L, status, L->base);
+  L->nCcalls = L->baseCcalls;
+  L->allowhook = 1;
+  restore_stack_limit(L);
+  L->errfunc = 0;
+  L->errorJmp = NULL;
+}
+
+
+void luaD_throw (lua_State *L, int errcode) {
+  if (L->errorJmp) {
+    L->errorJmp->status = errcode;
+    LUAI_THROW(L, L->errorJmp);
+  }
+  else {
+    L->status = cast_byte(errcode);
+    if (G(L)->panic) {
+      resetstack(L, errcode);
+      lua_unlock(L);
+      G(L)->panic(L);
+    }
+    exit(EXIT_FAILURE);
+  }
+}
+
+
+int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) {
+  struct lua_longjmp lj;
+  lj.status = 0;
+  lj.previous = L->errorJmp;  /* chain new error handler */
+  L->errorJmp = &lj;
+  LUAI_TRY(L, &lj,
+    (*f)(L, ud);
+  );
+  L->errorJmp = lj.previous;  /* restore old error handler */
+  return lj.status;
+}
+
+/* }====================================================== */
+
+
+static void correctstack (lua_State *L, TValue *oldstack) {
+  CallInfo *ci;
+  GCObject *up;
+  L->top = (L->top - oldstack) + L->stack;
+  for (up = L->openupval; up != NULL; up = up->gch.next)
+    gco2uv(up)->v = (gco2uv(up)->v - oldstack) + L->stack;
+  for (ci = L->base_ci; ci <= L->ci; ci++) {
+    ci->top = (ci->top - oldstack) + L->stack;
+    ci->base = (ci->base - oldstack) + L->stack;
+    ci->func = (ci->func - oldstack) + L->stack;
+  }
+  L->base = (L->base - oldstack) + L->stack;
+}
+
+
+void luaD_reallocstack (lua_State *L, int newsize) {
+  TValue *oldstack = L->stack;
+  int realsize = newsize + 1 + EXTRA_STACK;
+  lua_assert(L->stack_last - L->stack == L->stacksize - EXTRA_STACK - 1);
+  luaM_reallocvector(L, L->stack, L->stacksize, realsize, TValue);
+  L->stacksize = realsize;
+  L->stack_last = L->stack+newsize;
+  correctstack(L, oldstack);
+}
+
+
+void luaD_reallocCI (lua_State *L, int newsize) {
+  CallInfo *oldci = L->base_ci;
+  luaM_reallocvector(L, L->base_ci, L->size_ci, newsize, CallInfo);
+  L->size_ci = newsize;
+  L->ci = (L->ci - oldci) + L->base_ci;
+  L->end_ci = L->base_ci + L->size_ci - 1;
+}
+
+
+void luaD_growstack (lua_State *L, int n) {
+  if (n <= L->stacksize)  /* double size is enough? */
+    luaD_reallocstack(L, 2*L->stacksize);
+  else
+    luaD_reallocstack(L, L->stacksize + n);
+}
+
+
+static CallInfo *growCI (lua_State *L) {
+  if (L->size_ci > LUAI_MAXCALLS)  /* overflow while handling overflow? */
+    luaD_throw(L, LUA_ERRERR);
+  else {
+    luaD_reallocCI(L, 2*L->size_ci);
+    if (L->size_ci > LUAI_MAXCALLS)
+      luaG_runerror(L, "stack overflow");
+  }
+  return ++L->ci;
+}
+
+
+void luaD_callhook (lua_State *L, int event, int line) {
+  lua_Hook hook = L->hook;
+  if (hook && L->allowhook) {
+    ptrdiff_t top = savestack(L, L->top);
+    ptrdiff_t ci_top = savestack(L, L->ci->top);
+    lua_Debug ar;
+    ar.event = event;
+    ar.currentline = line;
+    if (event == LUA_HOOKTAILRET)
+      ar.i_ci = 0;  /* tail call; no debug information about it */
+    else
+      ar.i_ci = cast_int(L->ci - L->base_ci);
+    luaD_checkstack(L, LUA_MINSTACK);  /* ensure minimum stack size */
+    L->ci->top = L->top + LUA_MINSTACK;
+    lua_assert(L->ci->top <= L->stack_last);
+    L->allowhook = 0;  /* cannot call hooks inside a hook */
+    lua_unlock(L);
+    (*hook)(L, &ar);
+    lua_lock(L);
+    lua_assert(!L->allowhook);
+    L->allowhook = 1;
+    L->ci->top = restorestack(L, ci_top);
+    L->top = restorestack(L, top);
+  }
+}
+
+
+static StkId adjust_varargs (lua_State *L, Proto *p, int actual) {
+  int i;
+  int nfixargs = p->numparams;
+  Table *htab = NULL;
+  StkId base, fixed;
+  for (; actual < nfixargs; ++actual)
+    setnilvalue(L->top++);
+#if defined(LUA_COMPAT_VARARG)
+  if (p->is_vararg & VARARG_NEEDSARG) { /* compat. with old-style vararg? */
+    int nvar = actual - nfixargs;  /* number of extra arguments */
+    lua_assert(p->is_vararg & VARARG_HASARG);
+    luaC_checkGC(L);
+    htab = luaH_new(L, nvar, 1);  /* create `arg' table */
+    for (i=0; i<nvar; i++)  /* put extra arguments into `arg' table */
+      setobj2n(L, luaH_setnum(L, htab, i+1), L->top - nvar + i);
+    /* store counter in field `n' */
+    setnvalue(luaH_setstr(L, htab, luaS_newliteral(L, "n")), cast_num(nvar));
+  }
+#endif
+  /* move fixed parameters to final position */
+  fixed = L->top - actual;  /* first fixed argument */
+  base = L->top;  /* final position of first argument */
+  for (i=0; i<nfixargs; i++) {
+    setobjs2s(L, L->top++, fixed+i);
+    setnilvalue(fixed+i);
+  }
+  /* add `arg' parameter */
+  if (htab) {
+    sethvalue(L, L->top++, htab);
+    lua_assert(iswhite(obj2gco(htab)));
+  }
+  return base;
+}
+
+
+static StkId tryfuncTM (lua_State *L, StkId func) {
+  const TValue *tm = luaT_gettmbyobj(L, func, TM_CALL);
+  StkId p;
+  ptrdiff_t funcr = savestack(L, func);
+  if (!ttisfunction(tm))
+    luaG_typeerror(L, func, "call");
+  /* Open a hole inside the stack at `func' */
+  for (p = L->top; p > func; p--) setobjs2s(L, p, p-1);
+  incr_top(L);
+  func = restorestack(L, funcr);  /* previous call may change stack */
+  setobj2s(L, func, tm);  /* tag method is the new function to be called */
+  return func;
+}
+
+
+
+#define inc_ci(L) \
+  ((L->ci == L->end_ci) ? growCI(L) : \
+   (condhardstacktests(luaD_reallocCI(L, L->size_ci)), ++L->ci))
+
+
+int luaD_precall (lua_State *L, StkId func, int nresults) {
+  LClosure *cl;
+  ptrdiff_t funcr;
+  if (!ttisfunction(func)) /* `func' is not a function? */
+    func = tryfuncTM(L, func);  /* check the `function' tag method */
+  funcr = savestack(L, func);
+  cl = &clvalue(func)->l;
+  L->ci->savedpc = L->savedpc;
+  if (!cl->isC) {  /* Lua function? prepare its call */
+    CallInfo *ci;
+    StkId st, base;
+    Proto *p = cl->p;
+    luaD_checkstack(L, p->maxstacksize);
+    func = restorestack(L, funcr);
+    if (!p->is_vararg) {  /* no varargs? */
+      base = func + 1;
+      if (L->top > base + p->numparams)
+        L->top = base + p->numparams;
+    }
+    else {  /* vararg function */
+      int nargs = cast_int(L->top - func) - 1;
+      base = adjust_varargs(L, p, nargs);
+      func = restorestack(L, funcr);  /* previous call may change the stack */
+    }
+    ci = inc_ci(L);  /* now `enter' new function */
+    ci->func = func;
+    L->base = ci->base = base;
+    ci->top = L->base + p->maxstacksize;
+    lua_assert(ci->top <= L->stack_last);
+    L->savedpc = p->code;  /* starting point */
+    ci->tailcalls = 0;
+    ci->nresults = nresults;
+    for (st = L->top; st < ci->top; st++)
+      setnilvalue(st);
+    L->top = ci->top;
+    if (L->hookmask & LUA_MASKCALL) {
+      L->savedpc++;  /* hooks assume 'pc' is already incremented */
+      luaD_callhook(L, LUA_HOOKCALL, -1);
+      L->savedpc--;  /* correct 'pc' */
+    }
+    return PCRLUA;
+  }
+  else {  /* if is a C function, call it */
+    CallInfo *ci;
+    int n;
+    luaD_checkstack(L, LUA_MINSTACK);  /* ensure minimum stack size */
+    ci = inc_ci(L);  /* now `enter' new function */
+    ci->func = restorestack(L, funcr);
+    L->base = ci->base = ci->func + 1;
+    ci->top = L->top + LUA_MINSTACK;
+    lua_assert(ci->top <= L->stack_last);
+    ci->nresults = nresults;
+    if (L->hookmask & LUA_MASKCALL)
+      luaD_callhook(L, LUA_HOOKCALL, -1);
+    lua_unlock(L);
+    n = (*curr_func(L)->c.f)(L);  /* do the actual call */
+    lua_lock(L);
+    if (n < 0)  /* yielding? */
+      return PCRYIELD;
+    else {
+      luaD_poscall(L, L->top - n);
+      return PCRC;
+    }
+  }
+}
+
+
+static StkId callrethooks (lua_State *L, StkId firstResult) {
+  ptrdiff_t fr = savestack(L, firstResult);  /* next call may change stack */
+  luaD_callhook(L, LUA_HOOKRET, -1);
+  if (f_isLua(L->ci)) {  /* Lua function? */
+    while ((L->hookmask & LUA_MASKRET) && L->ci->tailcalls--) /* tail calls */
+      luaD_callhook(L, LUA_HOOKTAILRET, -1);
+  }
+  return restorestack(L, fr);
+}
+
+
+int luaD_poscall (lua_State *L, StkId firstResult) {
+  StkId res;
+  int wanted, i;
+  CallInfo *ci;
+  if (L->hookmask & LUA_MASKRET)
+    firstResult = callrethooks(L, firstResult);
+  ci = L->ci--;
+  res = ci->func;  /* res == final position of 1st result */
+  wanted = ci->nresults;
+  L->base = (ci - 1)->base;  /* restore base */
+  L->savedpc = (ci - 1)->savedpc;  /* restore savedpc */
+  /* move results to correct place */
+  for (i = wanted; i != 0 && firstResult < L->top; i--)
+    setobjs2s(L, res++, firstResult++);
+  while (i-- > 0)
+    setnilvalue(res++);
+  L->top = res;
+  return (wanted - LUA_MULTRET);  /* 0 iff wanted == LUA_MULTRET */
+}
+
+
+/*
+** Call a function (C or Lua). The function to be called is at *func.
+** The arguments are on the stack, right after the function.
+** When returns, all the results are on the stack, starting at the original
+** function position.
+*/ 
+void luaD_call (lua_State *L, StkId func, int nResults) {
+  if (++L->nCcalls >= LUAI_MAXCCALLS) {
+    if (L->nCcalls == LUAI_MAXCCALLS)
+      luaG_runerror(L, "C stack overflow");
+    else if (L->nCcalls >= (LUAI_MAXCCALLS + (LUAI_MAXCCALLS>>3)))
+      luaD_throw(L, LUA_ERRERR);  /* error while handing stack error */
+  }
+  if (luaD_precall(L, func, nResults) == PCRLUA)  /* is a Lua function? */
+    luaV_execute(L, 1);  /* call it */
+  L->nCcalls--;
+  luaC_checkGC(L);
+}
+
+
+static void resume (lua_State *L, void *ud) {
+  StkId firstArg = cast(StkId, ud);
+  CallInfo *ci = L->ci;
+  if (L->status == 0) {  /* start coroutine? */
+    lua_assert(ci == L->base_ci && firstArg > L->base);
+    if (luaD_precall(L, firstArg - 1, LUA_MULTRET) != PCRLUA)
+      return;
+  }
+  else {  /* resuming from previous yield */
+    lua_assert(L->status == LUA_YIELD);
+    L->status = 0;
+    if (!f_isLua(ci)) {  /* `common' yield? */
+      /* finish interrupted execution of `OP_CALL' */
+      lua_assert(GET_OPCODE(*((ci-1)->savedpc - 1)) == OP_CALL ||
+                 GET_OPCODE(*((ci-1)->savedpc - 1)) == OP_TAILCALL);
+      if (luaD_poscall(L, firstArg))  /* complete it... */
+        L->top = L->ci->top;  /* and correct top if not multiple results */
+    }
+    else  /* yielded inside a hook: just continue its execution */
+      L->base = L->ci->base;
+  }
+  luaV_execute(L, cast_int(L->ci - L->base_ci));
+}
+
+
+static int resume_error (lua_State *L, const char *msg) {
+  L->top = L->ci->base;
+  setsvalue2s(L, L->top, luaS_new(L, msg));
+  incr_top(L);
+  lua_unlock(L);
+  return LUA_ERRRUN;
+}
+
+
+LUA_API int lua_resume (lua_State *L, int nargs) {
+  int status;
+  lua_lock(L);
+  if (L->status != LUA_YIELD && (L->status != 0 || L->ci != L->base_ci))
+      return resume_error(L, "cannot resume non-suspended coroutine");
+  if (L->nCcalls >= LUAI_MAXCCALLS)
+    return resume_error(L, "C stack overflow");
+  luai_userstateresume(L, nargs);
+  lua_assert(L->errfunc == 0);
+  L->baseCcalls = ++L->nCcalls;
+  status = luaD_rawrunprotected(L, resume, L->top - nargs);
+  if (status != 0) {  /* error? */
+    L->status = cast_byte(status);  /* mark thread as `dead' */
+    luaD_seterrorobj(L, status, L->top);
+    L->ci->top = L->top;
+  }
+  else {
+    lua_assert(L->nCcalls == L->baseCcalls);
+    status = L->status;
+  }
+  --L->nCcalls;
+  lua_unlock(L);
+  return status;
+}
+
+
+LUA_API int lua_yield (lua_State *L, int nresults) {
+  luai_userstateyield(L, nresults);
+  lua_lock(L);
+  if (L->nCcalls > L->baseCcalls)
+    luaG_runerror(L, "attempt to yield across metamethod/C-call boundary");
+  L->base = L->top - nresults;  /* protect stack slots below */
+  L->status = LUA_YIELD;
+  lua_unlock(L);
+  return -1;
+}
+
+
+int luaD_pcall (lua_State *L, Pfunc func, void *u,
+                ptrdiff_t old_top, ptrdiff_t ef) {
+  int status;
+  unsigned short oldnCcalls = L->nCcalls;
+  ptrdiff_t old_ci = saveci(L, L->ci);
+  lu_byte old_allowhooks = L->allowhook;
+  ptrdiff_t old_errfunc = L->errfunc;
+  L->errfunc = ef;
+  status = luaD_rawrunprotected(L, func, u);
+  if (status != 0) {  /* an error occurred? */
+    StkId oldtop = restorestack(L, old_top);
+    luaF_close(L, oldtop);  /* close eventual pending closures */
+    luaD_seterrorobj(L, status, oldtop);
+    L->nCcalls = oldnCcalls;
+    L->ci = restoreci(L, old_ci);
+    L->base = L->ci->base;
+    L->savedpc = L->ci->savedpc;
+    L->allowhook = old_allowhooks;
+    restore_stack_limit(L);
+  }
+  L->errfunc = old_errfunc;
+  return status;
+}
+
+
+
+/*
+** Execute a protected parser.
+*/
+struct SParser {  /* data to `f_parser' */
+  ZIO *z;
+  Mbuffer buff;  /* buffer to be used by the scanner */
+  const char *name;
+};
+
+static void f_parser (lua_State *L, void *ud) {
+  int i;
+  Proto *tf;
+  Closure *cl;
+  struct SParser *p = cast(struct SParser *, ud);
+  int c = luaZ_lookahead(p->z);
+  luaC_checkGC(L);
+  tf = ((c == LUA_SIGNATURE[0]) ? luaU_undump : luaY_parser)(L, p->z,
+                                                             &p->buff, p->name);
+  cl = luaF_newLclosure(L, tf->nups, hvalue(gt(L)));
+  cl->l.p = tf;
+  for (i = 0; i < tf->nups; i++)  /* initialize eventual upvalues */
+    cl->l.upvals[i] = luaF_newupval(L);
+  setclvalue(L, L->top, cl);
+  incr_top(L);
+}
+
+
+int luaD_protectedparser (lua_State *L, ZIO *z, const char *name) {
+  struct SParser p;
+  int status;
+  p.z = z; p.name = name;
+  luaZ_initbuffer(L, &p.buff);
+  status = luaD_pcall(L, f_parser, &p, savestack(L, L->top), L->errfunc);
+  luaZ_freebuffer(L, &p.buff);
+  return status;
+}
+
+

Added: test-suite/trunk/MultiSource/Applications/lua/ldo.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/ldo.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/ldo.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/ldo.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,57 @@
+/*
+** $Id: ldo.h,v 2.7.1.1 2007/12/27 13:02:25 roberto Exp $
+** Stack and Call structure of Lua
+** See Copyright Notice in lua.h
+*/
+
+#ifndef ldo_h
+#define ldo_h
+
+
+#include "lobject.h"
+#include "lstate.h"
+#include "lzio.h"
+
+
+#define luaD_checkstack(L,n)	\
+  if ((char *)L->stack_last - (char *)L->top <= (n)*(int)sizeof(TValue)) \
+    luaD_growstack(L, n); \
+  else condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1));
+
+
+#define incr_top(L) {luaD_checkstack(L,1); L->top++;}
+
+#define savestack(L,p)		((char *)(p) - (char *)L->stack)
+#define restorestack(L,n)	((TValue *)((char *)L->stack + (n)))
+
+#define saveci(L,p)		((char *)(p) - (char *)L->base_ci)
+#define restoreci(L,n)		((CallInfo *)((char *)L->base_ci + (n)))
+
+
+/* results from luaD_precall */
+#define PCRLUA		0	/* initiated a call to a Lua function */
+#define PCRC		1	/* did a call to a C function */
+#define PCRYIELD	2	/* C funtion yielded */
+
+
+/* type of protected functions, to be ran by `runprotected' */
+typedef void (*Pfunc) (lua_State *L, void *ud);
+
+LUAI_FUNC int luaD_protectedparser (lua_State *L, ZIO *z, const char *name);
+LUAI_FUNC void luaD_callhook (lua_State *L, int event, int line);
+LUAI_FUNC int luaD_precall (lua_State *L, StkId func, int nresults);
+LUAI_FUNC void luaD_call (lua_State *L, StkId func, int nResults);
+LUAI_FUNC int luaD_pcall (lua_State *L, Pfunc func, void *u,
+                                        ptrdiff_t oldtop, ptrdiff_t ef);
+LUAI_FUNC int luaD_poscall (lua_State *L, StkId firstResult);
+LUAI_FUNC void luaD_reallocCI (lua_State *L, int newsize);
+LUAI_FUNC void luaD_reallocstack (lua_State *L, int newsize);
+LUAI_FUNC void luaD_growstack (lua_State *L, int n);
+
+LUAI_FUNC void luaD_throw (lua_State *L, int errcode);
+LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud);
+
+LUAI_FUNC void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop);
+
+#endif
+

Added: test-suite/trunk/MultiSource/Applications/lua/ldump.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/ldump.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/ldump.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/ldump.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,164 @@
+/*
+** $Id: ldump.c,v 2.8.1.1 2007/12/27 13:02:25 roberto Exp $
+** save precompiled Lua chunks
+** See Copyright Notice in lua.h
+*/
+
+#include <stddef.h>
+
+#define ldump_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "lobject.h"
+#include "lstate.h"
+#include "lundump.h"
+
+typedef struct {
+ lua_State* L;
+ lua_Writer writer;
+ void* data;
+ int strip;
+ int status;
+} DumpState;
+
+#define DumpMem(b,n,size,D)	DumpBlock(b,(n)*(size),D)
+#define DumpVar(x,D)	 	DumpMem(&x,1,sizeof(x),D)
+
+static void DumpBlock(const void* b, size_t size, DumpState* D)
+{
+ if (D->status==0)
+ {
+  lua_unlock(D->L);
+  D->status=(*D->writer)(D->L,b,size,D->data);
+  lua_lock(D->L);
+ }
+}
+
+static void DumpChar(int y, DumpState* D)
+{
+ char x=(char)y;
+ DumpVar(x,D);
+}
+
+static void DumpInt(int x, DumpState* D)
+{
+ DumpVar(x,D);
+}
+
+static void DumpNumber(lua_Number x, DumpState* D)
+{
+ DumpVar(x,D);
+}
+
+static void DumpVector(const void* b, int n, size_t size, DumpState* D)
+{
+ DumpInt(n,D);
+ DumpMem(b,n,size,D);
+}
+
+static void DumpString(const TString* s, DumpState* D)
+{
+ if (s==NULL || getstr(s)==NULL)
+ {
+  size_t size=0;
+  DumpVar(size,D);
+ }
+ else
+ {
+  size_t size=s->tsv.len+1;		/* include trailing '\0' */
+  DumpVar(size,D);
+  DumpBlock(getstr(s),size,D);
+ }
+}
+
+#define DumpCode(f,D)	 DumpVector(f->code,f->sizecode,sizeof(Instruction),D)
+
+static void DumpFunction(const Proto* f, const TString* p, DumpState* D);
+
+static void DumpConstants(const Proto* f, DumpState* D)
+{
+ int i,n=f->sizek;
+ DumpInt(n,D);
+ for (i=0; i<n; i++)
+ {
+  const TValue* o=&f->k[i];
+  DumpChar(ttype(o),D);
+  switch (ttype(o))
+  {
+   case LUA_TNIL:
+	break;
+   case LUA_TBOOLEAN:
+	DumpChar(bvalue(o),D);
+	break;
+   case LUA_TNUMBER:
+	DumpNumber(nvalue(o),D);
+	break;
+   case LUA_TSTRING:
+	DumpString(rawtsvalue(o),D);
+	break;
+   default:
+	lua_assert(0);			/* cannot happen */
+	break;
+  }
+ }
+ n=f->sizep;
+ DumpInt(n,D);
+ for (i=0; i<n; i++) DumpFunction(f->p[i],f->source,D);
+}
+
+static void DumpDebug(const Proto* f, DumpState* D)
+{
+ int i,n;
+ n= (D->strip) ? 0 : f->sizelineinfo;
+ DumpVector(f->lineinfo,n,sizeof(int),D);
+ n= (D->strip) ? 0 : f->sizelocvars;
+ DumpInt(n,D);
+ for (i=0; i<n; i++)
+ {
+  DumpString(f->locvars[i].varname,D);
+  DumpInt(f->locvars[i].startpc,D);
+  DumpInt(f->locvars[i].endpc,D);
+ }
+ n= (D->strip) ? 0 : f->sizeupvalues;
+ DumpInt(n,D);
+ for (i=0; i<n; i++) DumpString(f->upvalues[i],D);
+}
+
+static void DumpFunction(const Proto* f, const TString* p, DumpState* D)
+{
+ DumpString((f->source==p || D->strip) ? NULL : f->source,D);
+ DumpInt(f->linedefined,D);
+ DumpInt(f->lastlinedefined,D);
+ DumpChar(f->nups,D);
+ DumpChar(f->numparams,D);
+ DumpChar(f->is_vararg,D);
+ DumpChar(f->maxstacksize,D);
+ DumpCode(f,D);
+ DumpConstants(f,D);
+ DumpDebug(f,D);
+}
+
+static void DumpHeader(DumpState* D)
+{
+ char h[LUAC_HEADERSIZE];
+ luaU_header(h);
+ DumpBlock(h,LUAC_HEADERSIZE,D);
+}
+
+/*
+** dump Lua function as precompiled chunk
+*/
+int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip)
+{
+ DumpState D;
+ D.L=L;
+ D.writer=w;
+ D.data=data;
+ D.strip=strip;
+ D.status=0;
+ DumpHeader(&D);
+ DumpFunction(f,NULL,&D);
+ return D.status;
+}

Added: test-suite/trunk/MultiSource/Applications/lua/lfunc.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lfunc.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lfunc.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lfunc.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,174 @@
+/*
+** $Id: lfunc.c,v 2.12.1.2 2007/12/28 14:58:43 roberto Exp $
+** Auxiliary functions to manipulate prototypes and closures
+** See Copyright Notice in lua.h
+*/
+
+
+#include <stddef.h>
+
+#define lfunc_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "lfunc.h"
+#include "lgc.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lstate.h"
+
+
+
+Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e) {
+  Closure *c = cast(Closure *, luaM_malloc(L, sizeCclosure(nelems)));
+  luaC_link(L, obj2gco(c), LUA_TFUNCTION);
+  c->c.isC = 1;
+  c->c.env = e;
+  c->c.nupvalues = cast_byte(nelems);
+  return c;
+}
+
+
+Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e) {
+  Closure *c = cast(Closure *, luaM_malloc(L, sizeLclosure(nelems)));
+  luaC_link(L, obj2gco(c), LUA_TFUNCTION);
+  c->l.isC = 0;
+  c->l.env = e;
+  c->l.nupvalues = cast_byte(nelems);
+  while (nelems--) c->l.upvals[nelems] = NULL;
+  return c;
+}
+
+
+UpVal *luaF_newupval (lua_State *L) {
+  UpVal *uv = luaM_new(L, UpVal);
+  luaC_link(L, obj2gco(uv), LUA_TUPVAL);
+  uv->v = &uv->u.value;
+  setnilvalue(uv->v);
+  return uv;
+}
+
+
+UpVal *luaF_findupval (lua_State *L, StkId level) {
+  global_State *g = G(L);
+  GCObject **pp = &L->openupval;
+  UpVal *p;
+  UpVal *uv;
+  while (*pp != NULL && (p = ngcotouv(*pp))->v >= level) {
+    lua_assert(p->v != &p->u.value);
+    if (p->v == level) {  /* found a corresponding upvalue? */
+      if (isdead(g, obj2gco(p)))  /* is it dead? */
+        changewhite(obj2gco(p));  /* ressurect it */
+      return p;
+    }
+    pp = &p->next;
+  }
+  uv = luaM_new(L, UpVal);  /* not found: create a new one */
+  uv->tt = LUA_TUPVAL;
+  uv->marked = luaC_white(g);
+  uv->v = level;  /* current value lives in the stack */
+  uv->next = *pp;  /* chain it in the proper position */
+  *pp = obj2gco(uv);
+  uv->u.l.prev = &g->uvhead;  /* double link it in `uvhead' list */
+  uv->u.l.next = g->uvhead.u.l.next;
+  uv->u.l.next->u.l.prev = uv;
+  g->uvhead.u.l.next = uv;
+  lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv);
+  return uv;
+}
+
+
+static void unlinkupval (UpVal *uv) {
+  lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv);
+  uv->u.l.next->u.l.prev = uv->u.l.prev;  /* remove from `uvhead' list */
+  uv->u.l.prev->u.l.next = uv->u.l.next;
+}
+
+
+void luaF_freeupval (lua_State *L, UpVal *uv) {
+  if (uv->v != &uv->u.value)  /* is it open? */
+    unlinkupval(uv);  /* remove from open list */
+  luaM_free(L, uv);  /* free upvalue */
+}
+
+
+void luaF_close (lua_State *L, StkId level) {
+  UpVal *uv;
+  global_State *g = G(L);
+  while (L->openupval != NULL && (uv = ngcotouv(L->openupval))->v >= level) {
+    GCObject *o = obj2gco(uv);
+    lua_assert(!isblack(o) && uv->v != &uv->u.value);
+    L->openupval = uv->next;  /* remove from `open' list */
+    if (isdead(g, o))
+      luaF_freeupval(L, uv);  /* free upvalue */
+    else {
+      unlinkupval(uv);
+      setobj(L, &uv->u.value, uv->v);
+      uv->v = &uv->u.value;  /* now current value lives here */
+      luaC_linkupval(L, uv);  /* link upvalue into `gcroot' list */
+    }
+  }
+}
+
+
+Proto *luaF_newproto (lua_State *L) {
+  Proto *f = luaM_new(L, Proto);
+  luaC_link(L, obj2gco(f), LUA_TPROTO);
+  f->k = NULL;
+  f->sizek = 0;
+  f->p = NULL;
+  f->sizep = 0;
+  f->code = NULL;
+  f->sizecode = 0;
+  f->sizelineinfo = 0;
+  f->sizeupvalues = 0;
+  f->nups = 0;
+  f->upvalues = NULL;
+  f->numparams = 0;
+  f->is_vararg = 0;
+  f->maxstacksize = 0;
+  f->lineinfo = NULL;
+  f->sizelocvars = 0;
+  f->locvars = NULL;
+  f->linedefined = 0;
+  f->lastlinedefined = 0;
+  f->source = NULL;
+  return f;
+}
+
+
+void luaF_freeproto (lua_State *L, Proto *f) {
+  luaM_freearray(L, f->code, f->sizecode, Instruction);
+  luaM_freearray(L, f->p, f->sizep, Proto *);
+  luaM_freearray(L, f->k, f->sizek, TValue);
+  luaM_freearray(L, f->lineinfo, f->sizelineinfo, int);
+  luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar);
+  luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *);
+  luaM_free(L, f);
+}
+
+
+void luaF_freeclosure (lua_State *L, Closure *c) {
+  int size = (c->c.isC) ? sizeCclosure(c->c.nupvalues) :
+                          sizeLclosure(c->l.nupvalues);
+  luaM_freemem(L, c, size);
+}
+
+
+/*
+** Look for n-th local variable at line `line' in function `func'.
+** Returns NULL if not found.
+*/
+const char *luaF_getlocalname (const Proto *f, int local_number, int pc) {
+  int i;
+  for (i = 0; i<f->sizelocvars && f->locvars[i].startpc <= pc; i++) {
+    if (pc < f->locvars[i].endpc) {  /* is variable active? */
+      local_number--;
+      if (local_number == 0)
+        return getstr(f->locvars[i].varname);
+    }
+  }
+  return NULL;  /* not found */
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lfunc.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lfunc.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lfunc.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lfunc.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,34 @@
+/*
+** $Id: lfunc.h,v 2.4.1.1 2007/12/27 13:02:25 roberto Exp $
+** Auxiliary functions to manipulate prototypes and closures
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lfunc_h
+#define lfunc_h
+
+
+#include "lobject.h"
+
+
+#define sizeCclosure(n)	(cast(int, sizeof(CClosure)) + \
+                         cast(int, sizeof(TValue)*((n)-1)))
+
+#define sizeLclosure(n)	(cast(int, sizeof(LClosure)) + \
+                         cast(int, sizeof(TValue *)*((n)-1)))
+
+
+LUAI_FUNC Proto *luaF_newproto (lua_State *L);
+LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e);
+LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e);
+LUAI_FUNC UpVal *luaF_newupval (lua_State *L);
+LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level);
+LUAI_FUNC void luaF_close (lua_State *L, StkId level);
+LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f);
+LUAI_FUNC void luaF_freeclosure (lua_State *L, Closure *c);
+LUAI_FUNC void luaF_freeupval (lua_State *L, UpVal *uv);
+LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number,
+                                         int pc);
+
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/lgc.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lgc.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lgc.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lgc.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,711 @@
+/*
+** $Id: lgc.c,v 2.38.1.1 2007/12/27 13:02:25 roberto Exp $
+** Garbage Collector
+** See Copyright Notice in lua.h
+*/
+
+#include <string.h>
+
+#define lgc_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "ldebug.h"
+#include "ldo.h"
+#include "lfunc.h"
+#include "lgc.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "ltable.h"
+#include "ltm.h"
+
+
+#define GCSTEPSIZE	1024u
+#define GCSWEEPMAX	40
+#define GCSWEEPCOST	10
+#define GCFINALIZECOST	100
+
+
+#define maskmarks	cast_byte(~(bitmask(BLACKBIT)|WHITEBITS))
+
+#define makewhite(g,x)	\
+   ((x)->gch.marked = cast_byte(((x)->gch.marked & maskmarks) | luaC_white(g)))
+
+#define white2gray(x)	reset2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT)
+#define black2gray(x)	resetbit((x)->gch.marked, BLACKBIT)
+
+#define stringmark(s)	reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT)
+
+
+#define isfinalized(u)		testbit((u)->marked, FINALIZEDBIT)
+#define markfinalized(u)	l_setbit((u)->marked, FINALIZEDBIT)
+
+
+#define KEYWEAK         bitmask(KEYWEAKBIT)
+#define VALUEWEAK       bitmask(VALUEWEAKBIT)
+
+
+
+#define markvalue(g,o) { checkconsistency(o); \
+  if (iscollectable(o) && iswhite(gcvalue(o))) reallymarkobject(g,gcvalue(o)); }
+
+#define markobject(g,t) { if (iswhite(obj2gco(t))) \
+		reallymarkobject(g, obj2gco(t)); }
+
+
+#define setthreshold(g)  (g->GCthreshold = (g->estimate/100) * g->gcpause)
+
+
+static void removeentry (Node *n) {
+  lua_assert(ttisnil(gval(n)));
+  if (iscollectable(gkey(n)))
+    setttype(gkey(n), LUA_TDEADKEY);  /* dead key; remove it */
+}
+
+
+static void reallymarkobject (global_State *g, GCObject *o) {
+  lua_assert(iswhite(o) && !isdead(g, o));
+  white2gray(o);
+  switch (o->gch.tt) {
+    case LUA_TSTRING: {
+      return;
+    }
+    case LUA_TUSERDATA: {
+      Table *mt = gco2u(o)->metatable;
+      gray2black(o);  /* udata are never gray */
+      if (mt) markobject(g, mt);
+      markobject(g, gco2u(o)->env);
+      return;
+    }
+    case LUA_TUPVAL: {
+      UpVal *uv = gco2uv(o);
+      markvalue(g, uv->v);
+      if (uv->v == &uv->u.value)  /* closed? */
+        gray2black(o);  /* open upvalues are never black */
+      return;
+    }
+    case LUA_TFUNCTION: {
+      gco2cl(o)->c.gclist = g->gray;
+      g->gray = o;
+      break;
+    }
+    case LUA_TTABLE: {
+      gco2h(o)->gclist = g->gray;
+      g->gray = o;
+      break;
+    }
+    case LUA_TTHREAD: {
+      gco2th(o)->gclist = g->gray;
+      g->gray = o;
+      break;
+    }
+    case LUA_TPROTO: {
+      gco2p(o)->gclist = g->gray;
+      g->gray = o;
+      break;
+    }
+    default: lua_assert(0);
+  }
+}
+
+
+static void marktmu (global_State *g) {
+  GCObject *u = g->tmudata;
+  if (u) {
+    do {
+      u = u->gch.next;
+      makewhite(g, u);  /* may be marked, if left from previous GC */
+      reallymarkobject(g, u);
+    } while (u != g->tmudata);
+  }
+}
+
+
+/* move `dead' udata that need finalization to list `tmudata' */
+size_t luaC_separateudata (lua_State *L, int all) {
+  global_State *g = G(L);
+  size_t deadmem = 0;
+  GCObject **p = &g->mainthread->next;
+  GCObject *curr;
+  while ((curr = *p) != NULL) {
+    if (!(iswhite(curr) || all) || isfinalized(gco2u(curr)))
+      p = &curr->gch.next;  /* don't bother with them */
+    else if (fasttm(L, gco2u(curr)->metatable, TM_GC) == NULL) {
+      markfinalized(gco2u(curr));  /* don't need finalization */
+      p = &curr->gch.next;
+    }
+    else {  /* must call its gc method */
+      deadmem += sizeudata(gco2u(curr));
+      markfinalized(gco2u(curr));
+      *p = curr->gch.next;
+      /* link `curr' at the end of `tmudata' list */
+      if (g->tmudata == NULL)  /* list is empty? */
+        g->tmudata = curr->gch.next = curr;  /* creates a circular list */
+      else {
+        curr->gch.next = g->tmudata->gch.next;
+        g->tmudata->gch.next = curr;
+        g->tmudata = curr;
+      }
+    }
+  }
+  return deadmem;
+}
+
+
+static int traversetable (global_State *g, Table *h) {
+  int i;
+  int weakkey = 0;
+  int weakvalue = 0;
+  const TValue *mode;
+  if (h->metatable)
+    markobject(g, h->metatable);
+  mode = gfasttm(g, h->metatable, TM_MODE);
+  if (mode && ttisstring(mode)) {  /* is there a weak mode? */
+    weakkey = (strchr(svalue(mode), 'k') != NULL);
+    weakvalue = (strchr(svalue(mode), 'v') != NULL);
+    if (weakkey || weakvalue) {  /* is really weak? */
+      h->marked &= ~(KEYWEAK | VALUEWEAK);  /* clear bits */
+      h->marked |= cast_byte((weakkey << KEYWEAKBIT) |
+                             (weakvalue << VALUEWEAKBIT));
+      h->gclist = g->weak;  /* must be cleared after GC, ... */
+      g->weak = obj2gco(h);  /* ... so put in the appropriate list */
+    }
+  }
+  if (weakkey && weakvalue) return 1;
+  if (!weakvalue) {
+    i = h->sizearray;
+    while (i--)
+      markvalue(g, &h->array[i]);
+  }
+  i = sizenode(h);
+  while (i--) {
+    Node *n = gnode(h, i);
+    lua_assert(ttype(gkey(n)) != LUA_TDEADKEY || ttisnil(gval(n)));
+    if (ttisnil(gval(n)))
+      removeentry(n);  /* remove empty entries */
+    else {
+      lua_assert(!ttisnil(gkey(n)));
+      if (!weakkey) markvalue(g, gkey(n));
+      if (!weakvalue) markvalue(g, gval(n));
+    }
+  }
+  return weakkey || weakvalue;
+}
+
+
+/*
+** All marks are conditional because a GC may happen while the
+** prototype is still being created
+*/
+static void traverseproto (global_State *g, Proto *f) {
+  int i;
+  if (f->source) stringmark(f->source);
+  for (i=0; i<f->sizek; i++)  /* mark literals */
+    markvalue(g, &f->k[i]);
+  for (i=0; i<f->sizeupvalues; i++) {  /* mark upvalue names */
+    if (f->upvalues[i])
+      stringmark(f->upvalues[i]);
+  }
+  for (i=0; i<f->sizep; i++) {  /* mark nested protos */
+    if (f->p[i])
+      markobject(g, f->p[i]);
+  }
+  for (i=0; i<f->sizelocvars; i++) {  /* mark local-variable names */
+    if (f->locvars[i].varname)
+      stringmark(f->locvars[i].varname);
+  }
+}
+
+
+
+static void traverseclosure (global_State *g, Closure *cl) {
+  markobject(g, cl->c.env);
+  if (cl->c.isC) {
+    int i;
+    for (i=0; i<cl->c.nupvalues; i++)  /* mark its upvalues */
+      markvalue(g, &cl->c.upvalue[i]);
+  }
+  else {
+    int i;
+    lua_assert(cl->l.nupvalues == cl->l.p->nups);
+    markobject(g, cl->l.p);
+    for (i=0; i<cl->l.nupvalues; i++)  /* mark its upvalues */
+      markobject(g, cl->l.upvals[i]);
+  }
+}
+
+
+static void checkstacksizes (lua_State *L, StkId max) {
+  int ci_used = cast_int(L->ci - L->base_ci);  /* number of `ci' in use */
+  int s_used = cast_int(max - L->stack);  /* part of stack in use */
+  if (L->size_ci > LUAI_MAXCALLS)  /* handling overflow? */
+    return;  /* do not touch the stacks */
+  if (4*ci_used < L->size_ci && 2*BASIC_CI_SIZE < L->size_ci)
+    luaD_reallocCI(L, L->size_ci/2);  /* still big enough... */
+  condhardstacktests(luaD_reallocCI(L, ci_used + 1));
+  if (4*s_used < L->stacksize &&
+      2*(BASIC_STACK_SIZE+EXTRA_STACK) < L->stacksize)
+    luaD_reallocstack(L, L->stacksize/2);  /* still big enough... */
+  condhardstacktests(luaD_reallocstack(L, s_used));
+}
+
+
+static void traversestack (global_State *g, lua_State *l) {
+  StkId o, lim;
+  CallInfo *ci;
+  markvalue(g, gt(l));
+  lim = l->top;
+  for (ci = l->base_ci; ci <= l->ci; ci++) {
+    lua_assert(ci->top <= l->stack_last);
+    if (lim < ci->top) lim = ci->top;
+  }
+  for (o = l->stack; o < l->top; o++)
+    markvalue(g, o);
+  for (; o <= lim; o++)
+    setnilvalue(o);
+  checkstacksizes(l, lim);
+}
+
+
+/*
+** traverse one gray object, turning it to black.
+** Returns `quantity' traversed.
+*/
+static l_mem propagatemark (global_State *g) {
+  GCObject *o = g->gray;
+  lua_assert(isgray(o));
+  gray2black(o);
+  switch (o->gch.tt) {
+    case LUA_TTABLE: {
+      Table *h = gco2h(o);
+      g->gray = h->gclist;
+      if (traversetable(g, h))  /* table is weak? */
+        black2gray(o);  /* keep it gray */
+      return sizeof(Table) + sizeof(TValue) * h->sizearray +
+                             sizeof(Node) * sizenode(h);
+    }
+    case LUA_TFUNCTION: {
+      Closure *cl = gco2cl(o);
+      g->gray = cl->c.gclist;
+      traverseclosure(g, cl);
+      return (cl->c.isC) ? sizeCclosure(cl->c.nupvalues) :
+                           sizeLclosure(cl->l.nupvalues);
+    }
+    case LUA_TTHREAD: {
+      lua_State *th = gco2th(o);
+      g->gray = th->gclist;
+      th->gclist = g->grayagain;
+      g->grayagain = o;
+      black2gray(o);
+      traversestack(g, th);
+      return sizeof(lua_State) + sizeof(TValue) * th->stacksize +
+                                 sizeof(CallInfo) * th->size_ci;
+    }
+    case LUA_TPROTO: {
+      Proto *p = gco2p(o);
+      g->gray = p->gclist;
+      traverseproto(g, p);
+      return sizeof(Proto) + sizeof(Instruction) * p->sizecode +
+                             sizeof(Proto *) * p->sizep +
+                             sizeof(TValue) * p->sizek + 
+                             sizeof(int) * p->sizelineinfo +
+                             sizeof(LocVar) * p->sizelocvars +
+                             sizeof(TString *) * p->sizeupvalues;
+    }
+    default: lua_assert(0); return 0;
+  }
+}
+
+
+static size_t propagateall (global_State *g) {
+  size_t m = 0;
+  while (g->gray) m += propagatemark(g);
+  return m;
+}
+
+
+/*
+** The next function tells whether a key or value can be cleared from
+** a weak table. Non-collectable objects are never removed from weak
+** tables. Strings behave as `values', so are never removed too. for
+** other objects: if really collected, cannot keep them; for userdata
+** being finalized, keep them in keys, but not in values
+*/
+static int iscleared (const TValue *o, int iskey) {
+  if (!iscollectable(o)) return 0;
+  if (ttisstring(o)) {
+    stringmark(rawtsvalue(o));  /* strings are `values', so are never weak */
+    return 0;
+  }
+  return iswhite(gcvalue(o)) ||
+    (ttisuserdata(o) && (!iskey && isfinalized(uvalue(o))));
+}
+
+
+/*
+** clear collected entries from weaktables
+*/
+static void cleartable (GCObject *l) {
+  while (l) {
+    Table *h = gco2h(l);
+    int i = h->sizearray;
+    lua_assert(testbit(h->marked, VALUEWEAKBIT) ||
+               testbit(h->marked, KEYWEAKBIT));
+    if (testbit(h->marked, VALUEWEAKBIT)) {
+      while (i--) {
+        TValue *o = &h->array[i];
+        if (iscleared(o, 0))  /* value was collected? */
+          setnilvalue(o);  /* remove value */
+      }
+    }
+    i = sizenode(h);
+    while (i--) {
+      Node *n = gnode(h, i);
+      if (!ttisnil(gval(n)) &&  /* non-empty entry? */
+          (iscleared(key2tval(n), 1) || iscleared(gval(n), 0))) {
+        setnilvalue(gval(n));  /* remove value ... */
+        removeentry(n);  /* remove entry from table */
+      }
+    }
+    l = h->gclist;
+  }
+}
+
+
+static void freeobj (lua_State *L, GCObject *o) {
+  switch (o->gch.tt) {
+    case LUA_TPROTO: luaF_freeproto(L, gco2p(o)); break;
+    case LUA_TFUNCTION: luaF_freeclosure(L, gco2cl(o)); break;
+    case LUA_TUPVAL: luaF_freeupval(L, gco2uv(o)); break;
+    case LUA_TTABLE: luaH_free(L, gco2h(o)); break;
+    case LUA_TTHREAD: {
+      lua_assert(gco2th(o) != L && gco2th(o) != G(L)->mainthread);
+      luaE_freethread(L, gco2th(o));
+      break;
+    }
+    case LUA_TSTRING: {
+      G(L)->strt.nuse--;
+      luaM_freemem(L, o, sizestring(gco2ts(o)));
+      break;
+    }
+    case LUA_TUSERDATA: {
+      luaM_freemem(L, o, sizeudata(gco2u(o)));
+      break;
+    }
+    default: lua_assert(0);
+  }
+}
+
+
+
+#define sweepwholelist(L,p)	sweeplist(L,p,MAX_LUMEM)
+
+
+static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count) {
+  GCObject *curr;
+  global_State *g = G(L);
+  int deadmask = otherwhite(g);
+  while ((curr = *p) != NULL && count-- > 0) {
+    if (curr->gch.tt == LUA_TTHREAD)  /* sweep open upvalues of each thread */
+      sweepwholelist(L, &gco2th(curr)->openupval);
+    if ((curr->gch.marked ^ WHITEBITS) & deadmask) {  /* not dead? */
+      lua_assert(!isdead(g, curr) || testbit(curr->gch.marked, FIXEDBIT));
+      makewhite(g, curr);  /* make it white (for next cycle) */
+      p = &curr->gch.next;
+    }
+    else {  /* must erase `curr' */
+      lua_assert(isdead(g, curr) || deadmask == bitmask(SFIXEDBIT));
+      *p = curr->gch.next;
+      if (curr == g->rootgc)  /* is the first element of the list? */
+        g->rootgc = curr->gch.next;  /* adjust first */
+      freeobj(L, curr);
+    }
+  }
+  return p;
+}
+
+
+static void checkSizes (lua_State *L) {
+  global_State *g = G(L);
+  /* check size of string hash */
+  if (g->strt.nuse < cast(lu_int32, g->strt.size/4) &&
+      g->strt.size > MINSTRTABSIZE*2)
+    luaS_resize(L, g->strt.size/2);  /* table is too big */
+  /* check size of buffer */
+  if (luaZ_sizebuffer(&g->buff) > LUA_MINBUFFER*2) {  /* buffer too big? */
+    size_t newsize = luaZ_sizebuffer(&g->buff) / 2;
+    luaZ_resizebuffer(L, &g->buff, newsize);
+  }
+}
+
+
+static void GCTM (lua_State *L) {
+  global_State *g = G(L);
+  GCObject *o = g->tmudata->gch.next;  /* get first element */
+  Udata *udata = rawgco2u(o);
+  const TValue *tm;
+  /* remove udata from `tmudata' */
+  if (o == g->tmudata)  /* last element? */
+    g->tmudata = NULL;
+  else
+    g->tmudata->gch.next = udata->uv.next;
+  udata->uv.next = g->mainthread->next;  /* return it to `root' list */
+  g->mainthread->next = o;
+  makewhite(g, o);
+  tm = fasttm(L, udata->uv.metatable, TM_GC);
+  if (tm != NULL) {
+    lu_byte oldah = L->allowhook;
+    lu_mem oldt = g->GCthreshold;
+    L->allowhook = 0;  /* stop debug hooks during GC tag method */
+    g->GCthreshold = 2*g->totalbytes;  /* avoid GC steps */
+    setobj2s(L, L->top, tm);
+    setuvalue(L, L->top+1, udata);
+    L->top += 2;
+    luaD_call(L, L->top - 2, 0);
+    L->allowhook = oldah;  /* restore hooks */
+    g->GCthreshold = oldt;  /* restore threshold */
+  }
+}
+
+
+/*
+** Call all GC tag methods
+*/
+void luaC_callGCTM (lua_State *L) {
+  while (G(L)->tmudata)
+    GCTM(L);
+}
+
+
+void luaC_freeall (lua_State *L) {
+  global_State *g = G(L);
+  int i;
+  g->currentwhite = WHITEBITS | bitmask(SFIXEDBIT);  /* mask to collect all elements */
+  sweepwholelist(L, &g->rootgc);
+  for (i = 0; i < g->strt.size; i++)  /* free all string lists */
+    sweepwholelist(L, &g->strt.hash[i]);
+}
+
+
+static void markmt (global_State *g) {
+  int i;
+  for (i=0; i<NUM_TAGS; i++)
+    if (g->mt[i]) markobject(g, g->mt[i]);
+}
+
+
+/* mark root set */
+static void markroot (lua_State *L) {
+  global_State *g = G(L);
+  g->gray = NULL;
+  g->grayagain = NULL;
+  g->weak = NULL;
+  markobject(g, g->mainthread);
+  /* make global table be traversed before main stack */
+  markvalue(g, gt(g->mainthread));
+  markvalue(g, registry(L));
+  markmt(g);
+  g->gcstate = GCSpropagate;
+}
+
+
+static void remarkupvals (global_State *g) {
+  UpVal *uv;
+  for (uv = g->uvhead.u.l.next; uv != &g->uvhead; uv = uv->u.l.next) {
+    lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv);
+    if (isgray(obj2gco(uv)))
+      markvalue(g, uv->v);
+  }
+}
+
+
+static void atomic (lua_State *L) {
+  global_State *g = G(L);
+  size_t udsize;  /* total size of userdata to be finalized */
+  /* remark occasional upvalues of (maybe) dead threads */
+  remarkupvals(g);
+  /* traverse objects cautch by write barrier and by 'remarkupvals' */
+  propagateall(g);
+  /* remark weak tables */
+  g->gray = g->weak;
+  g->weak = NULL;
+  lua_assert(!iswhite(obj2gco(g->mainthread)));
+  markobject(g, L);  /* mark running thread */
+  markmt(g);  /* mark basic metatables (again) */
+  propagateall(g);
+  /* remark gray again */
+  g->gray = g->grayagain;
+  g->grayagain = NULL;
+  propagateall(g);
+  udsize = luaC_separateudata(L, 0);  /* separate userdata to be finalized */
+  marktmu(g);  /* mark `preserved' userdata */
+  udsize += propagateall(g);  /* remark, to propagate `preserveness' */
+  cleartable(g->weak);  /* remove collected objects from weak tables */
+  /* flip current white */
+  g->currentwhite = cast_byte(otherwhite(g));
+  g->sweepstrgc = 0;
+  g->sweepgc = &g->rootgc;
+  g->gcstate = GCSsweepstring;
+  g->estimate = g->totalbytes - udsize;  /* first estimate */
+}
+
+
+static l_mem singlestep (lua_State *L) {
+  global_State *g = G(L);
+  /*lua_checkmemory(L);*/
+  switch (g->gcstate) {
+    case GCSpause: {
+      markroot(L);  /* start a new collection */
+      return 0;
+    }
+    case GCSpropagate: {
+      if (g->gray)
+        return propagatemark(g);
+      else {  /* no more `gray' objects */
+        atomic(L);  /* finish mark phase */
+        return 0;
+      }
+    }
+    case GCSsweepstring: {
+      lu_mem old = g->totalbytes;
+      sweepwholelist(L, &g->strt.hash[g->sweepstrgc++]);
+      if (g->sweepstrgc >= g->strt.size)  /* nothing more to sweep? */
+        g->gcstate = GCSsweep;  /* end sweep-string phase */
+      lua_assert(old >= g->totalbytes);
+      g->estimate -= old - g->totalbytes;
+      return GCSWEEPCOST;
+    }
+    case GCSsweep: {
+      lu_mem old = g->totalbytes;
+      g->sweepgc = sweeplist(L, g->sweepgc, GCSWEEPMAX);
+      if (*g->sweepgc == NULL) {  /* nothing more to sweep? */
+        checkSizes(L);
+        g->gcstate = GCSfinalize;  /* end sweep phase */
+      }
+      lua_assert(old >= g->totalbytes);
+      g->estimate -= old - g->totalbytes;
+      return GCSWEEPMAX*GCSWEEPCOST;
+    }
+    case GCSfinalize: {
+      if (g->tmudata) {
+        GCTM(L);
+        if (g->estimate > GCFINALIZECOST)
+          g->estimate -= GCFINALIZECOST;
+        return GCFINALIZECOST;
+      }
+      else {
+        g->gcstate = GCSpause;  /* end collection */
+        g->gcdept = 0;
+        return 0;
+      }
+    }
+    default: lua_assert(0); return 0;
+  }
+}
+
+
+void luaC_step (lua_State *L) {
+  global_State *g = G(L);
+  l_mem lim = (GCSTEPSIZE/100) * g->gcstepmul;
+  if (lim == 0)
+    lim = (MAX_LUMEM-1)/2;  /* no limit */
+  g->gcdept += g->totalbytes - g->GCthreshold;
+  do {
+    lim -= singlestep(L);
+    if (g->gcstate == GCSpause)
+      break;
+  } while (lim > 0);
+  if (g->gcstate != GCSpause) {
+    if (g->gcdept < GCSTEPSIZE)
+      g->GCthreshold = g->totalbytes + GCSTEPSIZE;  /* - lim/g->gcstepmul;*/
+    else {
+      g->gcdept -= GCSTEPSIZE;
+      g->GCthreshold = g->totalbytes;
+    }
+  }
+  else {
+    lua_assert(g->totalbytes >= g->estimate);
+    setthreshold(g);
+  }
+}
+
+
+void luaC_fullgc (lua_State *L) {
+  global_State *g = G(L);
+  if (g->gcstate <= GCSpropagate) {
+    /* reset sweep marks to sweep all elements (returning them to white) */
+    g->sweepstrgc = 0;
+    g->sweepgc = &g->rootgc;
+    /* reset other collector lists */
+    g->gray = NULL;
+    g->grayagain = NULL;
+    g->weak = NULL;
+    g->gcstate = GCSsweepstring;
+  }
+  lua_assert(g->gcstate != GCSpause && g->gcstate != GCSpropagate);
+  /* finish any pending sweep phase */
+  while (g->gcstate != GCSfinalize) {
+    lua_assert(g->gcstate == GCSsweepstring || g->gcstate == GCSsweep);
+    singlestep(L);
+  }
+  markroot(L);
+  while (g->gcstate != GCSpause) {
+    singlestep(L);
+  }
+  setthreshold(g);
+}
+
+
+void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) {
+  global_State *g = G(L);
+  lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o));
+  lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause);
+  lua_assert(ttype(&o->gch) != LUA_TTABLE);
+  /* must keep invariant? */
+  if (g->gcstate == GCSpropagate)
+    reallymarkobject(g, v);  /* restore invariant */
+  else  /* don't mind */
+    makewhite(g, o);  /* mark as white just to avoid other barriers */
+}
+
+
+void luaC_barrierback (lua_State *L, Table *t) {
+  global_State *g = G(L);
+  GCObject *o = obj2gco(t);
+  lua_assert(isblack(o) && !isdead(g, o));
+  lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause);
+  black2gray(o);  /* make table gray (again) */
+  t->gclist = g->grayagain;
+  g->grayagain = o;
+}
+
+
+void luaC_link (lua_State *L, GCObject *o, lu_byte tt) {
+  global_State *g = G(L);
+  o->gch.next = g->rootgc;
+  g->rootgc = o;
+  o->gch.marked = luaC_white(g);
+  o->gch.tt = tt;
+}
+
+
+void luaC_linkupval (lua_State *L, UpVal *uv) {
+  global_State *g = G(L);
+  GCObject *o = obj2gco(uv);
+  o->gch.next = g->rootgc;  /* link upvalue into `rootgc' list */
+  g->rootgc = o;
+  if (isgray(o)) { 
+    if (g->gcstate == GCSpropagate) {
+      gray2black(o);  /* closed upvalues need barrier */
+      luaC_barrier(L, uv, uv->v);
+    }
+    else {  /* sweep phase: sweep it (turning it into white) */
+      makewhite(g, o);
+      lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause);
+    }
+  }
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lgc.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lgc.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lgc.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lgc.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,110 @@
+/*
+** $Id: lgc.h,v 2.15.1.1 2007/12/27 13:02:25 roberto Exp $
+** Garbage Collector
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lgc_h
+#define lgc_h
+
+
+#include "lobject.h"
+
+
+/*
+** Possible states of the Garbage Collector
+*/
+#define GCSpause	0
+#define GCSpropagate	1
+#define GCSsweepstring	2
+#define GCSsweep	3
+#define GCSfinalize	4
+
+
+/*
+** some userful bit tricks
+*/
+#define resetbits(x,m)	((x) &= cast(lu_byte, ~(m)))
+#define setbits(x,m)	((x) |= (m))
+#define testbits(x,m)	((x) & (m))
+#define bitmask(b)	(1<<(b))
+#define bit2mask(b1,b2)	(bitmask(b1) | bitmask(b2))
+#define l_setbit(x,b)	setbits(x, bitmask(b))
+#define resetbit(x,b)	resetbits(x, bitmask(b))
+#define testbit(x,b)	testbits(x, bitmask(b))
+#define set2bits(x,b1,b2)	setbits(x, (bit2mask(b1, b2)))
+#define reset2bits(x,b1,b2)	resetbits(x, (bit2mask(b1, b2)))
+#define test2bits(x,b1,b2)	testbits(x, (bit2mask(b1, b2)))
+
+
+
+/*
+** Layout for bit use in `marked' field:
+** bit 0 - object is white (type 0)
+** bit 1 - object is white (type 1)
+** bit 2 - object is black
+** bit 3 - for userdata: has been finalized
+** bit 3 - for tables: has weak keys
+** bit 4 - for tables: has weak values
+** bit 5 - object is fixed (should not be collected)
+** bit 6 - object is "super" fixed (only the main thread)
+*/
+
+
+#define WHITE0BIT	0
+#define WHITE1BIT	1
+#define BLACKBIT	2
+#define FINALIZEDBIT	3
+#define KEYWEAKBIT	3
+#define VALUEWEAKBIT	4
+#define FIXEDBIT	5
+#define SFIXEDBIT	6
+#define WHITEBITS	bit2mask(WHITE0BIT, WHITE1BIT)
+
+
+#define iswhite(x)      test2bits((x)->gch.marked, WHITE0BIT, WHITE1BIT)
+#define isblack(x)      testbit((x)->gch.marked, BLACKBIT)
+#define isgray(x)	(!isblack(x) && !iswhite(x))
+
+#define otherwhite(g)	(g->currentwhite ^ WHITEBITS)
+#define isdead(g,v)	((v)->gch.marked & otherwhite(g) & WHITEBITS)
+
+#define changewhite(x)	((x)->gch.marked ^= WHITEBITS)
+#define gray2black(x)	l_setbit((x)->gch.marked, BLACKBIT)
+
+#define valiswhite(x)	(iscollectable(x) && iswhite(gcvalue(x)))
+
+#define luaC_white(g)	cast(lu_byte, (g)->currentwhite & WHITEBITS)
+
+
+#define luaC_checkGC(L) { \
+  condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1)); \
+  if (G(L)->totalbytes >= G(L)->GCthreshold) \
+	luaC_step(L); }
+
+
+#define luaC_barrier(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p)))  \
+	luaC_barrierf(L,obj2gco(p),gcvalue(v)); }
+
+#define luaC_barriert(L,t,v) { if (valiswhite(v) && isblack(obj2gco(t)))  \
+	luaC_barrierback(L,t); }
+
+#define luaC_objbarrier(L,p,o)  \
+	{ if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \
+		luaC_barrierf(L,obj2gco(p),obj2gco(o)); }
+
+#define luaC_objbarriert(L,t,o)  \
+   { if (iswhite(obj2gco(o)) && isblack(obj2gco(t))) luaC_barrierback(L,t); }
+
+LUAI_FUNC size_t luaC_separateudata (lua_State *L, int all);
+LUAI_FUNC void luaC_callGCTM (lua_State *L);
+LUAI_FUNC void luaC_freeall (lua_State *L);
+LUAI_FUNC void luaC_step (lua_State *L);
+LUAI_FUNC void luaC_fullgc (lua_State *L);
+LUAI_FUNC void luaC_link (lua_State *L, GCObject *o, lu_byte tt);
+LUAI_FUNC void luaC_linkupval (lua_State *L, UpVal *uv);
+LUAI_FUNC void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v);
+LUAI_FUNC void luaC_barrierback (lua_State *L, Table *t);
+
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/linit.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/linit.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/linit.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/linit.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,38 @@
+/*
+** $Id: linit.c,v 1.14.1.1 2007/12/27 13:02:25 roberto Exp $
+** Initialization of libraries for lua.c
+** See Copyright Notice in lua.h
+*/
+
+
+#define linit_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lualib.h"
+#include "lauxlib.h"
+
+
+static const luaL_Reg lualibs[] = {
+  {"", luaopen_base},
+  {LUA_LOADLIBNAME, luaopen_package},
+  {LUA_TABLIBNAME, luaopen_table},
+  {LUA_IOLIBNAME, luaopen_io},
+  {LUA_OSLIBNAME, luaopen_os},
+  {LUA_STRLIBNAME, luaopen_string},
+  {LUA_MATHLIBNAME, luaopen_math},
+  {LUA_DBLIBNAME, luaopen_debug},
+  {NULL, NULL}
+};
+
+
+LUALIB_API void luaL_openlibs (lua_State *L) {
+  const luaL_Reg *lib = lualibs;
+  for (; lib->func; lib++) {
+    lua_pushcfunction(L, lib->func);
+    lua_pushstring(L, lib->name);
+    lua_call(L, 1, 0);
+  }
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/liolib.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/liolib.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/liolib.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/liolib.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,553 @@
+/*
+** $Id: liolib.c,v 2.73.1.3 2008/01/18 17:47:43 roberto Exp $
+** Standard I/O (and system) library
+** See Copyright Notice in lua.h
+*/
+
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define liolib_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lauxlib.h"
+#include "lualib.h"
+
+
+
+#define IO_INPUT	1
+#define IO_OUTPUT	2
+
+
+static const char *const fnames[] = {"input", "output"};
+
+
+static int pushresult (lua_State *L, int i, const char *filename) {
+  int en = errno;  /* calls to Lua API may change this value */
+  if (i) {
+    lua_pushboolean(L, 1);
+    return 1;
+  }
+  else {
+    lua_pushnil(L);
+    if (filename)
+      lua_pushfstring(L, "%s: %s", filename, strerror(en));
+    else
+      lua_pushfstring(L, "%s", strerror(en));
+    lua_pushinteger(L, en);
+    return 3;
+  }
+}
+
+
+static void fileerror (lua_State *L, int arg, const char *filename) {
+  lua_pushfstring(L, "%s: %s", filename, strerror(errno));
+  luaL_argerror(L, arg, lua_tostring(L, -1));
+}
+
+
+#define tofilep(L)	((FILE **)luaL_checkudata(L, 1, LUA_FILEHANDLE))
+
+
+static int io_type (lua_State *L) {
+  void *ud;
+  luaL_checkany(L, 1);
+  ud = lua_touserdata(L, 1);
+  lua_getfield(L, LUA_REGISTRYINDEX, LUA_FILEHANDLE);
+  if (ud == NULL || !lua_getmetatable(L, 1) || !lua_rawequal(L, -2, -1))
+    lua_pushnil(L);  /* not a file */
+  else if (*((FILE **)ud) == NULL)
+    lua_pushliteral(L, "closed file");
+  else
+    lua_pushliteral(L, "file");
+  return 1;
+}
+
+
+static FILE *tofile (lua_State *L) {
+  FILE **f = tofilep(L);
+  if (*f == NULL)
+    luaL_error(L, "attempt to use a closed file");
+  return *f;
+}
+
+
+
+/*
+** When creating file handles, always creates a `closed' file handle
+** before opening the actual file; so, if there is a memory error, the
+** file is not left opened.
+*/
+static FILE **newfile (lua_State *L) {
+  FILE **pf = (FILE **)lua_newuserdata(L, sizeof(FILE *));
+  *pf = NULL;  /* file handle is currently `closed' */
+  luaL_getmetatable(L, LUA_FILEHANDLE);
+  lua_setmetatable(L, -2);
+  return pf;
+}
+
+
+/*
+** function to (not) close the standard files stdin, stdout, and stderr
+*/
+static int io_noclose (lua_State *L) {
+  lua_pushnil(L);
+  lua_pushliteral(L, "cannot close standard file");
+  return 2;
+}
+
+
+/*
+** function to close 'popen' files
+*/
+static int io_pclose (lua_State *L) {
+  FILE **p = tofilep(L);
+  int ok = lua_pclose(L, *p);
+  *p = NULL;
+  return pushresult(L, ok, NULL);
+}
+
+
+/*
+** function to close regular files
+*/
+static int io_fclose (lua_State *L) {
+  FILE **p = tofilep(L);
+  int ok = (fclose(*p) == 0);
+  *p = NULL;
+  return pushresult(L, ok, NULL);
+}
+
+
+static int aux_close (lua_State *L) {
+  lua_getfenv(L, 1);
+  lua_getfield(L, -1, "__close");
+  return (lua_tocfunction(L, -1))(L);
+}
+
+
+static int io_close (lua_State *L) {
+  if (lua_isnone(L, 1))
+    lua_rawgeti(L, LUA_ENVIRONINDEX, IO_OUTPUT);
+  tofile(L);  /* make sure argument is a file */
+  return aux_close(L);
+}
+
+
+static int io_gc (lua_State *L) {
+  FILE *f = *tofilep(L);
+  /* ignore closed files */
+  if (f != NULL)
+    aux_close(L);
+  return 0;
+}
+
+
+static int io_tostring (lua_State *L) {
+  FILE *f = *tofilep(L);
+  if (f == NULL)
+    lua_pushliteral(L, "file (closed)");
+  else
+    lua_pushfstring(L, "file (%p)", f);
+  return 1;
+}
+
+
+static int io_open (lua_State *L) {
+  const char *filename = luaL_checkstring(L, 1);
+  const char *mode = luaL_optstring(L, 2, "r");
+  FILE **pf = newfile(L);
+  *pf = fopen(filename, mode);
+  return (*pf == NULL) ? pushresult(L, 0, filename) : 1;
+}
+
+
+/*
+** this function has a separated environment, which defines the
+** correct __close for 'popen' files
+*/
+static int io_popen (lua_State *L) {
+  const char *filename = luaL_checkstring(L, 1);
+  const char *mode = luaL_optstring(L, 2, "r");
+  FILE **pf = newfile(L);
+  *pf = lua_popen(L, filename, mode);
+  return (*pf == NULL) ? pushresult(L, 0, filename) : 1;
+}
+
+
+static int io_tmpfile (lua_State *L) {
+  FILE **pf = newfile(L);
+  *pf = tmpfile();
+  return (*pf == NULL) ? pushresult(L, 0, NULL) : 1;
+}
+
+
+static FILE *getiofile (lua_State *L, int findex) {
+  FILE *f;
+  lua_rawgeti(L, LUA_ENVIRONINDEX, findex);
+  f = *(FILE **)lua_touserdata(L, -1);
+  if (f == NULL)
+    luaL_error(L, "standard %s file is closed", fnames[findex - 1]);
+  return f;
+}
+
+
+static int g_iofile (lua_State *L, int f, const char *mode) {
+  if (!lua_isnoneornil(L, 1)) {
+    const char *filename = lua_tostring(L, 1);
+    if (filename) {
+      FILE **pf = newfile(L);
+      *pf = fopen(filename, mode);
+      if (*pf == NULL)
+        fileerror(L, 1, filename);
+    }
+    else {
+      tofile(L);  /* check that it's a valid file handle */
+      lua_pushvalue(L, 1);
+    }
+    lua_rawseti(L, LUA_ENVIRONINDEX, f);
+  }
+  /* return current value */
+  lua_rawgeti(L, LUA_ENVIRONINDEX, f);
+  return 1;
+}
+
+
+static int io_input (lua_State *L) {
+  return g_iofile(L, IO_INPUT, "r");
+}
+
+
+static int io_output (lua_State *L) {
+  return g_iofile(L, IO_OUTPUT, "w");
+}
+
+
+static int io_readline (lua_State *L);
+
+
+static void aux_lines (lua_State *L, int idx, int toclose) {
+  lua_pushvalue(L, idx);
+  lua_pushboolean(L, toclose);  /* close/not close file when finished */
+  lua_pushcclosure(L, io_readline, 2);
+}
+
+
+static int f_lines (lua_State *L) {
+  tofile(L);  /* check that it's a valid file handle */
+  aux_lines(L, 1, 0);
+  return 1;
+}
+
+
+static int io_lines (lua_State *L) {
+  if (lua_isnoneornil(L, 1)) {  /* no arguments? */
+    /* will iterate over default input */
+    lua_rawgeti(L, LUA_ENVIRONINDEX, IO_INPUT);
+    return f_lines(L);
+  }
+  else {
+    const char *filename = luaL_checkstring(L, 1);
+    FILE **pf = newfile(L);
+    *pf = fopen(filename, "r");
+    if (*pf == NULL)
+      fileerror(L, 1, filename);
+    aux_lines(L, lua_gettop(L), 1);
+    return 1;
+  }
+}
+
+
+/*
+** {======================================================
+** READ
+** =======================================================
+*/
+
+
+static int read_number (lua_State *L, FILE *f) {
+  lua_Number d;
+  if (fscanf(f, LUA_NUMBER_SCAN, &d) == 1) {
+    lua_pushnumber(L, d);
+    return 1;
+  }
+  else return 0;  /* read fails */
+}
+
+
+static int test_eof (lua_State *L, FILE *f) {
+  int c = getc(f);
+  ungetc(c, f);
+  lua_pushlstring(L, NULL, 0);
+  return (c != EOF);
+}
+
+
+static int read_line (lua_State *L, FILE *f) {
+  luaL_Buffer b;
+  luaL_buffinit(L, &b);
+  for (;;) {
+    size_t l;
+    char *p = luaL_prepbuffer(&b);
+    if (fgets(p, LUAL_BUFFERSIZE, f) == NULL) {  /* eof? */
+      luaL_pushresult(&b);  /* close buffer */
+      return (lua_objlen(L, -1) > 0);  /* check whether read something */
+    }
+    l = strlen(p);
+    if (l == 0 || p[l-1] != '\n')
+      luaL_addsize(&b, l);
+    else {
+      luaL_addsize(&b, l - 1);  /* do not include `eol' */
+      luaL_pushresult(&b);  /* close buffer */
+      return 1;  /* read at least an `eol' */
+    }
+  }
+}
+
+
+static int read_chars (lua_State *L, FILE *f, size_t n) {
+  size_t rlen;  /* how much to read */
+  size_t nr;  /* number of chars actually read */
+  luaL_Buffer b;
+  luaL_buffinit(L, &b);
+  rlen = LUAL_BUFFERSIZE;  /* try to read that much each time */
+  do {
+    char *p = luaL_prepbuffer(&b);
+    if (rlen > n) rlen = n;  /* cannot read more than asked */
+    nr = fread(p, sizeof(char), rlen, f);
+    luaL_addsize(&b, nr);
+    n -= nr;  /* still have to read `n' chars */
+  } while (n > 0 && nr == rlen);  /* until end of count or eof */
+  luaL_pushresult(&b);  /* close buffer */
+  return (n == 0 || lua_objlen(L, -1) > 0);
+}
+
+
+static int g_read (lua_State *L, FILE *f, int first) {
+  int nargs = lua_gettop(L) - 1;
+  int success;
+  int n;
+  clearerr(f);
+  if (nargs == 0) {  /* no arguments? */
+    success = read_line(L, f);
+    n = first+1;  /* to return 1 result */
+  }
+  else {  /* ensure stack space for all results and for auxlib's buffer */
+    luaL_checkstack(L, nargs+LUA_MINSTACK, "too many arguments");
+    success = 1;
+    for (n = first; nargs-- && success; n++) {
+      if (lua_type(L, n) == LUA_TNUMBER) {
+        size_t l = (size_t)lua_tointeger(L, n);
+        success = (l == 0) ? test_eof(L, f) : read_chars(L, f, l);
+      }
+      else {
+        const char *p = lua_tostring(L, n);
+        luaL_argcheck(L, p && p[0] == '*', n, "invalid option");
+        switch (p[1]) {
+          case 'n':  /* number */
+            success = read_number(L, f);
+            break;
+          case 'l':  /* line */
+            success = read_line(L, f);
+            break;
+          case 'a':  /* file */
+            read_chars(L, f, ~((size_t)0));  /* read MAX_SIZE_T chars */
+            success = 1; /* always success */
+            break;
+          default:
+            return luaL_argerror(L, n, "invalid format");
+        }
+      }
+    }
+  }
+  if (ferror(f))
+    return pushresult(L, 0, NULL);
+  if (!success) {
+    lua_pop(L, 1);  /* remove last result */
+    lua_pushnil(L);  /* push nil instead */
+  }
+  return n - first;
+}
+
+
+static int io_read (lua_State *L) {
+  return g_read(L, getiofile(L, IO_INPUT), 1);
+}
+
+
+static int f_read (lua_State *L) {
+  return g_read(L, tofile(L), 2);
+}
+
+
+static int io_readline (lua_State *L) {
+  FILE *f = *(FILE **)lua_touserdata(L, lua_upvalueindex(1));
+  int sucess;
+  if (f == NULL)  /* file is already closed? */
+    luaL_error(L, "file is already closed");
+  sucess = read_line(L, f);
+  if (ferror(f))
+    return luaL_error(L, "%s", strerror(errno));
+  if (sucess) return 1;
+  else {  /* EOF */
+    if (lua_toboolean(L, lua_upvalueindex(2))) {  /* generator created file? */
+      lua_settop(L, 0);
+      lua_pushvalue(L, lua_upvalueindex(1));
+      aux_close(L);  /* close it */
+    }
+    return 0;
+  }
+}
+
+/* }====================================================== */
+
+
+static int g_write (lua_State *L, FILE *f, int arg) {
+  int nargs = lua_gettop(L) - 1;
+  int status = 1;
+  for (; nargs--; arg++) {
+    if (lua_type(L, arg) == LUA_TNUMBER) {
+      /* optimization: could be done exactly as for strings */
+      status = status &&
+          fprintf(f, LUA_NUMBER_FMT, lua_tonumber(L, arg)) > 0;
+    }
+    else {
+      size_t l;
+      const char *s = luaL_checklstring(L, arg, &l);
+      status = status && (fwrite(s, sizeof(char), l, f) == l);
+    }
+  }
+  return pushresult(L, status, NULL);
+}
+
+
+static int io_write (lua_State *L) {
+  return g_write(L, getiofile(L, IO_OUTPUT), 1);
+}
+
+
+static int f_write (lua_State *L) {
+  return g_write(L, tofile(L), 2);
+}
+
+
+static int f_seek (lua_State *L) {
+  static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END};
+  static const char *const modenames[] = {"set", "cur", "end", NULL};
+  FILE *f = tofile(L);
+  int op = luaL_checkoption(L, 2, "cur", modenames);
+  long offset = luaL_optlong(L, 3, 0);
+  op = fseek(f, offset, mode[op]);
+  if (op)
+    return pushresult(L, 0, NULL);  /* error */
+  else {
+    lua_pushinteger(L, ftell(f));
+    return 1;
+  }
+}
+
+
+static int f_setvbuf (lua_State *L) {
+  static const int mode[] = {_IONBF, _IOFBF, _IOLBF};
+  static const char *const modenames[] = {"no", "full", "line", NULL};
+  FILE *f = tofile(L);
+  int op = luaL_checkoption(L, 2, NULL, modenames);
+  lua_Integer sz = luaL_optinteger(L, 3, LUAL_BUFFERSIZE);
+  int res = setvbuf(f, NULL, mode[op], sz);
+  return pushresult(L, res == 0, NULL);
+}
+
+
+
+static int io_flush (lua_State *L) {
+  return pushresult(L, fflush(getiofile(L, IO_OUTPUT)) == 0, NULL);
+}
+
+
+static int f_flush (lua_State *L) {
+  return pushresult(L, fflush(tofile(L)) == 0, NULL);
+}
+
+
+static const luaL_Reg iolib[] = {
+  {"close", io_close},
+  {"flush", io_flush},
+  {"input", io_input},
+  {"lines", io_lines},
+  {"open", io_open},
+  {"output", io_output},
+  {"popen", io_popen},
+  {"read", io_read},
+  {"tmpfile", io_tmpfile},
+  {"type", io_type},
+  {"write", io_write},
+  {NULL, NULL}
+};
+
+
+static const luaL_Reg flib[] = {
+  {"close", io_close},
+  {"flush", f_flush},
+  {"lines", f_lines},
+  {"read", f_read},
+  {"seek", f_seek},
+  {"setvbuf", f_setvbuf},
+  {"write", f_write},
+  {"__gc", io_gc},
+  {"__tostring", io_tostring},
+  {NULL, NULL}
+};
+
+
+static void createmeta (lua_State *L) {
+  luaL_newmetatable(L, LUA_FILEHANDLE);  /* create metatable for file handles */
+  lua_pushvalue(L, -1);  /* push metatable */
+  lua_setfield(L, -2, "__index");  /* metatable.__index = metatable */
+  luaL_register(L, NULL, flib);  /* file methods */
+}
+
+
+static void createstdfile (lua_State *L, FILE *f, int k, const char *fname) {
+  *newfile(L) = f;
+  if (k > 0) {
+    lua_pushvalue(L, -1);
+    lua_rawseti(L, LUA_ENVIRONINDEX, k);
+  }
+  lua_pushvalue(L, -2);  /* copy environment */
+  lua_setfenv(L, -2);  /* set it */
+  lua_setfield(L, -3, fname);
+}
+
+
+static void newfenv (lua_State *L, lua_CFunction cls) {
+  lua_createtable(L, 0, 1);
+  lua_pushcfunction(L, cls);
+  lua_setfield(L, -2, "__close");
+}
+
+
+LUALIB_API int luaopen_io (lua_State *L) {
+  createmeta(L);
+  /* create (private) environment (with fields IO_INPUT, IO_OUTPUT, __close) */
+  newfenv(L, io_fclose);
+  lua_replace(L, LUA_ENVIRONINDEX);
+  /* open library */
+  luaL_register(L, LUA_IOLIBNAME, iolib);
+  /* create (and set) default files */
+  newfenv(L, io_noclose);  /* close function for default files */
+  createstdfile(L, stdin, IO_INPUT, "stdin");
+  createstdfile(L, stdout, IO_OUTPUT, "stdout");
+  createstdfile(L, stderr, 0, "stderr");
+  lua_pop(L, 1);  /* pop environment for default files */
+  lua_getfield(L, -1, "popen");
+  newfenv(L, io_pclose);  /* create environment for 'popen' */
+  lua_setfenv(L, -2);  /* set fenv for 'popen' */
+  lua_pop(L, 1);  /* pop 'popen' */
+  return 1;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/llex.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/llex.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/llex.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/llex.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,461 @@
+/*
+** $Id: llex.c,v 2.20.1.1 2007/12/27 13:02:25 roberto Exp $
+** Lexical Analyzer
+** See Copyright Notice in lua.h
+*/
+
+
+#include <ctype.h>
+#include <locale.h>
+#include <string.h>
+
+#define llex_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "ldo.h"
+#include "llex.h"
+#include "lobject.h"
+#include "lparser.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "ltable.h"
+#include "lzio.h"
+
+
+
+#define next(ls) (ls->current = zgetc(ls->z))
+
+
+
+
+#define currIsNewline(ls)	(ls->current == '\n' || ls->current == '\r')
+
+
+/* ORDER RESERVED */
+const char *const luaX_tokens [] = {
+    "and", "break", "do", "else", "elseif",
+    "end", "false", "for", "function", "if",
+    "in", "local", "nil", "not", "or", "repeat",
+    "return", "then", "true", "until", "while",
+    "..", "...", "==", ">=", "<=", "~=",
+    "<number>", "<name>", "<string>", "<eof>",
+    NULL
+};
+
+
+#define save_and_next(ls) (save(ls, ls->current), next(ls))
+
+
+static void save (LexState *ls, int c) {
+  Mbuffer *b = ls->buff;
+  if (b->n + 1 > b->buffsize) {
+    size_t newsize;
+    if (b->buffsize >= MAX_SIZET/2)
+      luaX_lexerror(ls, "lexical element too long", 0);
+    newsize = b->buffsize * 2;
+    luaZ_resizebuffer(ls->L, b, newsize);
+  }
+  b->buffer[b->n++] = cast(char, c);
+}
+
+
+void luaX_init (lua_State *L) {
+  int i;
+  for (i=0; i<NUM_RESERVED; i++) {
+    TString *ts = luaS_new(L, luaX_tokens[i]);
+    luaS_fix(ts);  /* reserved words are never collected */
+    lua_assert(strlen(luaX_tokens[i])+1 <= TOKEN_LEN);
+    ts->tsv.reserved = cast_byte(i+1);  /* reserved word */
+  }
+}
+
+
+#define MAXSRC          80
+
+
+const char *luaX_token2str (LexState *ls, int token) {
+  if (token < FIRST_RESERVED) {
+    lua_assert(token == cast(unsigned char, token));
+    return (iscntrl(token)) ? luaO_pushfstring(ls->L, "char(%d)", token) :
+                              luaO_pushfstring(ls->L, "%c", token);
+  }
+  else
+    return luaX_tokens[token-FIRST_RESERVED];
+}
+
+
+static const char *txtToken (LexState *ls, int token) {
+  switch (token) {
+    case TK_NAME:
+    case TK_STRING:
+    case TK_NUMBER:
+      save(ls, '\0');
+      return luaZ_buffer(ls->buff);
+    default:
+      return luaX_token2str(ls, token);
+  }
+}
+
+
+void luaX_lexerror (LexState *ls, const char *msg, int token) {
+  char buff[MAXSRC];
+  luaO_chunkid(buff, getstr(ls->source), MAXSRC);
+  msg = luaO_pushfstring(ls->L, "%s:%d: %s", buff, ls->linenumber, msg);
+  if (token)
+    luaO_pushfstring(ls->L, "%s near " LUA_QS, msg, txtToken(ls, token));
+  luaD_throw(ls->L, LUA_ERRSYNTAX);
+}
+
+
+void luaX_syntaxerror (LexState *ls, const char *msg) {
+  luaX_lexerror(ls, msg, ls->t.token);
+}
+
+
+TString *luaX_newstring (LexState *ls, const char *str, size_t l) {
+  lua_State *L = ls->L;
+  TString *ts = luaS_newlstr(L, str, l);
+  TValue *o = luaH_setstr(L, ls->fs->h, ts);  /* entry for `str' */
+  if (ttisnil(o))
+    setbvalue(o, 1);  /* make sure `str' will not be collected */
+  return ts;
+}
+
+
+static void inclinenumber (LexState *ls) {
+  int old = ls->current;
+  lua_assert(currIsNewline(ls));
+  next(ls);  /* skip `\n' or `\r' */
+  if (currIsNewline(ls) && ls->current != old)
+    next(ls);  /* skip `\n\r' or `\r\n' */
+  if (++ls->linenumber >= MAX_INT)
+    luaX_syntaxerror(ls, "chunk has too many lines");
+}
+
+
+void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, TString *source) {
+  ls->decpoint = '.';
+  ls->L = L;
+  ls->lookahead.token = TK_EOS;  /* no look-ahead token */
+  ls->z = z;
+  ls->fs = NULL;
+  ls->linenumber = 1;
+  ls->lastline = 1;
+  ls->source = source;
+  luaZ_resizebuffer(ls->L, ls->buff, LUA_MINBUFFER);  /* initialize buffer */
+  next(ls);  /* read first char */
+}
+
+
+
+/*
+** =======================================================
+** LEXICAL ANALYZER
+** =======================================================
+*/
+
+
+
+static int check_next (LexState *ls, const char *set) {
+  if (!strchr(set, ls->current))
+    return 0;
+  save_and_next(ls);
+  return 1;
+}
+
+
+static void buffreplace (LexState *ls, char from, char to) {
+  size_t n = luaZ_bufflen(ls->buff);
+  char *p = luaZ_buffer(ls->buff);
+  while (n--)
+    if (p[n] == from) p[n] = to;
+}
+
+
+static void trydecpoint (LexState *ls, SemInfo *seminfo) {
+  /* format error: try to update decimal point separator */
+  struct lconv *cv = localeconv();
+  char old = ls->decpoint;
+  ls->decpoint = (cv ? cv->decimal_point[0] : '.');
+  buffreplace(ls, old, ls->decpoint);  /* try updated decimal separator */
+  if (!luaO_str2d(luaZ_buffer(ls->buff), &seminfo->r)) {
+    /* format error with correct decimal point: no more options */
+    buffreplace(ls, ls->decpoint, '.');  /* undo change (for error message) */
+    luaX_lexerror(ls, "malformed number", TK_NUMBER);
+  }
+}
+
+
+/* LUA_NUMBER */
+static void read_numeral (LexState *ls, SemInfo *seminfo) {
+  lua_assert(isdigit(ls->current));
+  do {
+    save_and_next(ls);
+  } while (isdigit(ls->current) || ls->current == '.');
+  if (check_next(ls, "Ee"))  /* `E'? */
+    check_next(ls, "+-");  /* optional exponent sign */
+  while (isalnum(ls->current) || ls->current == '_')
+    save_and_next(ls);
+  save(ls, '\0');
+  buffreplace(ls, '.', ls->decpoint);  /* follow locale for decimal point */
+  if (!luaO_str2d(luaZ_buffer(ls->buff), &seminfo->r))  /* format error? */
+    trydecpoint(ls, seminfo); /* try to update decimal point separator */
+}
+
+
+static int skip_sep (LexState *ls) {
+  int count = 0;
+  int s = ls->current;
+  lua_assert(s == '[' || s == ']');
+  save_and_next(ls);
+  while (ls->current == '=') {
+    save_and_next(ls);
+    count++;
+  }
+  return (ls->current == s) ? count : (-count) - 1;
+}
+
+
+static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) {
+  int cont = 0;
+  (void)(cont);  /* avoid warnings when `cont' is not used */
+  save_and_next(ls);  /* skip 2nd `[' */
+  if (currIsNewline(ls))  /* string starts with a newline? */
+    inclinenumber(ls);  /* skip it */
+  for (;;) {
+    switch (ls->current) {
+      case EOZ:
+        luaX_lexerror(ls, (seminfo) ? "unfinished long string" :
+                                   "unfinished long comment", TK_EOS);
+        break;  /* to avoid warnings */
+#if defined(LUA_COMPAT_LSTR)
+      case '[': {
+        if (skip_sep(ls) == sep) {
+          save_and_next(ls);  /* skip 2nd `[' */
+          cont++;
+#if LUA_COMPAT_LSTR == 1
+          if (sep == 0)
+            luaX_lexerror(ls, "nesting of [[...]] is deprecated", '[');
+#endif
+        }
+        break;
+      }
+#endif
+      case ']': {
+        if (skip_sep(ls) == sep) {
+          save_and_next(ls);  /* skip 2nd `]' */
+#if defined(LUA_COMPAT_LSTR) && LUA_COMPAT_LSTR == 2
+          cont--;
+          if (sep == 0 && cont >= 0) break;
+#endif
+          goto endloop;
+        }
+        break;
+      }
+      case '\n':
+      case '\r': {
+        save(ls, '\n');
+        inclinenumber(ls);
+        if (!seminfo) luaZ_resetbuffer(ls->buff);  /* avoid wasting space */
+        break;
+      }
+      default: {
+        if (seminfo) save_and_next(ls);
+        else next(ls);
+      }
+    }
+  } endloop:
+  if (seminfo)
+    seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + (2 + sep),
+                                     luaZ_bufflen(ls->buff) - 2*(2 + sep));
+}
+
+
+static void read_string (LexState *ls, int del, SemInfo *seminfo) {
+  save_and_next(ls);
+  while (ls->current != del) {
+    switch (ls->current) {
+      case EOZ:
+        luaX_lexerror(ls, "unfinished string", TK_EOS);
+        continue;  /* to avoid warnings */
+      case '\n':
+      case '\r':
+        luaX_lexerror(ls, "unfinished string", TK_STRING);
+        continue;  /* to avoid warnings */
+      case '\\': {
+        int c;
+        next(ls);  /* do not save the `\' */
+        switch (ls->current) {
+          case 'a': c = '\a'; break;
+          case 'b': c = '\b'; break;
+          case 'f': c = '\f'; break;
+          case 'n': c = '\n'; break;
+          case 'r': c = '\r'; break;
+          case 't': c = '\t'; break;
+          case 'v': c = '\v'; break;
+          case '\n':  /* go through */
+          case '\r': save(ls, '\n'); inclinenumber(ls); continue;
+          case EOZ: continue;  /* will raise an error next loop */
+          default: {
+            if (!isdigit(ls->current))
+              save_and_next(ls);  /* handles \\, \", \', and \? */
+            else {  /* \xxx */
+              int i = 0;
+              c = 0;
+              do {
+                c = 10*c + (ls->current-'0');
+                next(ls);
+              } while (++i<3 && isdigit(ls->current));
+              if (c > UCHAR_MAX)
+                luaX_lexerror(ls, "escape sequence too large", TK_STRING);
+              save(ls, c);
+            }
+            continue;
+          }
+        }
+        save(ls, c);
+        next(ls);
+        continue;
+      }
+      default:
+        save_and_next(ls);
+    }
+  }
+  save_and_next(ls);  /* skip delimiter */
+  seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + 1,
+                                   luaZ_bufflen(ls->buff) - 2);
+}
+
+
+static int llex (LexState *ls, SemInfo *seminfo) {
+  luaZ_resetbuffer(ls->buff);
+  for (;;) {
+    switch (ls->current) {
+      case '\n':
+      case '\r': {
+        inclinenumber(ls);
+        continue;
+      }
+      case '-': {
+        next(ls);
+        if (ls->current != '-') return '-';
+        /* else is a comment */
+        next(ls);
+        if (ls->current == '[') {
+          int sep = skip_sep(ls);
+          luaZ_resetbuffer(ls->buff);  /* `skip_sep' may dirty the buffer */
+          if (sep >= 0) {
+            read_long_string(ls, NULL, sep);  /* long comment */
+            luaZ_resetbuffer(ls->buff);
+            continue;
+          }
+        }
+        /* else short comment */
+        while (!currIsNewline(ls) && ls->current != EOZ)
+          next(ls);
+        continue;
+      }
+      case '[': {
+        int sep = skip_sep(ls);
+        if (sep >= 0) {
+          read_long_string(ls, seminfo, sep);
+          return TK_STRING;
+        }
+        else if (sep == -1) return '[';
+        else luaX_lexerror(ls, "invalid long string delimiter", TK_STRING);
+      }
+      case '=': {
+        next(ls);
+        if (ls->current != '=') return '=';
+        else { next(ls); return TK_EQ; }
+      }
+      case '<': {
+        next(ls);
+        if (ls->current != '=') return '<';
+        else { next(ls); return TK_LE; }
+      }
+      case '>': {
+        next(ls);
+        if (ls->current != '=') return '>';
+        else { next(ls); return TK_GE; }
+      }
+      case '~': {
+        next(ls);
+        if (ls->current != '=') return '~';
+        else { next(ls); return TK_NE; }
+      }
+      case '"':
+      case '\'': {
+        read_string(ls, ls->current, seminfo);
+        return TK_STRING;
+      }
+      case '.': {
+        save_and_next(ls);
+        if (check_next(ls, ".")) {
+          if (check_next(ls, "."))
+            return TK_DOTS;   /* ... */
+          else return TK_CONCAT;   /* .. */
+        }
+        else if (!isdigit(ls->current)) return '.';
+        else {
+          read_numeral(ls, seminfo);
+          return TK_NUMBER;
+        }
+      }
+      case EOZ: {
+        return TK_EOS;
+      }
+      default: {
+        if (isspace(ls->current)) {
+          lua_assert(!currIsNewline(ls));
+          next(ls);
+          continue;
+        }
+        else if (isdigit(ls->current)) {
+          read_numeral(ls, seminfo);
+          return TK_NUMBER;
+        }
+        else if (isalpha(ls->current) || ls->current == '_') {
+          /* identifier or reserved word */
+          TString *ts;
+          do {
+            save_and_next(ls);
+          } while (isalnum(ls->current) || ls->current == '_');
+          ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
+                                  luaZ_bufflen(ls->buff));
+          if (ts->tsv.reserved > 0)  /* reserved word? */
+            return ts->tsv.reserved - 1 + FIRST_RESERVED;
+          else {
+            seminfo->ts = ts;
+            return TK_NAME;
+          }
+        }
+        else {
+          int c = ls->current;
+          next(ls);
+          return c;  /* single-char tokens (+ - / ...) */
+        }
+      }
+    }
+  }
+}
+
+
+void luaX_next (LexState *ls) {
+  ls->lastline = ls->linenumber;
+  if (ls->lookahead.token != TK_EOS) {  /* is there a look-ahead token? */
+    ls->t = ls->lookahead;  /* use this one */
+    ls->lookahead.token = TK_EOS;  /* and discharge it */
+  }
+  else
+    ls->t.token = llex(ls, &ls->t.seminfo);  /* read next token */
+}
+
+
+void luaX_lookahead (LexState *ls) {
+  lua_assert(ls->lookahead.token == TK_EOS);
+  ls->lookahead.token = llex(ls, &ls->lookahead.seminfo);
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/llex.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/llex.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/llex.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/llex.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,81 @@
+/*
+** $Id: llex.h,v 1.58.1.1 2007/12/27 13:02:25 roberto Exp $
+** Lexical Analyzer
+** See Copyright Notice in lua.h
+*/
+
+#ifndef llex_h
+#define llex_h
+
+#include "lobject.h"
+#include "lzio.h"
+
+
+#define FIRST_RESERVED	257
+
+/* maximum length of a reserved word */
+#define TOKEN_LEN	(sizeof("function")/sizeof(char))
+
+
+/*
+* WARNING: if you change the order of this enumeration,
+* grep "ORDER RESERVED"
+*/
+enum RESERVED {
+  /* terminal symbols denoted by reserved words */
+  TK_AND = FIRST_RESERVED, TK_BREAK,
+  TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION,
+  TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT,
+  TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE,
+  /* other terminal symbols */
+  TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_NUMBER,
+  TK_NAME, TK_STRING, TK_EOS
+};
+
+/* number of reserved words */
+#define NUM_RESERVED	(cast(int, TK_WHILE-FIRST_RESERVED+1))
+
+
+/* array with token `names' */
+LUAI_DATA const char *const luaX_tokens [];
+
+
+typedef union {
+  lua_Number r;
+  TString *ts;
+} SemInfo;  /* semantics information */
+
+
+typedef struct Token {
+  int token;
+  SemInfo seminfo;
+} Token;
+
+
+typedef struct LexState {
+  int current;  /* current character (charint) */
+  int linenumber;  /* input line counter */
+  int lastline;  /* line of last token `consumed' */
+  Token t;  /* current token */
+  Token lookahead;  /* look ahead token */
+  struct FuncState *fs;  /* `FuncState' is private to the parser */
+  struct lua_State *L;
+  ZIO *z;  /* input stream */
+  Mbuffer *buff;  /* buffer for tokens */
+  TString *source;  /* current source name */
+  char decpoint;  /* locale decimal point */
+} LexState;
+
+
+LUAI_FUNC void luaX_init (lua_State *L);
+LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z,
+                              TString *source);
+LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l);
+LUAI_FUNC void luaX_next (LexState *ls);
+LUAI_FUNC void luaX_lookahead (LexState *ls);
+LUAI_FUNC void luaX_lexerror (LexState *ls, const char *msg, int token);
+LUAI_FUNC void luaX_syntaxerror (LexState *ls, const char *s);
+LUAI_FUNC const char *luaX_token2str (LexState *ls, int token);
+
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/llimits.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/llimits.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/llimits.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/llimits.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,128 @@
+/*
+** $Id: llimits.h,v 1.69.1.1 2007/12/27 13:02:25 roberto Exp $
+** Limits, basic types, and some other `installation-dependent' definitions
+** See Copyright Notice in lua.h
+*/
+
+#ifndef llimits_h
+#define llimits_h
+
+
+#include <limits.h>
+#include <stddef.h>
+
+
+#include "lua.h"
+
+
+typedef LUAI_UINT32 lu_int32;
+
+typedef LUAI_UMEM lu_mem;
+
+typedef LUAI_MEM l_mem;
+
+
+
+/* chars used as small naturals (so that `char' is reserved for characters) */
+typedef unsigned char lu_byte;
+
+
+#define MAX_SIZET	((size_t)(~(size_t)0)-2)
+
+#define MAX_LUMEM	((lu_mem)(~(lu_mem)0)-2)
+
+
+#define MAX_INT (INT_MAX-2)  /* maximum value of an int (-2 for safety) */
+
+/*
+** conversion of pointer to integer
+** this is for hashing only; there is no problem if the integer
+** cannot hold the whole pointer value
+*/
+#define IntPoint(p)  ((unsigned int)(lu_mem)(p))
+
+
+
+/* type to ensure maximum alignment */
+typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;
+
+
+/* result of a `usual argument conversion' over lua_Number */
+typedef LUAI_UACNUMBER l_uacNumber;
+
+
+/* internal assertions for in-house debugging */
+#ifdef lua_assert
+
+#define check_exp(c,e)		(lua_assert(c), (e))
+#define api_check(l,e)		lua_assert(e)
+
+#else
+
+#define lua_assert(c)		((void)0)
+#define check_exp(c,e)		(e)
+#define api_check		luai_apicheck
+
+#endif
+
+
+#ifndef UNUSED
+#define UNUSED(x)	((void)(x))	/* to avoid warnings */
+#endif
+
+
+#ifndef cast
+#define cast(t, exp)	((t)(exp))
+#endif
+
+#define cast_byte(i)	cast(lu_byte, (i))
+#define cast_num(i)	cast(lua_Number, (i))
+#define cast_int(i)	cast(int, (i))
+
+
+
+/*
+** type for virtual-machine instructions
+** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)
+*/
+typedef lu_int32 Instruction;
+
+
+
+/* maximum stack for a Lua function */
+#define MAXSTACK	250
+
+
+
+/* minimum size for the string table (must be power of 2) */
+#ifndef MINSTRTABSIZE
+#define MINSTRTABSIZE	32
+#endif
+
+
+/* minimum size for string buffer */
+#ifndef LUA_MINBUFFER
+#define LUA_MINBUFFER	32
+#endif
+
+
+#ifndef lua_lock
+#define lua_lock(L)     ((void) 0) 
+#define lua_unlock(L)   ((void) 0)
+#endif
+
+#ifndef luai_threadyield
+#define luai_threadyield(L)     {lua_unlock(L); lua_lock(L);}
+#endif
+
+
+/*
+** macro to control inclusion of some hard tests on stack reallocation
+*/ 
+#ifndef HARDSTACKTESTS
+#define condhardstacktests(x)	((void)0)
+#else
+#define condhardstacktests(x)	x
+#endif
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/lmathlib.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lmathlib.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lmathlib.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lmathlib.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,263 @@
+/*
+** $Id: lmathlib.c,v 1.67.1.1 2007/12/27 13:02:25 roberto Exp $
+** Standard mathematical library
+** See Copyright Notice in lua.h
+*/
+
+
+#include <stdlib.h>
+#include <math.h>
+
+#define lmathlib_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lauxlib.h"
+#include "lualib.h"
+
+
+#undef PI
+#define PI (3.14159265358979323846)
+#define RADIANS_PER_DEGREE (PI/180.0)
+
+
+
+static int math_abs (lua_State *L) {
+  lua_pushnumber(L, fabs(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_sin (lua_State *L) {
+  lua_pushnumber(L, sin(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_sinh (lua_State *L) {
+  lua_pushnumber(L, sinh(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_cos (lua_State *L) {
+  lua_pushnumber(L, cos(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_cosh (lua_State *L) {
+  lua_pushnumber(L, cosh(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_tan (lua_State *L) {
+  lua_pushnumber(L, tan(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_tanh (lua_State *L) {
+  lua_pushnumber(L, tanh(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_asin (lua_State *L) {
+  lua_pushnumber(L, asin(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_acos (lua_State *L) {
+  lua_pushnumber(L, acos(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_atan (lua_State *L) {
+  lua_pushnumber(L, atan(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_atan2 (lua_State *L) {
+  lua_pushnumber(L, atan2(luaL_checknumber(L, 1), luaL_checknumber(L, 2)));
+  return 1;
+}
+
+static int math_ceil (lua_State *L) {
+  lua_pushnumber(L, ceil(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_floor (lua_State *L) {
+  lua_pushnumber(L, floor(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_fmod (lua_State *L) {
+  lua_pushnumber(L, fmod(luaL_checknumber(L, 1), luaL_checknumber(L, 2)));
+  return 1;
+}
+
+static int math_modf (lua_State *L) {
+  double ip;
+  double fp = modf(luaL_checknumber(L, 1), &ip);
+  lua_pushnumber(L, ip);
+  lua_pushnumber(L, fp);
+  return 2;
+}
+
+static int math_sqrt (lua_State *L) {
+  lua_pushnumber(L, sqrt(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_pow (lua_State *L) {
+  lua_pushnumber(L, pow(luaL_checknumber(L, 1), luaL_checknumber(L, 2)));
+  return 1;
+}
+
+static int math_log (lua_State *L) {
+  lua_pushnumber(L, log(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_log10 (lua_State *L) {
+  lua_pushnumber(L, log10(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_exp (lua_State *L) {
+  lua_pushnumber(L, exp(luaL_checknumber(L, 1)));
+  return 1;
+}
+
+static int math_deg (lua_State *L) {
+  lua_pushnumber(L, luaL_checknumber(L, 1)/RADIANS_PER_DEGREE);
+  return 1;
+}
+
+static int math_rad (lua_State *L) {
+  lua_pushnumber(L, luaL_checknumber(L, 1)*RADIANS_PER_DEGREE);
+  return 1;
+}
+
+static int math_frexp (lua_State *L) {
+  int e;
+  lua_pushnumber(L, frexp(luaL_checknumber(L, 1), &e));
+  lua_pushinteger(L, e);
+  return 2;
+}
+
+static int math_ldexp (lua_State *L) {
+  lua_pushnumber(L, ldexp(luaL_checknumber(L, 1), luaL_checkint(L, 2)));
+  return 1;
+}
+
+
+
+static int math_min (lua_State *L) {
+  int n = lua_gettop(L);  /* number of arguments */
+  lua_Number dmin = luaL_checknumber(L, 1);
+  int i;
+  for (i=2; i<=n; i++) {
+    lua_Number d = luaL_checknumber(L, i);
+    if (d < dmin)
+      dmin = d;
+  }
+  lua_pushnumber(L, dmin);
+  return 1;
+}
+
+
+static int math_max (lua_State *L) {
+  int n = lua_gettop(L);  /* number of arguments */
+  lua_Number dmax = luaL_checknumber(L, 1);
+  int i;
+  for (i=2; i<=n; i++) {
+    lua_Number d = luaL_checknumber(L, i);
+    if (d > dmax)
+      dmax = d;
+  }
+  lua_pushnumber(L, dmax);
+  return 1;
+}
+
+
+static int math_random (lua_State *L) {
+  /* the `%' avoids the (rare) case of r==1, and is needed also because on
+     some systems (SunOS!) `rand()' may return a value larger than RAND_MAX */
+  lua_Number r = (lua_Number)(rand()%RAND_MAX) / (lua_Number)RAND_MAX;
+  switch (lua_gettop(L)) {  /* check number of arguments */
+    case 0: {  /* no arguments */
+      lua_pushnumber(L, r);  /* Number between 0 and 1 */
+      break;
+    }
+    case 1: {  /* only upper limit */
+      int u = luaL_checkint(L, 1);
+      luaL_argcheck(L, 1<=u, 1, "interval is empty");
+      lua_pushnumber(L, floor(r*u)+1);  /* int between 1 and `u' */
+      break;
+    }
+    case 2: {  /* lower and upper limits */
+      int l = luaL_checkint(L, 1);
+      int u = luaL_checkint(L, 2);
+      luaL_argcheck(L, l<=u, 2, "interval is empty");
+      lua_pushnumber(L, floor(r*(u-l+1))+l);  /* int between `l' and `u' */
+      break;
+    }
+    default: return luaL_error(L, "wrong number of arguments");
+  }
+  return 1;
+}
+
+
+static int math_randomseed (lua_State *L) {
+  srand(luaL_checkint(L, 1));
+  return 0;
+}
+
+
+static const luaL_Reg mathlib[] = {
+  {"abs",   math_abs},
+  {"acos",  math_acos},
+  {"asin",  math_asin},
+  {"atan2", math_atan2},
+  {"atan",  math_atan},
+  {"ceil",  math_ceil},
+  {"cosh",   math_cosh},
+  {"cos",   math_cos},
+  {"deg",   math_deg},
+  {"exp",   math_exp},
+  {"floor", math_floor},
+  {"fmod",   math_fmod},
+  {"frexp", math_frexp},
+  {"ldexp", math_ldexp},
+  {"log10", math_log10},
+  {"log",   math_log},
+  {"max",   math_max},
+  {"min",   math_min},
+  {"modf",   math_modf},
+  {"pow",   math_pow},
+  {"rad",   math_rad},
+  {"random",     math_random},
+  {"randomseed", math_randomseed},
+  {"sinh",   math_sinh},
+  {"sin",   math_sin},
+  {"sqrt",  math_sqrt},
+  {"tanh",   math_tanh},
+  {"tan",   math_tan},
+  {NULL, NULL}
+};
+
+
+/*
+** Open math library
+*/
+LUALIB_API int luaopen_math (lua_State *L) {
+  luaL_register(L, LUA_MATHLIBNAME, mathlib);
+  lua_pushnumber(L, PI);
+  lua_setfield(L, -2, "pi");
+  lua_pushnumber(L, HUGE_VAL);
+  lua_setfield(L, -2, "huge");
+#if defined(LUA_COMPAT_MOD)
+  lua_getfield(L, -1, "fmod");
+  lua_setfield(L, -2, "mod");
+#endif
+  return 1;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lmem.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lmem.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lmem.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lmem.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,86 @@
+/*
+** $Id: lmem.c,v 1.70.1.1 2007/12/27 13:02:25 roberto Exp $
+** Interface to Memory Manager
+** See Copyright Notice in lua.h
+*/
+
+
+#include <stddef.h>
+
+#define lmem_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "ldebug.h"
+#include "ldo.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lstate.h"
+
+
+
+/*
+** About the realloc function:
+** void * frealloc (void *ud, void *ptr, size_t osize, size_t nsize);
+** (`osize' is the old size, `nsize' is the new size)
+**
+** Lua ensures that (ptr == NULL) iff (osize == 0).
+**
+** * frealloc(ud, NULL, 0, x) creates a new block of size `x'
+**
+** * frealloc(ud, p, x, 0) frees the block `p'
+** (in this specific case, frealloc must return NULL).
+** particularly, frealloc(ud, NULL, 0, 0) does nothing
+** (which is equivalent to free(NULL) in ANSI C)
+**
+** frealloc returns NULL if it cannot create or reallocate the area
+** (any reallocation to an equal or smaller size cannot fail!)
+*/
+
+
+
+#define MINSIZEARRAY	4
+
+
+void *luaM_growaux_ (lua_State *L, void *block, int *size, size_t size_elems,
+                     int limit, const char *errormsg) {
+  void *newblock;
+  int newsize;
+  if (*size >= limit/2) {  /* cannot double it? */
+    if (*size >= limit)  /* cannot grow even a little? */
+      luaG_runerror(L, errormsg);
+    newsize = limit;  /* still have at least one free place */
+  }
+  else {
+    newsize = (*size)*2;
+    if (newsize < MINSIZEARRAY)
+      newsize = MINSIZEARRAY;  /* minimum size */
+  }
+  newblock = luaM_reallocv(L, block, *size, newsize, size_elems);
+  *size = newsize;  /* update only when everything else is OK */
+  return newblock;
+}
+
+
+void *luaM_toobig (lua_State *L) {
+  luaG_runerror(L, "memory allocation error: block too big");
+  return NULL;  /* to avoid warnings */
+}
+
+
+
+/*
+** generic allocation routine.
+*/
+void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) {
+  global_State *g = G(L);
+  lua_assert((osize == 0) == (block == NULL));
+  block = (*g->frealloc)(g->ud, block, osize, nsize);
+  if (block == NULL && nsize > 0)
+    luaD_throw(L, LUA_ERRMEM);
+  lua_assert((nsize == 0) == (block == NULL));
+  g->totalbytes = (g->totalbytes - osize) + nsize;
+  return block;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lmem.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lmem.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lmem.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lmem.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,49 @@
+/*
+** $Id: lmem.h,v 1.31.1.1 2007/12/27 13:02:25 roberto Exp $
+** Interface to Memory Manager
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lmem_h
+#define lmem_h
+
+
+#include <stddef.h>
+
+#include "llimits.h"
+#include "lua.h"
+
+#define MEMERRMSG	"not enough memory"
+
+
+#define luaM_reallocv(L,b,on,n,e) \
+	((cast(size_t, (n)+1) <= MAX_SIZET/(e)) ?  /* +1 to avoid warnings */ \
+		luaM_realloc_(L, (b), (on)*(e), (n)*(e)) : \
+		luaM_toobig(L))
+
+#define luaM_freemem(L, b, s)	luaM_realloc_(L, (b), (s), 0)
+#define luaM_free(L, b)		luaM_realloc_(L, (b), sizeof(*(b)), 0)
+#define luaM_freearray(L, b, n, t)   luaM_reallocv(L, (b), n, 0, sizeof(t))
+
+#define luaM_malloc(L,t)	luaM_realloc_(L, NULL, 0, (t))
+#define luaM_new(L,t)		cast(t *, luaM_malloc(L, sizeof(t)))
+#define luaM_newvector(L,n,t) \
+		cast(t *, luaM_reallocv(L, NULL, 0, n, sizeof(t)))
+
+#define luaM_growvector(L,v,nelems,size,t,limit,e) \
+          if ((nelems)+1 > (size)) \
+            ((v)=cast(t *, luaM_growaux_(L,v,&(size),sizeof(t),limit,e)))
+
+#define luaM_reallocvector(L, v,oldn,n,t) \
+   ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t))))
+
+
+LUAI_FUNC void *luaM_realloc_ (lua_State *L, void *block, size_t oldsize,
+                                                          size_t size);
+LUAI_FUNC void *luaM_toobig (lua_State *L);
+LUAI_FUNC void *luaM_growaux_ (lua_State *L, void *block, int *size,
+                               size_t size_elem, int limit,
+                               const char *errormsg);
+
+#endif
+

Added: test-suite/trunk/MultiSource/Applications/lua/loadlib.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/loadlib.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/loadlib.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/loadlib.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,666 @@
+/*
+** $Id: loadlib.c,v 1.52.1.3 2008/08/06 13:29:28 roberto Exp $
+** Dynamic library loader for Lua
+** See Copyright Notice in lua.h
+**
+** This module contains an implementation of loadlib for Unix systems
+** that have dlfcn, an implementation for Darwin (Mac OS X), an
+** implementation for Windows, and a stub for other systems.
+*/
+
+
+#include <stdlib.h>
+#include <string.h>
+
+
+#define loadlib_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lauxlib.h"
+#include "lualib.h"
+
+
+/* prefix for open functions in C libraries */
+#define LUA_POF		"luaopen_"
+
+/* separator for open functions in C libraries */
+#define LUA_OFSEP	"_"
+
+
+#define LIBPREFIX	"LOADLIB: "
+
+#define POF		LUA_POF
+#define LIB_FAIL	"open"
+
+
+/* error codes for ll_loadfunc */
+#define ERRLIB		1
+#define ERRFUNC		2
+
+#define setprogdir(L)		((void)0)
+
+
+static void ll_unloadlib (void *lib);
+static void *ll_load (lua_State *L, const char *path);
+static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym);
+
+
+
+#if defined(LUA_DL_DLOPEN)
+/*
+** {========================================================================
+** This is an implementation of loadlib based on the dlfcn interface.
+** The dlfcn interface is available in Linux, SunOS, Solaris, IRIX, FreeBSD,
+** NetBSD, AIX 4.2, HPUX 11, and  probably most other Unix flavors, at least
+** as an emulation layer on top of native functions.
+** =========================================================================
+*/
+
+#include <dlfcn.h>
+
+static void ll_unloadlib (void *lib) {
+  dlclose(lib);
+}
+
+
+static void *ll_load (lua_State *L, const char *path) {
+  void *lib = dlopen(path, RTLD_NOW);
+  if (lib == NULL) lua_pushstring(L, dlerror());
+  return lib;
+}
+
+
+static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) {
+  lua_CFunction f = (lua_CFunction)dlsym(lib, sym);
+  if (f == NULL) lua_pushstring(L, dlerror());
+  return f;
+}
+
+/* }====================================================== */
+
+
+
+#elif defined(LUA_DL_DLL)
+/*
+** {======================================================================
+** This is an implementation of loadlib for Windows using native functions.
+** =======================================================================
+*/
+
+#include <windows.h>
+
+
+#undef setprogdir
+
+static void setprogdir (lua_State *L) {
+  char buff[MAX_PATH + 1];
+  char *lb;
+  DWORD nsize = sizeof(buff)/sizeof(char);
+  DWORD n = GetModuleFileNameA(NULL, buff, nsize);
+  if (n == 0 || n == nsize || (lb = strrchr(buff, '\\')) == NULL)
+    luaL_error(L, "unable to get ModuleFileName");
+  else {
+    *lb = '\0';
+    luaL_gsub(L, lua_tostring(L, -1), LUA_EXECDIR, buff);
+    lua_remove(L, -2);  /* remove original string */
+  }
+}
+
+
+static void pusherror (lua_State *L) {
+  int error = GetLastError();
+  char buffer[128];
+  if (FormatMessageA(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM,
+      NULL, error, 0, buffer, sizeof(buffer), NULL))
+    lua_pushstring(L, buffer);
+  else
+    lua_pushfstring(L, "system error %d\n", error);
+}
+
+static void ll_unloadlib (void *lib) {
+  FreeLibrary((HINSTANCE)lib);
+}
+
+
+static void *ll_load (lua_State *L, const char *path) {
+  HINSTANCE lib = LoadLibraryA(path);
+  if (lib == NULL) pusherror(L);
+  return lib;
+}
+
+
+static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) {
+  lua_CFunction f = (lua_CFunction)GetProcAddress((HINSTANCE)lib, sym);
+  if (f == NULL) pusherror(L);
+  return f;
+}
+
+/* }====================================================== */
+
+
+
+#elif defined(LUA_DL_DYLD)
+/*
+** {======================================================================
+** Native Mac OS X / Darwin Implementation
+** =======================================================================
+*/
+
+#include <mach-o/dyld.h>
+
+
+/* Mac appends a `_' before C function names */
+#undef POF
+#define POF	"_" LUA_POF
+
+
+static void pusherror (lua_State *L) {
+  const char *err_str;
+  const char *err_file;
+  NSLinkEditErrors err;
+  int err_num;
+  NSLinkEditError(&err, &err_num, &err_file, &err_str);
+  lua_pushstring(L, err_str);
+}
+
+
+static const char *errorfromcode (NSObjectFileImageReturnCode ret) {
+  switch (ret) {
+    case NSObjectFileImageInappropriateFile:
+      return "file is not a bundle";
+    case NSObjectFileImageArch:
+      return "library is for wrong CPU type";
+    case NSObjectFileImageFormat:
+      return "bad format";
+    case NSObjectFileImageAccess:
+      return "cannot access file";
+    case NSObjectFileImageFailure:
+    default:
+      return "unable to load library";
+  }
+}
+
+
+static void ll_unloadlib (void *lib) {
+  NSUnLinkModule((NSModule)lib, NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES);
+}
+
+
+static void *ll_load (lua_State *L, const char *path) {
+  NSObjectFileImage img;
+  NSObjectFileImageReturnCode ret;
+  /* this would be a rare case, but prevents crashing if it happens */
+  if(!_dyld_present()) {
+    lua_pushliteral(L, "dyld not present");
+    return NULL;
+  }
+  ret = NSCreateObjectFileImageFromFile(path, &img);
+  if (ret == NSObjectFileImageSuccess) {
+    NSModule mod = NSLinkModule(img, path, NSLINKMODULE_OPTION_PRIVATE |
+                       NSLINKMODULE_OPTION_RETURN_ON_ERROR);
+    NSDestroyObjectFileImage(img);
+    if (mod == NULL) pusherror(L);
+    return mod;
+  }
+  lua_pushstring(L, errorfromcode(ret));
+  return NULL;
+}
+
+
+static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) {
+  NSSymbol nss = NSLookupSymbolInModule((NSModule)lib, sym);
+  if (nss == NULL) {
+    lua_pushfstring(L, "symbol " LUA_QS " not found", sym);
+    return NULL;
+  }
+  return (lua_CFunction)NSAddressOfSymbol(nss);
+}
+
+/* }====================================================== */
+
+
+
+#else
+/*
+** {======================================================
+** Fallback for other systems
+** =======================================================
+*/
+
+#undef LIB_FAIL
+#define LIB_FAIL	"absent"
+
+
+#define DLMSG	"dynamic libraries not enabled; check your Lua installation"
+
+
+static void ll_unloadlib (void *lib) {
+  (void)lib;  /* to avoid warnings */
+}
+
+
+static void *ll_load (lua_State *L, const char *path) {
+  (void)path;  /* to avoid warnings */
+  lua_pushliteral(L, DLMSG);
+  return NULL;
+}
+
+
+static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) {
+  (void)lib; (void)sym;  /* to avoid warnings */
+  lua_pushliteral(L, DLMSG);
+  return NULL;
+}
+
+/* }====================================================== */
+#endif
+
+
+
+static void **ll_register (lua_State *L, const char *path) {
+  void **plib;
+  lua_pushfstring(L, "%s%s", LIBPREFIX, path);
+  lua_gettable(L, LUA_REGISTRYINDEX);  /* check library in registry? */
+  if (!lua_isnil(L, -1))  /* is there an entry? */
+    plib = (void **)lua_touserdata(L, -1);
+  else {  /* no entry yet; create one */
+    lua_pop(L, 1);
+    plib = (void **)lua_newuserdata(L, sizeof(const void *));
+    *plib = NULL;
+    luaL_getmetatable(L, "_LOADLIB");
+    lua_setmetatable(L, -2);
+    lua_pushfstring(L, "%s%s", LIBPREFIX, path);
+    lua_pushvalue(L, -2);
+    lua_settable(L, LUA_REGISTRYINDEX);
+  }
+  return plib;
+}
+
+
+/*
+** __gc tag method: calls library's `ll_unloadlib' function with the lib
+** handle
+*/
+static int gctm (lua_State *L) {
+  void **lib = (void **)luaL_checkudata(L, 1, "_LOADLIB");
+  if (*lib) ll_unloadlib(*lib);
+  *lib = NULL;  /* mark library as closed */
+  return 0;
+}
+
+
+static int ll_loadfunc (lua_State *L, const char *path, const char *sym) {
+  void **reg = ll_register(L, path);
+  if (*reg == NULL) *reg = ll_load(L, path);
+  if (*reg == NULL)
+    return ERRLIB;  /* unable to load library */
+  else {
+    lua_CFunction f = ll_sym(L, *reg, sym);
+    if (f == NULL)
+      return ERRFUNC;  /* unable to find function */
+    lua_pushcfunction(L, f);
+    return 0;  /* return function */
+  }
+}
+
+
+static int ll_loadlib (lua_State *L) {
+  const char *path = luaL_checkstring(L, 1);
+  const char *init = luaL_checkstring(L, 2);
+  int stat = ll_loadfunc(L, path, init);
+  if (stat == 0)  /* no errors? */
+    return 1;  /* return the loaded function */
+  else {  /* error; error message is on stack top */
+    lua_pushnil(L);
+    lua_insert(L, -2);
+    lua_pushstring(L, (stat == ERRLIB) ?  LIB_FAIL : "init");
+    return 3;  /* return nil, error message, and where */
+  }
+}
+
+
+
+/*
+** {======================================================
+** 'require' function
+** =======================================================
+*/
+
+
+static int readable (const char *filename) {
+  FILE *f = fopen(filename, "r");  /* try to open file */
+  if (f == NULL) return 0;  /* open failed */
+  fclose(f);
+  return 1;
+}
+
+
+static const char *pushnexttemplate (lua_State *L, const char *path) {
+  const char *l;
+  while (*path == *LUA_PATHSEP) path++;  /* skip separators */
+  if (*path == '\0') return NULL;  /* no more templates */
+  l = strchr(path, *LUA_PATHSEP);  /* find next separator */
+  if (l == NULL) l = path + strlen(path);
+  lua_pushlstring(L, path, l - path);  /* template */
+  return l;
+}
+
+
+static const char *findfile (lua_State *L, const char *name,
+                                           const char *pname) {
+  const char *path;
+  name = luaL_gsub(L, name, ".", LUA_DIRSEP);
+  lua_getfield(L, LUA_ENVIRONINDEX, pname);
+  path = lua_tostring(L, -1);
+  if (path == NULL)
+    luaL_error(L, LUA_QL("package.%s") " must be a string", pname);
+  lua_pushliteral(L, "");  /* error accumulator */
+  while ((path = pushnexttemplate(L, path)) != NULL) {
+    const char *filename;
+    filename = luaL_gsub(L, lua_tostring(L, -1), LUA_PATH_MARK, name);
+    lua_remove(L, -2);  /* remove path template */
+    if (readable(filename))  /* does file exist and is readable? */
+      return filename;  /* return that file name */
+    lua_pushfstring(L, "\n\tno file " LUA_QS, filename);
+    lua_remove(L, -2);  /* remove file name */
+    lua_concat(L, 2);  /* add entry to possible error message */
+  }
+  return NULL;  /* not found */
+}
+
+
+static void loaderror (lua_State *L, const char *filename) {
+  luaL_error(L, "error loading module " LUA_QS " from file " LUA_QS ":\n\t%s",
+                lua_tostring(L, 1), filename, lua_tostring(L, -1));
+}
+
+
+static int loader_Lua (lua_State *L) {
+  const char *filename;
+  const char *name = luaL_checkstring(L, 1);
+  filename = findfile(L, name, "path");
+  if (filename == NULL) return 1;  /* library not found in this path */
+  if (luaL_loadfile(L, filename) != 0)
+    loaderror(L, filename);
+  return 1;  /* library loaded successfully */
+}
+
+
+static const char *mkfuncname (lua_State *L, const char *modname) {
+  const char *funcname;
+  const char *mark = strchr(modname, *LUA_IGMARK);
+  if (mark) modname = mark + 1;
+  funcname = luaL_gsub(L, modname, ".", LUA_OFSEP);
+  funcname = lua_pushfstring(L, POF"%s", funcname);
+  lua_remove(L, -2);  /* remove 'gsub' result */
+  return funcname;
+}
+
+
+static int loader_C (lua_State *L) {
+  const char *funcname;
+  const char *name = luaL_checkstring(L, 1);
+  const char *filename = findfile(L, name, "cpath");
+  if (filename == NULL) return 1;  /* library not found in this path */
+  funcname = mkfuncname(L, name);
+  if (ll_loadfunc(L, filename, funcname) != 0)
+    loaderror(L, filename);
+  return 1;  /* library loaded successfully */
+}
+
+
+static int loader_Croot (lua_State *L) {
+  const char *funcname;
+  const char *filename;
+  const char *name = luaL_checkstring(L, 1);
+  const char *p = strchr(name, '.');
+  int stat;
+  if (p == NULL) return 0;  /* is root */
+  lua_pushlstring(L, name, p - name);
+  filename = findfile(L, lua_tostring(L, -1), "cpath");
+  if (filename == NULL) return 1;  /* root not found */
+  funcname = mkfuncname(L, name);
+  if ((stat = ll_loadfunc(L, filename, funcname)) != 0) {
+    if (stat != ERRFUNC) loaderror(L, filename);  /* real error */
+    lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS,
+                       name, filename);
+    return 1;  /* function not found */
+  }
+  return 1;
+}
+
+
+static int loader_preload (lua_State *L) {
+  const char *name = luaL_checkstring(L, 1);
+  lua_getfield(L, LUA_ENVIRONINDEX, "preload");
+  if (!lua_istable(L, -1))
+    luaL_error(L, LUA_QL("package.preload") " must be a table");
+  lua_getfield(L, -1, name);
+  if (lua_isnil(L, -1))  /* not found? */
+    lua_pushfstring(L, "\n\tno field package.preload['%s']", name);
+  return 1;
+}
+
+
+static const int sentinel_ = 0;
+#define sentinel	((void *)&sentinel_)
+
+
+static int ll_require (lua_State *L) {
+  const char *name = luaL_checkstring(L, 1);
+  int i;
+  lua_settop(L, 1);  /* _LOADED table will be at index 2 */
+  lua_getfield(L, LUA_REGISTRYINDEX, "_LOADED");
+  lua_getfield(L, 2, name);
+  if (lua_toboolean(L, -1)) {  /* is it there? */
+    if (lua_touserdata(L, -1) == sentinel)  /* check loops */
+      luaL_error(L, "loop or previous error loading module " LUA_QS, name);
+    return 1;  /* package is already loaded */
+  }
+  /* else must load it; iterate over available loaders */
+  lua_getfield(L, LUA_ENVIRONINDEX, "loaders");
+  if (!lua_istable(L, -1))
+    luaL_error(L, LUA_QL("package.loaders") " must be a table");
+  lua_pushliteral(L, "");  /* error message accumulator */
+  for (i=1; ; i++) {
+    lua_rawgeti(L, -2, i);  /* get a loader */
+    if (lua_isnil(L, -1))
+      luaL_error(L, "module " LUA_QS " not found:%s",
+                    name, lua_tostring(L, -2));
+    lua_pushstring(L, name);
+    lua_call(L, 1, 1);  /* call it */
+    if (lua_isfunction(L, -1))  /* did it find module? */
+      break;  /* module loaded successfully */
+    else if (lua_isstring(L, -1))  /* loader returned error message? */
+      lua_concat(L, 2);  /* accumulate it */
+    else
+      lua_pop(L, 1);
+  }
+  lua_pushlightuserdata(L, sentinel);
+  lua_setfield(L, 2, name);  /* _LOADED[name] = sentinel */
+  lua_pushstring(L, name);  /* pass name as argument to module */
+  lua_call(L, 1, 1);  /* run loaded module */
+  if (!lua_isnil(L, -1))  /* non-nil return? */
+    lua_setfield(L, 2, name);  /* _LOADED[name] = returned value */
+  lua_getfield(L, 2, name);
+  if (lua_touserdata(L, -1) == sentinel) {   /* module did not set a value? */
+    lua_pushboolean(L, 1);  /* use true as result */
+    lua_pushvalue(L, -1);  /* extra copy to be returned */
+    lua_setfield(L, 2, name);  /* _LOADED[name] = true */
+  }
+  return 1;
+}
+
+/* }====================================================== */
+
+
+
+/*
+** {======================================================
+** 'module' function
+** =======================================================
+*/
+  
+
+static void setfenv (lua_State *L) {
+  lua_Debug ar;
+  if (lua_getstack(L, 1, &ar) == 0 ||
+      lua_getinfo(L, "f", &ar) == 0 ||  /* get calling function */
+      lua_iscfunction(L, -1))
+    luaL_error(L, LUA_QL("module") " not called from a Lua function");
+  lua_pushvalue(L, -2);
+  lua_setfenv(L, -2);
+  lua_pop(L, 1);
+}
+
+
+static void dooptions (lua_State *L, int n) {
+  int i;
+  for (i = 2; i <= n; i++) {
+    lua_pushvalue(L, i);  /* get option (a function) */
+    lua_pushvalue(L, -2);  /* module */
+    lua_call(L, 1, 0);
+  }
+}
+
+
+static void modinit (lua_State *L, const char *modname) {
+  const char *dot;
+  lua_pushvalue(L, -1);
+  lua_setfield(L, -2, "_M");  /* module._M = module */
+  lua_pushstring(L, modname);
+  lua_setfield(L, -2, "_NAME");
+  dot = strrchr(modname, '.');  /* look for last dot in module name */
+  if (dot == NULL) dot = modname;
+  else dot++;
+  /* set _PACKAGE as package name (full module name minus last part) */
+  lua_pushlstring(L, modname, dot - modname);
+  lua_setfield(L, -2, "_PACKAGE");
+}
+
+
+static int ll_module (lua_State *L) {
+  const char *modname = luaL_checkstring(L, 1);
+  int loaded = lua_gettop(L) + 1;  /* index of _LOADED table */
+  lua_getfield(L, LUA_REGISTRYINDEX, "_LOADED");
+  lua_getfield(L, loaded, modname);  /* get _LOADED[modname] */
+  if (!lua_istable(L, -1)) {  /* not found? */
+    lua_pop(L, 1);  /* remove previous result */
+    /* try global variable (and create one if it does not exist) */
+    if (luaL_findtable(L, LUA_GLOBALSINDEX, modname, 1) != NULL)
+      return luaL_error(L, "name conflict for module " LUA_QS, modname);
+    lua_pushvalue(L, -1);
+    lua_setfield(L, loaded, modname);  /* _LOADED[modname] = new table */
+  }
+  /* check whether table already has a _NAME field */
+  lua_getfield(L, -1, "_NAME");
+  if (!lua_isnil(L, -1))  /* is table an initialized module? */
+    lua_pop(L, 1);
+  else {  /* no; initialize it */
+    lua_pop(L, 1);
+    modinit(L, modname);
+  }
+  lua_pushvalue(L, -1);
+  setfenv(L);
+  dooptions(L, loaded - 1);
+  return 0;
+}
+
+
+static int ll_seeall (lua_State *L) {
+  luaL_checktype(L, 1, LUA_TTABLE);
+  if (!lua_getmetatable(L, 1)) {
+    lua_createtable(L, 0, 1); /* create new metatable */
+    lua_pushvalue(L, -1);
+    lua_setmetatable(L, 1);
+  }
+  lua_pushvalue(L, LUA_GLOBALSINDEX);
+  lua_setfield(L, -2, "__index");  /* mt.__index = _G */
+  return 0;
+}
+
+
+/* }====================================================== */
+
+
+
+/* auxiliary mark (for internal use) */
+#define AUXMARK		"\1"
+
+static void setpath (lua_State *L, const char *fieldname, const char *envname,
+                                   const char *def) {
+  const char *path = getenv(envname);
+  if (path == NULL)  /* no environment variable? */
+    lua_pushstring(L, def);  /* use default */
+  else {
+    /* replace ";;" by ";AUXMARK;" and then AUXMARK by default path */
+    path = luaL_gsub(L, path, LUA_PATHSEP LUA_PATHSEP,
+                              LUA_PATHSEP AUXMARK LUA_PATHSEP);
+    luaL_gsub(L, path, AUXMARK, def);
+    lua_remove(L, -2);
+  }
+  setprogdir(L);
+  lua_setfield(L, -2, fieldname);
+}
+
+
+static const luaL_Reg pk_funcs[] = {
+  {"loadlib", ll_loadlib},
+  {"seeall", ll_seeall},
+  {NULL, NULL}
+};
+
+
+static const luaL_Reg ll_funcs[] = {
+  {"module", ll_module},
+  {"require", ll_require},
+  {NULL, NULL}
+};
+
+
+static const lua_CFunction loaders[] =
+  {loader_preload, loader_Lua, loader_C, loader_Croot, NULL};
+
+
+LUALIB_API int luaopen_package (lua_State *L) {
+  int i;
+  /* create new type _LOADLIB */
+  luaL_newmetatable(L, "_LOADLIB");
+  lua_pushcfunction(L, gctm);
+  lua_setfield(L, -2, "__gc");
+  /* create `package' table */
+  luaL_register(L, LUA_LOADLIBNAME, pk_funcs);
+#if defined(LUA_COMPAT_LOADLIB) 
+  lua_getfield(L, -1, "loadlib");
+  lua_setfield(L, LUA_GLOBALSINDEX, "loadlib");
+#endif
+  lua_pushvalue(L, -1);
+  lua_replace(L, LUA_ENVIRONINDEX);
+  /* create `loaders' table */
+  lua_createtable(L, 0, sizeof(loaders)/sizeof(loaders[0]) - 1);
+  /* fill it with pre-defined loaders */
+  for (i=0; loaders[i] != NULL; i++) {
+    lua_pushcfunction(L, loaders[i]);
+    lua_rawseti(L, -2, i+1);
+  }
+  lua_setfield(L, -2, "loaders");  /* put it in field `loaders' */
+  setpath(L, "path", LUA_PATH, LUA_PATH_DEFAULT);  /* set field `path' */
+  setpath(L, "cpath", LUA_CPATH, LUA_CPATH_DEFAULT); /* set field `cpath' */
+  /* store config information */
+  lua_pushliteral(L, LUA_DIRSEP "\n" LUA_PATHSEP "\n" LUA_PATH_MARK "\n"
+                     LUA_EXECDIR "\n" LUA_IGMARK);
+  lua_setfield(L, -2, "config");
+  /* set field `loaded' */
+  luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 2);
+  lua_setfield(L, -2, "loaded");
+  /* set field `preload' */
+  lua_newtable(L);
+  lua_setfield(L, -2, "preload");
+  lua_pushvalue(L, LUA_GLOBALSINDEX);
+  luaL_register(L, NULL, ll_funcs);  /* open lib into global table */
+  lua_pop(L, 1);
+  return 1;  /* return 'package' table */
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lobject.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lobject.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lobject.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lobject.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,214 @@
+/*
+** $Id: lobject.c,v 2.22.1.1 2007/12/27 13:02:25 roberto Exp $
+** Some generic functions over Lua objects
+** See Copyright Notice in lua.h
+*/
+
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define lobject_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "ldo.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "lvm.h"
+
+
+
+const TValue luaO_nilobject_ = {{NULL}, LUA_TNIL};
+
+
+/*
+** converts an integer to a "floating point byte", represented as
+** (eeeeexxx), where the real value is (1xxx) * 2^(eeeee - 1) if
+** eeeee != 0 and (xxx) otherwise.
+*/
+int luaO_int2fb (unsigned int x) {
+  int e = 0;  /* expoent */
+  while (x >= 16) {
+    x = (x+1) >> 1;
+    e++;
+  }
+  if (x < 8) return x;
+  else return ((e+1) << 3) | (cast_int(x) - 8);
+}
+
+
+/* converts back */
+int luaO_fb2int (int x) {
+  int e = (x >> 3) & 31;
+  if (e == 0) return x;
+  else return ((x & 7)+8) << (e - 1);
+}
+
+
+int luaO_log2 (unsigned int x) {
+  static const lu_byte log_2[256] = {
+    0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+    6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+    7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+    7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+    8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+    8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+    8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+    8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
+  };
+  int l = -1;
+  while (x >= 256) { l += 8; x >>= 8; }
+  return l + log_2[x];
+
+}
+
+
+int luaO_rawequalObj (const TValue *t1, const TValue *t2) {
+  if (ttype(t1) != ttype(t2)) return 0;
+  else switch (ttype(t1)) {
+    case LUA_TNIL:
+      return 1;
+    case LUA_TNUMBER:
+      return luai_numeq(nvalue(t1), nvalue(t2));
+    case LUA_TBOOLEAN:
+      return bvalue(t1) == bvalue(t2);  /* boolean true must be 1 !! */
+    case LUA_TLIGHTUSERDATA:
+      return pvalue(t1) == pvalue(t2);
+    default:
+      lua_assert(iscollectable(t1));
+      return gcvalue(t1) == gcvalue(t2);
+  }
+}
+
+
+int luaO_str2d (const char *s, lua_Number *result) {
+  char *endptr;
+  *result = lua_str2number(s, &endptr);
+  if (endptr == s) return 0;  /* conversion failed */
+  if (*endptr == 'x' || *endptr == 'X')  /* maybe an hexadecimal constant? */
+    *result = cast_num(strtoul(s, &endptr, 16));
+  if (*endptr == '\0') return 1;  /* most common case */
+  while (isspace(cast(unsigned char, *endptr))) endptr++;
+  if (*endptr != '\0') return 0;  /* invalid trailing characters? */
+  return 1;
+}
+
+
+
+static void pushstr (lua_State *L, const char *str) {
+  setsvalue2s(L, L->top, luaS_new(L, str));
+  incr_top(L);
+}
+
+
+/* this function handles only `%d', `%c', %f, %p, and `%s' formats */
+const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) {
+  int n = 1;
+  pushstr(L, "");
+  for (;;) {
+    const char *e = strchr(fmt, '%');
+    if (e == NULL) break;
+    setsvalue2s(L, L->top, luaS_newlstr(L, fmt, e-fmt));
+    incr_top(L);
+    switch (*(e+1)) {
+      case 's': {
+        const char *s = va_arg(argp, char *);
+        if (s == NULL) s = "(null)";
+        pushstr(L, s);
+        break;
+      }
+      case 'c': {
+        char buff[2];
+        buff[0] = cast(char, va_arg(argp, int));
+        buff[1] = '\0';
+        pushstr(L, buff);
+        break;
+      }
+      case 'd': {
+        setnvalue(L->top, cast_num(va_arg(argp, int)));
+        incr_top(L);
+        break;
+      }
+      case 'f': {
+        setnvalue(L->top, cast_num(va_arg(argp, l_uacNumber)));
+        incr_top(L);
+        break;
+      }
+      case 'p': {
+        char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */
+        sprintf(buff, "%p", va_arg(argp, void *));
+        pushstr(L, buff);
+        break;
+      }
+      case '%': {
+        pushstr(L, "%");
+        break;
+      }
+      default: {
+        char buff[3];
+        buff[0] = '%';
+        buff[1] = *(e+1);
+        buff[2] = '\0';
+        pushstr(L, buff);
+        break;
+      }
+    }
+    n += 2;
+    fmt = e+2;
+  }
+  pushstr(L, fmt);
+  luaV_concat(L, n+1, cast_int(L->top - L->base) - 1);
+  L->top -= n;
+  return svalue(L->top - 1);
+}
+
+
+const char *luaO_pushfstring (lua_State *L, const char *fmt, ...) {
+  const char *msg;
+  va_list argp;
+  va_start(argp, fmt);
+  msg = luaO_pushvfstring(L, fmt, argp);
+  va_end(argp);
+  return msg;
+}
+
+
+void luaO_chunkid (char *out, const char *source, size_t bufflen) {
+  if (*source == '=') {
+    strncpy(out, source+1, bufflen);  /* remove first char */
+    out[bufflen-1] = '\0';  /* ensures null termination */
+  }
+  else {  /* out = "source", or "...source" */
+    if (*source == '@') {
+      size_t l;
+      source++;  /* skip the `@' */
+      bufflen -= sizeof(" '...' ");
+      l = strlen(source);
+      strcpy(out, "");
+      if (l > bufflen) {
+        source += (l-bufflen);  /* get last part of file name */
+        strcat(out, "...");
+      }
+      strcat(out, source);
+    }
+    else {  /* out = [string "string"] */
+      size_t len = strcspn(source, "\n\r");  /* stop at first newline */
+      bufflen -= sizeof(" [string \"...\"] ");
+      if (len > bufflen) len = bufflen;
+      strcpy(out, "[string \"");
+      if (source[len] != '\0') {  /* must truncate? */
+        strncat(out, source, len);
+        strcat(out, "...");
+      }
+      else
+        strcat(out, source);
+      strcat(out, "\"]");
+    }
+  }
+}

Added: test-suite/trunk/MultiSource/Applications/lua/lobject.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lobject.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lobject.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lobject.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,381 @@
+/*
+** $Id: lobject.h,v 2.20.1.2 2008/08/06 13:29:48 roberto Exp $
+** Type definitions for Lua objects
+** See Copyright Notice in lua.h
+*/
+
+
+#ifndef lobject_h
+#define lobject_h
+
+
+#include <stdarg.h>
+
+
+#include "llimits.h"
+#include "lua.h"
+
+
+/* tags for values visible from Lua */
+#define LAST_TAG	LUA_TTHREAD
+
+#define NUM_TAGS	(LAST_TAG+1)
+
+
+/*
+** Extra tags for non-values
+*/
+#define LUA_TPROTO	(LAST_TAG+1)
+#define LUA_TUPVAL	(LAST_TAG+2)
+#define LUA_TDEADKEY	(LAST_TAG+3)
+
+
+/*
+** Union of all collectable objects
+*/
+typedef union GCObject GCObject;
+
+
+/*
+** Common Header for all collectable objects (in macro form, to be
+** included in other objects)
+*/
+#define CommonHeader	GCObject *next; lu_byte tt; lu_byte marked
+
+
+/*
+** Common header in struct form
+*/
+typedef struct GCheader {
+  CommonHeader;
+} GCheader;
+
+
+
+
+/*
+** Union of all Lua values
+*/
+typedef union {
+  GCObject *gc;
+  void *p;
+  lua_Number n;
+  int b;
+} Value;
+
+
+/*
+** Tagged Values
+*/
+
+#define TValuefields	Value value; int tt
+
+typedef struct lua_TValue {
+  TValuefields;
+} TValue;
+
+
+/* Macros to test type */
+#define ttisnil(o)	(ttype(o) == LUA_TNIL)
+#define ttisnumber(o)	(ttype(o) == LUA_TNUMBER)
+#define ttisstring(o)	(ttype(o) == LUA_TSTRING)
+#define ttistable(o)	(ttype(o) == LUA_TTABLE)
+#define ttisfunction(o)	(ttype(o) == LUA_TFUNCTION)
+#define ttisboolean(o)	(ttype(o) == LUA_TBOOLEAN)
+#define ttisuserdata(o)	(ttype(o) == LUA_TUSERDATA)
+#define ttisthread(o)	(ttype(o) == LUA_TTHREAD)
+#define ttislightuserdata(o)	(ttype(o) == LUA_TLIGHTUSERDATA)
+
+/* Macros to access values */
+#define ttype(o)	((o)->tt)
+#define gcvalue(o)	check_exp(iscollectable(o), (o)->value.gc)
+#define pvalue(o)	check_exp(ttislightuserdata(o), (o)->value.p)
+#define nvalue(o)	check_exp(ttisnumber(o), (o)->value.n)
+#define rawtsvalue(o)	check_exp(ttisstring(o), &(o)->value.gc->ts)
+#define tsvalue(o)	(&rawtsvalue(o)->tsv)
+#define rawuvalue(o)	check_exp(ttisuserdata(o), &(o)->value.gc->u)
+#define uvalue(o)	(&rawuvalue(o)->uv)
+#define clvalue(o)	check_exp(ttisfunction(o), &(o)->value.gc->cl)
+#define hvalue(o)	check_exp(ttistable(o), &(o)->value.gc->h)
+#define bvalue(o)	check_exp(ttisboolean(o), (o)->value.b)
+#define thvalue(o)	check_exp(ttisthread(o), &(o)->value.gc->th)
+
+#define l_isfalse(o)	(ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0))
+
+/*
+** for internal debug only
+*/
+#define checkconsistency(obj) \
+  lua_assert(!iscollectable(obj) || (ttype(obj) == (obj)->value.gc->gch.tt))
+
+#define checkliveness(g,obj) \
+  lua_assert(!iscollectable(obj) || \
+  ((ttype(obj) == (obj)->value.gc->gch.tt) && !isdead(g, (obj)->value.gc)))
+
+
+/* Macros to set values */
+#define setnilvalue(obj) ((obj)->tt=LUA_TNIL)
+
+#define setnvalue(obj,x) \
+  { TValue *i_o=(obj); i_o->value.n=(x); i_o->tt=LUA_TNUMBER; }
+
+#define setpvalue(obj,x) \
+  { TValue *i_o=(obj); i_o->value.p=(x); i_o->tt=LUA_TLIGHTUSERDATA; }
+
+#define setbvalue(obj,x) \
+  { TValue *i_o=(obj); i_o->value.b=(x); i_o->tt=LUA_TBOOLEAN; }
+
+#define setsvalue(L,obj,x) \
+  { TValue *i_o=(obj); \
+    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TSTRING; \
+    checkliveness(G(L),i_o); }
+
+#define setuvalue(L,obj,x) \
+  { TValue *i_o=(obj); \
+    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TUSERDATA; \
+    checkliveness(G(L),i_o); }
+
+#define setthvalue(L,obj,x) \
+  { TValue *i_o=(obj); \
+    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TTHREAD; \
+    checkliveness(G(L),i_o); }
+
+#define setclvalue(L,obj,x) \
+  { TValue *i_o=(obj); \
+    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TFUNCTION; \
+    checkliveness(G(L),i_o); }
+
+#define sethvalue(L,obj,x) \
+  { TValue *i_o=(obj); \
+    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TTABLE; \
+    checkliveness(G(L),i_o); }
+
+#define setptvalue(L,obj,x) \
+  { TValue *i_o=(obj); \
+    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TPROTO; \
+    checkliveness(G(L),i_o); }
+
+
+
+
+#define setobj(L,obj1,obj2) \
+  { const TValue *o2=(obj2); TValue *o1=(obj1); \
+    o1->value = o2->value; o1->tt=o2->tt; \
+    checkliveness(G(L),o1); }
+
+
+/*
+** different types of sets, according to destination
+*/
+
+/* from stack to (same) stack */
+#define setobjs2s	setobj
+/* to stack (not from same stack) */
+#define setobj2s	setobj
+#define setsvalue2s	setsvalue
+#define sethvalue2s	sethvalue
+#define setptvalue2s	setptvalue
+/* from table to same table */
+#define setobjt2t	setobj
+/* to table */
+#define setobj2t	setobj
+/* to new object */
+#define setobj2n	setobj
+#define setsvalue2n	setsvalue
+
+#define setttype(obj, tt) (ttype(obj) = (tt))
+
+
+#define iscollectable(o)	(ttype(o) >= LUA_TSTRING)
+
+
+
+typedef TValue *StkId;  /* index to stack elements */
+
+
+/*
+** String headers for string table
+*/
+typedef union TString {
+  L_Umaxalign dummy;  /* ensures maximum alignment for strings */
+  struct {
+    CommonHeader;
+    lu_byte reserved;
+    unsigned int hash;
+    size_t len;
+  } tsv;
+} TString;
+
+
+#define getstr(ts)	cast(const char *, (ts) + 1)
+#define svalue(o)       getstr(rawtsvalue(o))
+
+
+
+typedef union Udata {
+  L_Umaxalign dummy;  /* ensures maximum alignment for `local' udata */
+  struct {
+    CommonHeader;
+    struct Table *metatable;
+    struct Table *env;
+    size_t len;
+  } uv;
+} Udata;
+
+
+
+
+/*
+** Function Prototypes
+*/
+typedef struct Proto {
+  CommonHeader;
+  TValue *k;  /* constants used by the function */
+  Instruction *code;
+  struct Proto **p;  /* functions defined inside the function */
+  int *lineinfo;  /* map from opcodes to source lines */
+  struct LocVar *locvars;  /* information about local variables */
+  TString **upvalues;  /* upvalue names */
+  TString  *source;
+  int sizeupvalues;
+  int sizek;  /* size of `k' */
+  int sizecode;
+  int sizelineinfo;
+  int sizep;  /* size of `p' */
+  int sizelocvars;
+  int linedefined;
+  int lastlinedefined;
+  GCObject *gclist;
+  lu_byte nups;  /* number of upvalues */
+  lu_byte numparams;
+  lu_byte is_vararg;
+  lu_byte maxstacksize;
+} Proto;
+
+
+/* masks for new-style vararg */
+#define VARARG_HASARG		1
+#define VARARG_ISVARARG		2
+#define VARARG_NEEDSARG		4
+
+
+typedef struct LocVar {
+  TString *varname;
+  int startpc;  /* first point where variable is active */
+  int endpc;    /* first point where variable is dead */
+} LocVar;
+
+
+
+/*
+** Upvalues
+*/
+
+typedef struct UpVal {
+  CommonHeader;
+  TValue *v;  /* points to stack or to its own value */
+  union {
+    TValue value;  /* the value (when closed) */
+    struct {  /* double linked list (when open) */
+      struct UpVal *prev;
+      struct UpVal *next;
+    } l;
+  } u;
+} UpVal;
+
+
+/*
+** Closures
+*/
+
+#define ClosureHeader \
+	CommonHeader; lu_byte isC; lu_byte nupvalues; GCObject *gclist; \
+	struct Table *env
+
+typedef struct CClosure {
+  ClosureHeader;
+  lua_CFunction f;
+  TValue upvalue[1];
+} CClosure;
+
+
+typedef struct LClosure {
+  ClosureHeader;
+  struct Proto *p;
+  UpVal *upvals[1];
+} LClosure;
+
+
+typedef union Closure {
+  CClosure c;
+  LClosure l;
+} Closure;
+
+
+#define iscfunction(o)	(ttype(o) == LUA_TFUNCTION && clvalue(o)->c.isC)
+#define isLfunction(o)	(ttype(o) == LUA_TFUNCTION && !clvalue(o)->c.isC)
+
+
+/*
+** Tables
+*/
+
+typedef union TKey {
+  struct {
+    TValuefields;
+    struct Node *next;  /* for chaining */
+  } nk;
+  TValue tvk;
+} TKey;
+
+
+typedef struct Node {
+  TValue i_val;
+  TKey i_key;
+} Node;
+
+
+typedef struct Table {
+  CommonHeader;
+  lu_byte flags;  /* 1<<p means tagmethod(p) is not present */ 
+  lu_byte lsizenode;  /* log2 of size of `node' array */
+  struct Table *metatable;
+  TValue *array;  /* array part */
+  Node *node;
+  Node *lastfree;  /* any free position is before this position */
+  GCObject *gclist;
+  int sizearray;  /* size of `array' array */
+} Table;
+
+
+
+/*
+** `module' operation for hashing (size is always a power of 2)
+*/
+#define lmod(s,size) \
+	(check_exp((size&(size-1))==0, (cast(int, (s) & ((size)-1)))))
+
+
+#define twoto(x)	(1<<(x))
+#define sizenode(t)	(twoto((t)->lsizenode))
+
+
+#define luaO_nilobject		(&luaO_nilobject_)
+
+LUAI_DATA const TValue luaO_nilobject_;
+
+#define ceillog2(x)	(luaO_log2((x)-1) + 1)
+
+LUAI_FUNC int luaO_log2 (unsigned int x);
+LUAI_FUNC int luaO_int2fb (unsigned int x);
+LUAI_FUNC int luaO_fb2int (int x);
+LUAI_FUNC int luaO_rawequalObj (const TValue *t1, const TValue *t2);
+LUAI_FUNC int luaO_str2d (const char *s, lua_Number *result);
+LUAI_FUNC const char *luaO_pushvfstring (lua_State *L, const char *fmt,
+                                                       va_list argp);
+LUAI_FUNC const char *luaO_pushfstring (lua_State *L, const char *fmt, ...);
+LUAI_FUNC void luaO_chunkid (char *out, const char *source, size_t len);
+
+
+#endif
+

Added: test-suite/trunk/MultiSource/Applications/lua/lopcodes.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lopcodes.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lopcodes.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lopcodes.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,102 @@
+/*
+** $Id: lopcodes.c,v 1.37.1.1 2007/12/27 13:02:25 roberto Exp $
+** See Copyright Notice in lua.h
+*/
+
+
+#define lopcodes_c
+#define LUA_CORE
+
+
+#include "lopcodes.h"
+
+
+/* ORDER OP */
+
+const char *const luaP_opnames[NUM_OPCODES+1] = {
+  "MOVE",
+  "LOADK",
+  "LOADBOOL",
+  "LOADNIL",
+  "GETUPVAL",
+  "GETGLOBAL",
+  "GETTABLE",
+  "SETGLOBAL",
+  "SETUPVAL",
+  "SETTABLE",
+  "NEWTABLE",
+  "SELF",
+  "ADD",
+  "SUB",
+  "MUL",
+  "DIV",
+  "MOD",
+  "POW",
+  "UNM",
+  "NOT",
+  "LEN",
+  "CONCAT",
+  "JMP",
+  "EQ",
+  "LT",
+  "LE",
+  "TEST",
+  "TESTSET",
+  "CALL",
+  "TAILCALL",
+  "RETURN",
+  "FORLOOP",
+  "FORPREP",
+  "TFORLOOP",
+  "SETLIST",
+  "CLOSE",
+  "CLOSURE",
+  "VARARG",
+  NULL
+};
+
+
+#define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m))
+
+const lu_byte luaP_opmodes[NUM_OPCODES] = {
+/*       T  A    B       C     mode		   opcode	*/
+  opmode(0, 1, OpArgR, OpArgN, iABC) 		/* OP_MOVE */
+ ,opmode(0, 1, OpArgK, OpArgN, iABx)		/* OP_LOADK */
+ ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_LOADBOOL */
+ ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_LOADNIL */
+ ,opmode(0, 1, OpArgU, OpArgN, iABC)		/* OP_GETUPVAL */
+ ,opmode(0, 1, OpArgK, OpArgN, iABx)		/* OP_GETGLOBAL */
+ ,opmode(0, 1, OpArgR, OpArgK, iABC)		/* OP_GETTABLE */
+ ,opmode(0, 0, OpArgK, OpArgN, iABx)		/* OP_SETGLOBAL */
+ ,opmode(0, 0, OpArgU, OpArgN, iABC)		/* OP_SETUPVAL */
+ ,opmode(0, 0, OpArgK, OpArgK, iABC)		/* OP_SETTABLE */
+ ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_NEWTABLE */
+ ,opmode(0, 1, OpArgR, OpArgK, iABC)		/* OP_SELF */
+ ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_ADD */
+ ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_SUB */
+ ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_MUL */
+ ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_DIV */
+ ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_MOD */
+ ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_POW */
+ ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_UNM */
+ ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_NOT */
+ ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_LEN */
+ ,opmode(0, 1, OpArgR, OpArgR, iABC)		/* OP_CONCAT */
+ ,opmode(0, 0, OpArgR, OpArgN, iAsBx)		/* OP_JMP */
+ ,opmode(1, 0, OpArgK, OpArgK, iABC)		/* OP_EQ */
+ ,opmode(1, 0, OpArgK, OpArgK, iABC)		/* OP_LT */
+ ,opmode(1, 0, OpArgK, OpArgK, iABC)		/* OP_LE */
+ ,opmode(1, 1, OpArgR, OpArgU, iABC)		/* OP_TEST */
+ ,opmode(1, 1, OpArgR, OpArgU, iABC)		/* OP_TESTSET */
+ ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_CALL */
+ ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_TAILCALL */
+ ,opmode(0, 0, OpArgU, OpArgN, iABC)		/* OP_RETURN */
+ ,opmode(0, 1, OpArgR, OpArgN, iAsBx)		/* OP_FORLOOP */
+ ,opmode(0, 1, OpArgR, OpArgN, iAsBx)		/* OP_FORPREP */
+ ,opmode(1, 0, OpArgN, OpArgU, iABC)		/* OP_TFORLOOP */
+ ,opmode(0, 0, OpArgU, OpArgU, iABC)		/* OP_SETLIST */
+ ,opmode(0, 0, OpArgN, OpArgN, iABC)		/* OP_CLOSE */
+ ,opmode(0, 1, OpArgU, OpArgN, iABx)		/* OP_CLOSURE */
+ ,opmode(0, 1, OpArgU, OpArgN, iABC)		/* OP_VARARG */
+};
+

Added: test-suite/trunk/MultiSource/Applications/lua/lopcodes.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lopcodes.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lopcodes.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lopcodes.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,268 @@
+/*
+** $Id: lopcodes.h,v 1.125.1.1 2007/12/27 13:02:25 roberto Exp $
+** Opcodes for Lua virtual machine
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lopcodes_h
+#define lopcodes_h
+
+#include "llimits.h"
+
+
+/*===========================================================================
+  We assume that instructions are unsigned numbers.
+  All instructions have an opcode in the first 6 bits.
+  Instructions can have the following fields:
+	`A' : 8 bits
+	`B' : 9 bits
+	`C' : 9 bits
+	`Bx' : 18 bits (`B' and `C' together)
+	`sBx' : signed Bx
+
+  A signed argument is represented in excess K; that is, the number
+  value is the unsigned value minus K. K is exactly the maximum value
+  for that argument (so that -max is represented by 0, and +max is
+  represented by 2*max), which is half the maximum for the corresponding
+  unsigned argument.
+===========================================================================*/
+
+
+enum OpMode {iABC, iABx, iAsBx};  /* basic instruction format */
+
+
+/*
+** size and position of opcode arguments.
+*/
+#define SIZE_C		9
+#define SIZE_B		9
+#define SIZE_Bx		(SIZE_C + SIZE_B)
+#define SIZE_A		8
+
+#define SIZE_OP		6
+
+#define POS_OP		0
+#define POS_A		(POS_OP + SIZE_OP)
+#define POS_C		(POS_A + SIZE_A)
+#define POS_B		(POS_C + SIZE_C)
+#define POS_Bx		POS_C
+
+
+/*
+** limits for opcode arguments.
+** we use (signed) int to manipulate most arguments,
+** so they must fit in LUAI_BITSINT-1 bits (-1 for sign)
+*/
+#if SIZE_Bx < LUAI_BITSINT-1
+#define MAXARG_Bx        ((1<<SIZE_Bx)-1)
+#define MAXARG_sBx        (MAXARG_Bx>>1)         /* `sBx' is signed */
+#else
+#define MAXARG_Bx        MAX_INT
+#define MAXARG_sBx        MAX_INT
+#endif
+
+
+#define MAXARG_A        ((1<<SIZE_A)-1)
+#define MAXARG_B        ((1<<SIZE_B)-1)
+#define MAXARG_C        ((1<<SIZE_C)-1)
+
+
+/* creates a mask with `n' 1 bits at position `p' */
+#define MASK1(n,p)	((~((~(Instruction)0)<<n))<<p)
+
+/* creates a mask with `n' 0 bits at position `p' */
+#define MASK0(n,p)	(~MASK1(n,p))
+
+/*
+** the following macros help to manipulate instructions
+*/
+
+#define GET_OPCODE(i)	(cast(OpCode, ((i)>>POS_OP) & MASK1(SIZE_OP,0)))
+#define SET_OPCODE(i,o)	((i) = (((i)&MASK0(SIZE_OP,POS_OP)) | \
+		((cast(Instruction, o)<<POS_OP)&MASK1(SIZE_OP,POS_OP))))
+
+#define GETARG_A(i)	(cast(int, ((i)>>POS_A) & MASK1(SIZE_A,0)))
+#define SETARG_A(i,u)	((i) = (((i)&MASK0(SIZE_A,POS_A)) | \
+		((cast(Instruction, u)<<POS_A)&MASK1(SIZE_A,POS_A))))
+
+#define GETARG_B(i)	(cast(int, ((i)>>POS_B) & MASK1(SIZE_B,0)))
+#define SETARG_B(i,b)	((i) = (((i)&MASK0(SIZE_B,POS_B)) | \
+		((cast(Instruction, b)<<POS_B)&MASK1(SIZE_B,POS_B))))
+
+#define GETARG_C(i)	(cast(int, ((i)>>POS_C) & MASK1(SIZE_C,0)))
+#define SETARG_C(i,b)	((i) = (((i)&MASK0(SIZE_C,POS_C)) | \
+		((cast(Instruction, b)<<POS_C)&MASK1(SIZE_C,POS_C))))
+
+#define GETARG_Bx(i)	(cast(int, ((i)>>POS_Bx) & MASK1(SIZE_Bx,0)))
+#define SETARG_Bx(i,b)	((i) = (((i)&MASK0(SIZE_Bx,POS_Bx)) | \
+		((cast(Instruction, b)<<POS_Bx)&MASK1(SIZE_Bx,POS_Bx))))
+
+#define GETARG_sBx(i)	(GETARG_Bx(i)-MAXARG_sBx)
+#define SETARG_sBx(i,b)	SETARG_Bx((i),cast(unsigned int, (b)+MAXARG_sBx))
+
+
+#define CREATE_ABC(o,a,b,c)	((cast(Instruction, o)<<POS_OP) \
+			| (cast(Instruction, a)<<POS_A) \
+			| (cast(Instruction, b)<<POS_B) \
+			| (cast(Instruction, c)<<POS_C))
+
+#define CREATE_ABx(o,a,bc)	((cast(Instruction, o)<<POS_OP) \
+			| (cast(Instruction, a)<<POS_A) \
+			| (cast(Instruction, bc)<<POS_Bx))
+
+
+/*
+** Macros to operate RK indices
+*/
+
+/* this bit 1 means constant (0 means register) */
+#define BITRK		(1 << (SIZE_B - 1))
+
+/* test whether value is a constant */
+#define ISK(x)		((x) & BITRK)
+
+/* gets the index of the constant */
+#define INDEXK(r)	((int)(r) & ~BITRK)
+
+#define MAXINDEXRK	(BITRK - 1)
+
+/* code a constant index as a RK value */
+#define RKASK(x)	((x) | BITRK)
+
+
+/*
+** invalid register that fits in 8 bits
+*/
+#define NO_REG		MAXARG_A
+
+
+/*
+** R(x) - register
+** Kst(x) - constant (in constant table)
+** RK(x) == if ISK(x) then Kst(INDEXK(x)) else R(x)
+*/
+
+
+/*
+** grep "ORDER OP" if you change these enums
+*/
+
+typedef enum {
+/*----------------------------------------------------------------------
+name		args	description
+------------------------------------------------------------------------*/
+OP_MOVE,/*	A B	R(A) := R(B)					*/
+OP_LOADK,/*	A Bx	R(A) := Kst(Bx)					*/
+OP_LOADBOOL,/*	A B C	R(A) := (Bool)B; if (C) pc++			*/
+OP_LOADNIL,/*	A B	R(A) := ... := R(B) := nil			*/
+OP_GETUPVAL,/*	A B	R(A) := UpValue[B]				*/
+
+OP_GETGLOBAL,/*	A Bx	R(A) := Gbl[Kst(Bx)]				*/
+OP_GETTABLE,/*	A B C	R(A) := R(B)[RK(C)]				*/
+
+OP_SETGLOBAL,/*	A Bx	Gbl[Kst(Bx)] := R(A)				*/
+OP_SETUPVAL,/*	A B	UpValue[B] := R(A)				*/
+OP_SETTABLE,/*	A B C	R(A)[RK(B)] := RK(C)				*/
+
+OP_NEWTABLE,/*	A B C	R(A) := {} (size = B,C)				*/
+
+OP_SELF,/*	A B C	R(A+1) := R(B); R(A) := R(B)[RK(C)]		*/
+
+OP_ADD,/*	A B C	R(A) := RK(B) + RK(C)				*/
+OP_SUB,/*	A B C	R(A) := RK(B) - RK(C)				*/
+OP_MUL,/*	A B C	R(A) := RK(B) * RK(C)				*/
+OP_DIV,/*	A B C	R(A) := RK(B) / RK(C)				*/
+OP_MOD,/*	A B C	R(A) := RK(B) % RK(C)				*/
+OP_POW,/*	A B C	R(A) := RK(B) ^ RK(C)				*/
+OP_UNM,/*	A B	R(A) := -R(B)					*/
+OP_NOT,/*	A B	R(A) := not R(B)				*/
+OP_LEN,/*	A B	R(A) := length of R(B)				*/
+
+OP_CONCAT,/*	A B C	R(A) := R(B).. ... ..R(C)			*/
+
+OP_JMP,/*	sBx	pc+=sBx					*/
+
+OP_EQ,/*	A B C	if ((RK(B) == RK(C)) ~= A) then pc++		*/
+OP_LT,/*	A B C	if ((RK(B) <  RK(C)) ~= A) then pc++  		*/
+OP_LE,/*	A B C	if ((RK(B) <= RK(C)) ~= A) then pc++  		*/
+
+OP_TEST,/*	A C	if not (R(A) <=> C) then pc++			*/ 
+OP_TESTSET,/*	A B C	if (R(B) <=> C) then R(A) := R(B) else pc++	*/ 
+
+OP_CALL,/*	A B C	R(A), ... ,R(A+C-2) := R(A)(R(A+1), ... ,R(A+B-1)) */
+OP_TAILCALL,/*	A B C	return R(A)(R(A+1), ... ,R(A+B-1))		*/
+OP_RETURN,/*	A B	return R(A), ... ,R(A+B-2)	(see note)	*/
+
+OP_FORLOOP,/*	A sBx	R(A)+=R(A+2);
+			if R(A) <?= R(A+1) then { pc+=sBx; R(A+3)=R(A) }*/
+OP_FORPREP,/*	A sBx	R(A)-=R(A+2); pc+=sBx				*/
+
+OP_TFORLOOP,/*	A C	R(A+3), ... ,R(A+2+C) := R(A)(R(A+1), R(A+2)); 
+                        if R(A+3) ~= nil then R(A+2)=R(A+3) else pc++	*/ 
+OP_SETLIST,/*	A B C	R(A)[(C-1)*FPF+i] := R(A+i), 1 <= i <= B	*/
+
+OP_CLOSE,/*	A 	close all variables in the stack up to (>=) R(A)*/
+OP_CLOSURE,/*	A Bx	R(A) := closure(KPROTO[Bx], R(A), ... ,R(A+n))	*/
+
+OP_VARARG/*	A B	R(A), R(A+1), ..., R(A+B-1) = vararg		*/
+} OpCode;
+
+
+#define NUM_OPCODES	(cast(int, OP_VARARG) + 1)
+
+
+
+/*===========================================================================
+  Notes:
+  (*) In OP_CALL, if (B == 0) then B = top. C is the number of returns - 1,
+      and can be 0: OP_CALL then sets `top' to last_result+1, so
+      next open instruction (OP_CALL, OP_RETURN, OP_SETLIST) may use `top'.
+
+  (*) In OP_VARARG, if (B == 0) then use actual number of varargs and
+      set top (like in OP_CALL with C == 0).
+
+  (*) In OP_RETURN, if (B == 0) then return up to `top'
+
+  (*) In OP_SETLIST, if (B == 0) then B = `top';
+      if (C == 0) then next `instruction' is real C
+
+  (*) For comparisons, A specifies what condition the test should accept
+      (true or false).
+
+  (*) All `skips' (pc++) assume that next instruction is a jump
+===========================================================================*/
+
+
+/*
+** masks for instruction properties. The format is:
+** bits 0-1: op mode
+** bits 2-3: C arg mode
+** bits 4-5: B arg mode
+** bit 6: instruction set register A
+** bit 7: operator is a test
+*/  
+
+enum OpArgMask {
+  OpArgN,  /* argument is not used */
+  OpArgU,  /* argument is used */
+  OpArgR,  /* argument is a register or a jump offset */
+  OpArgK   /* argument is a constant or register/constant */
+};
+
+LUAI_DATA const lu_byte luaP_opmodes[NUM_OPCODES];
+
+#define getOpMode(m)	(cast(enum OpMode, luaP_opmodes[m] & 3))
+#define getBMode(m)	(cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3))
+#define getCMode(m)	(cast(enum OpArgMask, (luaP_opmodes[m] >> 2) & 3))
+#define testAMode(m)	(luaP_opmodes[m] & (1 << 6))
+#define testTMode(m)	(luaP_opmodes[m] & (1 << 7))
+
+
+LUAI_DATA const char *const luaP_opnames[NUM_OPCODES+1];  /* opcode names */
+
+
+/* number of list items to accumulate before a SETLIST instruction */
+#define LFIELDS_PER_FLUSH	50
+
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/loslib.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/loslib.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/loslib.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/loslib.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,243 @@
+/*
+** $Id: loslib.c,v 1.19.1.3 2008/01/18 16:38:18 roberto Exp $
+** Standard Operating System library
+** See Copyright Notice in lua.h
+*/
+
+
+#include <errno.h>
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#define loslib_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lauxlib.h"
+#include "lualib.h"
+
+
+static int os_pushresult (lua_State *L, int i, const char *filename) {
+  int en = errno;  /* calls to Lua API may change this value */
+  if (i) {
+    lua_pushboolean(L, 1);
+    return 1;
+  }
+  else {
+    lua_pushnil(L);
+    lua_pushfstring(L, "%s: %s", filename, strerror(en));
+    lua_pushinteger(L, en);
+    return 3;
+  }
+}
+
+
+static int os_execute (lua_State *L) {
+  lua_pushinteger(L, system(luaL_optstring(L, 1, NULL)));
+  return 1;
+}
+
+
+static int os_remove (lua_State *L) {
+  const char *filename = luaL_checkstring(L, 1);
+  return os_pushresult(L, remove(filename) == 0, filename);
+}
+
+
+static int os_rename (lua_State *L) {
+  const char *fromname = luaL_checkstring(L, 1);
+  const char *toname = luaL_checkstring(L, 2);
+  return os_pushresult(L, rename(fromname, toname) == 0, fromname);
+}
+
+
+static int os_tmpname (lua_State *L) {
+  char buff[LUA_TMPNAMBUFSIZE];
+  int err;
+  lua_tmpnam(buff, err);
+  if (err)
+    return luaL_error(L, "unable to generate a unique filename");
+  lua_pushstring(L, buff);
+  return 1;
+}
+
+
+static int os_getenv (lua_State *L) {
+  lua_pushstring(L, getenv(luaL_checkstring(L, 1)));  /* if NULL push nil */
+  return 1;
+}
+
+
+static int os_clock (lua_State *L) {
+  lua_pushnumber(L, ((lua_Number)clock())/(lua_Number)CLOCKS_PER_SEC);
+  return 1;
+}
+
+
+/*
+** {======================================================
+** Time/Date operations
+** { year=%Y, month=%m, day=%d, hour=%H, min=%M, sec=%S,
+**   wday=%w+1, yday=%j, isdst=? }
+** =======================================================
+*/
+
+static void setfield (lua_State *L, const char *key, int value) {
+  lua_pushinteger(L, value);
+  lua_setfield(L, -2, key);
+}
+
+static void setboolfield (lua_State *L, const char *key, int value) {
+  if (value < 0)  /* undefined? */
+    return;  /* does not set field */
+  lua_pushboolean(L, value);
+  lua_setfield(L, -2, key);
+}
+
+static int getboolfield (lua_State *L, const char *key) {
+  int res;
+  lua_getfield(L, -1, key);
+  res = lua_isnil(L, -1) ? -1 : lua_toboolean(L, -1);
+  lua_pop(L, 1);
+  return res;
+}
+
+
+static int getfield (lua_State *L, const char *key, int d) {
+  int res;
+  lua_getfield(L, -1, key);
+  if (lua_isnumber(L, -1))
+    res = (int)lua_tointeger(L, -1);
+  else {
+    if (d < 0)
+      return luaL_error(L, "field " LUA_QS " missing in date table", key);
+    res = d;
+  }
+  lua_pop(L, 1);
+  return res;
+}
+
+
+static int os_date (lua_State *L) {
+  const char *s = luaL_optstring(L, 1, "%c");
+  time_t t = luaL_opt(L, (time_t)luaL_checknumber, 2, time(NULL));
+  struct tm *stm;
+  if (*s == '!') {  /* UTC? */
+    stm = gmtime(&t);
+    s++;  /* skip `!' */
+  }
+  else
+    stm = localtime(&t);
+  if (stm == NULL)  /* invalid date? */
+    lua_pushnil(L);
+  else if (strcmp(s, "*t") == 0) {
+    lua_createtable(L, 0, 9);  /* 9 = number of fields */
+    setfield(L, "sec", stm->tm_sec);
+    setfield(L, "min", stm->tm_min);
+    setfield(L, "hour", stm->tm_hour);
+    setfield(L, "day", stm->tm_mday);
+    setfield(L, "month", stm->tm_mon+1);
+    setfield(L, "year", stm->tm_year+1900);
+    setfield(L, "wday", stm->tm_wday+1);
+    setfield(L, "yday", stm->tm_yday+1);
+    setboolfield(L, "isdst", stm->tm_isdst);
+  }
+  else {
+    char cc[3];
+    luaL_Buffer b;
+    cc[0] = '%'; cc[2] = '\0';
+    luaL_buffinit(L, &b);
+    for (; *s; s++) {
+      if (*s != '%' || *(s + 1) == '\0')  /* no conversion specifier? */
+        luaL_addchar(&b, *s);
+      else {
+        size_t reslen;
+        char buff[200];  /* should be big enough for any conversion result */
+        cc[1] = *(++s);
+        reslen = strftime(buff, sizeof(buff), cc, stm);
+        luaL_addlstring(&b, buff, reslen);
+      }
+    }
+    luaL_pushresult(&b);
+  }
+  return 1;
+}
+
+
+static int os_time (lua_State *L) {
+  time_t t;
+  if (lua_isnoneornil(L, 1))  /* called without args? */
+    t = time(NULL);  /* get current time */
+  else {
+    struct tm ts;
+    luaL_checktype(L, 1, LUA_TTABLE);
+    lua_settop(L, 1);  /* make sure table is at the top */
+    ts.tm_sec = getfield(L, "sec", 0);
+    ts.tm_min = getfield(L, "min", 0);
+    ts.tm_hour = getfield(L, "hour", 12);
+    ts.tm_mday = getfield(L, "day", -1);
+    ts.tm_mon = getfield(L, "month", -1) - 1;
+    ts.tm_year = getfield(L, "year", -1) - 1900;
+    ts.tm_isdst = getboolfield(L, "isdst");
+    t = mktime(&ts);
+  }
+  if (t == (time_t)(-1))
+    lua_pushnil(L);
+  else
+    lua_pushnumber(L, (lua_Number)t);
+  return 1;
+}
+
+
+static int os_difftime (lua_State *L) {
+  lua_pushnumber(L, difftime((time_t)(luaL_checknumber(L, 1)),
+                             (time_t)(luaL_optnumber(L, 2, 0))));
+  return 1;
+}
+
+/* }====================================================== */
+
+
+static int os_setlocale (lua_State *L) {
+  static const int cat[] = {LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY,
+                      LC_NUMERIC, LC_TIME};
+  static const char *const catnames[] = {"all", "collate", "ctype", "monetary",
+     "numeric", "time", NULL};
+  const char *l = luaL_optstring(L, 1, NULL);
+  int op = luaL_checkoption(L, 2, "all", catnames);
+  lua_pushstring(L, setlocale(cat[op], l));
+  return 1;
+}
+
+
+static int os_exit (lua_State *L) {
+  exit(luaL_optint(L, 1, EXIT_SUCCESS));
+}
+
+static const luaL_Reg syslib[] = {
+  {"clock",     os_clock},
+  {"date",      os_date},
+  {"difftime",  os_difftime},
+  {"execute",   os_execute},
+  {"exit",      os_exit},
+  {"getenv",    os_getenv},
+  {"remove",    os_remove},
+  {"rename",    os_rename},
+  {"setlocale", os_setlocale},
+  {"time",      os_time},
+  {"tmpname",   os_tmpname},
+  {NULL, NULL}
+};
+
+/* }====================================================== */
+
+
+
+LUALIB_API int luaopen_os (lua_State *L) {
+  luaL_register(L, LUA_OSLIBNAME, syslib);
+  return 1;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lparser.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lparser.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lparser.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lparser.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,1339 @@
+/*
+** $Id: lparser.c,v 2.42.1.3 2007/12/28 15:32:23 roberto Exp $
+** Lua Parser
+** See Copyright Notice in lua.h
+*/
+
+
+#include <string.h>
+
+#define lparser_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "lcode.h"
+#include "ldebug.h"
+#include "ldo.h"
+#include "lfunc.h"
+#include "llex.h"
+#include "lmem.h"
+#include "lobject.h"
+#include "lopcodes.h"
+#include "lparser.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "ltable.h"
+
+
+
+#define hasmultret(k)		((k) == VCALL || (k) == VVARARG)
+
+#define getlocvar(fs, i)	((fs)->f->locvars[(fs)->actvar[i]])
+
+#define luaY_checklimit(fs,v,l,m)	if ((v)>(l)) errorlimit(fs,l,m)
+
+
+/*
+** nodes for block list (list of active blocks)
+*/
+typedef struct BlockCnt {
+  struct BlockCnt *previous;  /* chain */
+  int breaklist;  /* list of jumps out of this loop */
+  lu_byte nactvar;  /* # active locals outside the breakable structure */
+  lu_byte upval;  /* true if some variable in the block is an upvalue */
+  lu_byte isbreakable;  /* true if `block' is a loop */
+} BlockCnt;
+
+
+
+/*
+** prototypes for recursive non-terminal functions
+*/
+static void chunk (LexState *ls);
+static void expr (LexState *ls, expdesc *v);
+
+
+static void anchor_token (LexState *ls) {
+  if (ls->t.token == TK_NAME || ls->t.token == TK_STRING) {
+    TString *ts = ls->t.seminfo.ts;
+    luaX_newstring(ls, getstr(ts), ts->tsv.len);
+  }
+}
+
+
+static void error_expected (LexState *ls, int token) {
+  luaX_syntaxerror(ls,
+      luaO_pushfstring(ls->L, LUA_QS " expected", luaX_token2str(ls, token)));
+}
+
+
+static void errorlimit (FuncState *fs, int limit, const char *what) {
+  const char *msg = (fs->f->linedefined == 0) ?
+    luaO_pushfstring(fs->L, "main function has more than %d %s", limit, what) :
+    luaO_pushfstring(fs->L, "function at line %d has more than %d %s",
+                            fs->f->linedefined, limit, what);
+  luaX_lexerror(fs->ls, msg, 0);
+}
+
+
+static int testnext (LexState *ls, int c) {
+  if (ls->t.token == c) {
+    luaX_next(ls);
+    return 1;
+  }
+  else return 0;
+}
+
+
+static void check (LexState *ls, int c) {
+  if (ls->t.token != c)
+    error_expected(ls, c);
+}
+
+static void checknext (LexState *ls, int c) {
+  check(ls, c);
+  luaX_next(ls);
+}
+
+
+#define check_condition(ls,c,msg)	{ if (!(c)) luaX_syntaxerror(ls, msg); }
+
+
+
+static void check_match (LexState *ls, int what, int who, int where) {
+  if (!testnext(ls, what)) {
+    if (where == ls->linenumber)
+      error_expected(ls, what);
+    else {
+      luaX_syntaxerror(ls, luaO_pushfstring(ls->L,
+             LUA_QS " expected (to close " LUA_QS " at line %d)",
+              luaX_token2str(ls, what), luaX_token2str(ls, who), where));
+    }
+  }
+}
+
+
+static TString *str_checkname (LexState *ls) {
+  TString *ts;
+  check(ls, TK_NAME);
+  ts = ls->t.seminfo.ts;
+  luaX_next(ls);
+  return ts;
+}
+
+
+static void init_exp (expdesc *e, expkind k, int i) {
+  e->f = e->t = NO_JUMP;
+  e->k = k;
+  e->u.s.info = i;
+}
+
+
+static void codestring (LexState *ls, expdesc *e, TString *s) {
+  init_exp(e, VK, luaK_stringK(ls->fs, s));
+}
+
+
+static void checkname(LexState *ls, expdesc *e) {
+  codestring(ls, e, str_checkname(ls));
+}
+
+
+static int registerlocalvar (LexState *ls, TString *varname) {
+  FuncState *fs = ls->fs;
+  Proto *f = fs->f;
+  int oldsize = f->sizelocvars;
+  luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars,
+                  LocVar, SHRT_MAX, "too many local variables");
+  while (oldsize < f->sizelocvars) f->locvars[oldsize++].varname = NULL;
+  f->locvars[fs->nlocvars].varname = varname;
+  luaC_objbarrier(ls->L, f, varname);
+  return fs->nlocvars++;
+}
+
+
+#define new_localvarliteral(ls,v,n) \
+  new_localvar(ls, luaX_newstring(ls, "" v, (sizeof(v)/sizeof(char))-1), n)
+
+
+static void new_localvar (LexState *ls, TString *name, int n) {
+  FuncState *fs = ls->fs;
+  luaY_checklimit(fs, fs->nactvar+n+1, LUAI_MAXVARS, "local variables");
+  fs->actvar[fs->nactvar+n] = cast(unsigned short, registerlocalvar(ls, name));
+}
+
+
+static void adjustlocalvars (LexState *ls, int nvars) {
+  FuncState *fs = ls->fs;
+  fs->nactvar = cast_byte(fs->nactvar + nvars);
+  for (; nvars; nvars--) {
+    getlocvar(fs, fs->nactvar - nvars).startpc = fs->pc;
+  }
+}
+
+
+static void removevars (LexState *ls, int tolevel) {
+  FuncState *fs = ls->fs;
+  while (fs->nactvar > tolevel)
+    getlocvar(fs, --fs->nactvar).endpc = fs->pc;
+}
+
+
+static int indexupvalue (FuncState *fs, TString *name, expdesc *v) {
+  int i;
+  Proto *f = fs->f;
+  int oldsize = f->sizeupvalues;
+  for (i=0; i<f->nups; i++) {
+    if (fs->upvalues[i].k == v->k && fs->upvalues[i].info == v->u.s.info) {
+      lua_assert(f->upvalues[i] == name);
+      return i;
+    }
+  }
+  /* new one */
+  luaY_checklimit(fs, f->nups + 1, LUAI_MAXUPVALUES, "upvalues");
+  luaM_growvector(fs->L, f->upvalues, f->nups, f->sizeupvalues,
+                  TString *, MAX_INT, "");
+  while (oldsize < f->sizeupvalues) f->upvalues[oldsize++] = NULL;
+  f->upvalues[f->nups] = name;
+  luaC_objbarrier(fs->L, f, name);
+  lua_assert(v->k == VLOCAL || v->k == VUPVAL);
+  fs->upvalues[f->nups].k = cast_byte(v->k);
+  fs->upvalues[f->nups].info = cast_byte(v->u.s.info);
+  return f->nups++;
+}
+
+
+static int searchvar (FuncState *fs, TString *n) {
+  int i;
+  for (i=fs->nactvar-1; i >= 0; i--) {
+    if (n == getlocvar(fs, i).varname)
+      return i;
+  }
+  return -1;  /* not found */
+}
+
+
+static void markupval (FuncState *fs, int level) {
+  BlockCnt *bl = fs->bl;
+  while (bl && bl->nactvar > level) bl = bl->previous;
+  if (bl) bl->upval = 1;
+}
+
+
+static int singlevaraux (FuncState *fs, TString *n, expdesc *var, int base) {
+  if (fs == NULL) {  /* no more levels? */
+    init_exp(var, VGLOBAL, NO_REG);  /* default is global variable */
+    return VGLOBAL;
+  }
+  else {
+    int v = searchvar(fs, n);  /* look up at current level */
+    if (v >= 0) {
+      init_exp(var, VLOCAL, v);
+      if (!base)
+        markupval(fs, v);  /* local will be used as an upval */
+      return VLOCAL;
+    }
+    else {  /* not found at current level; try upper one */
+      if (singlevaraux(fs->prev, n, var, 0) == VGLOBAL)
+        return VGLOBAL;
+      var->u.s.info = indexupvalue(fs, n, var);  /* else was LOCAL or UPVAL */
+      var->k = VUPVAL;  /* upvalue in this level */
+      return VUPVAL;
+    }
+  }
+}
+
+
+static void singlevar (LexState *ls, expdesc *var) {
+  TString *varname = str_checkname(ls);
+  FuncState *fs = ls->fs;
+  if (singlevaraux(fs, varname, var, 1) == VGLOBAL)
+    var->u.s.info = luaK_stringK(fs, varname);  /* info points to global name */
+}
+
+
+static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) {
+  FuncState *fs = ls->fs;
+  int extra = nvars - nexps;
+  if (hasmultret(e->k)) {
+    extra++;  /* includes call itself */
+    if (extra < 0) extra = 0;
+    luaK_setreturns(fs, e, extra);  /* last exp. provides the difference */
+    if (extra > 1) luaK_reserveregs(fs, extra-1);
+  }
+  else {
+    if (e->k != VVOID) luaK_exp2nextreg(fs, e);  /* close last expression */
+    if (extra > 0) {
+      int reg = fs->freereg;
+      luaK_reserveregs(fs, extra);
+      luaK_nil(fs, reg, extra);
+    }
+  }
+}
+
+
+static void enterlevel (LexState *ls) {
+  if (++ls->L->nCcalls > LUAI_MAXCCALLS)
+	luaX_lexerror(ls, "chunk has too many syntax levels", 0);
+}
+
+
+#define leavelevel(ls)	((ls)->L->nCcalls--)
+
+
+static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isbreakable) {
+  bl->breaklist = NO_JUMP;
+  bl->isbreakable = isbreakable;
+  bl->nactvar = fs->nactvar;
+  bl->upval = 0;
+  bl->previous = fs->bl;
+  fs->bl = bl;
+  lua_assert(fs->freereg == fs->nactvar);
+}
+
+
+static void leaveblock (FuncState *fs) {
+  BlockCnt *bl = fs->bl;
+  fs->bl = bl->previous;
+  removevars(fs->ls, bl->nactvar);
+  if (bl->upval)
+    luaK_codeABC(fs, OP_CLOSE, bl->nactvar, 0, 0);
+  /* a block either controls scope or breaks (never both) */
+  lua_assert(!bl->isbreakable || !bl->upval);
+  lua_assert(bl->nactvar == fs->nactvar);
+  fs->freereg = fs->nactvar;  /* free registers */
+  luaK_patchtohere(fs, bl->breaklist);
+}
+
+
+static void pushclosure (LexState *ls, FuncState *func, expdesc *v) {
+  FuncState *fs = ls->fs;
+  Proto *f = fs->f;
+  int oldsize = f->sizep;
+  int i;
+  luaM_growvector(ls->L, f->p, fs->np, f->sizep, Proto *,
+                  MAXARG_Bx, "constant table overflow");
+  while (oldsize < f->sizep) f->p[oldsize++] = NULL;
+  f->p[fs->np++] = func->f;
+  luaC_objbarrier(ls->L, f, func->f);
+  init_exp(v, VRELOCABLE, luaK_codeABx(fs, OP_CLOSURE, 0, fs->np-1));
+  for (i=0; i<func->f->nups; i++) {
+    OpCode o = (func->upvalues[i].k == VLOCAL) ? OP_MOVE : OP_GETUPVAL;
+    luaK_codeABC(fs, o, 0, func->upvalues[i].info, 0);
+  }
+}
+
+
+static void open_func (LexState *ls, FuncState *fs) {
+  lua_State *L = ls->L;
+  Proto *f = luaF_newproto(L);
+  fs->f = f;
+  fs->prev = ls->fs;  /* linked list of funcstates */
+  fs->ls = ls;
+  fs->L = L;
+  ls->fs = fs;
+  fs->pc = 0;
+  fs->lasttarget = -1;
+  fs->jpc = NO_JUMP;
+  fs->freereg = 0;
+  fs->nk = 0;
+  fs->np = 0;
+  fs->nlocvars = 0;
+  fs->nactvar = 0;
+  fs->bl = NULL;
+  f->source = ls->source;
+  f->maxstacksize = 2;  /* registers 0/1 are always valid */
+  fs->h = luaH_new(L, 0, 0);
+  /* anchor table of constants and prototype (to avoid being collected) */
+  sethvalue2s(L, L->top, fs->h);
+  incr_top(L);
+  setptvalue2s(L, L->top, f);
+  incr_top(L);
+}
+
+
+static void close_func (LexState *ls) {
+  lua_State *L = ls->L;
+  FuncState *fs = ls->fs;
+  Proto *f = fs->f;
+  removevars(ls, 0);
+  luaK_ret(fs, 0, 0);  /* final return */
+  luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction);
+  f->sizecode = fs->pc;
+  luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, int);
+  f->sizelineinfo = fs->pc;
+  luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue);
+  f->sizek = fs->nk;
+  luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *);
+  f->sizep = fs->np;
+  luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar);
+  f->sizelocvars = fs->nlocvars;
+  luaM_reallocvector(L, f->upvalues, f->sizeupvalues, f->nups, TString *);
+  f->sizeupvalues = f->nups;
+  lua_assert(luaG_checkcode(f));
+  lua_assert(fs->bl == NULL);
+  ls->fs = fs->prev;
+  L->top -= 2;  /* remove table and prototype from the stack */
+  /* last token read was anchored in defunct function; must reanchor it */
+  if (fs) anchor_token(ls);
+}
+
+
+Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *name) {
+  struct LexState lexstate;
+  struct FuncState funcstate;
+  lexstate.buff = buff;
+  luaX_setinput(L, &lexstate, z, luaS_new(L, name));
+  open_func(&lexstate, &funcstate);
+  funcstate.f->is_vararg = VARARG_ISVARARG;  /* main func. is always vararg */
+  luaX_next(&lexstate);  /* read first token */
+  chunk(&lexstate);
+  check(&lexstate, TK_EOS);
+  close_func(&lexstate);
+  lua_assert(funcstate.prev == NULL);
+  lua_assert(funcstate.f->nups == 0);
+  lua_assert(lexstate.fs == NULL);
+  return funcstate.f;
+}
+
+
+
+/*============================================================*/
+/* GRAMMAR RULES */
+/*============================================================*/
+
+
+static void field (LexState *ls, expdesc *v) {
+  /* field -> ['.' | ':'] NAME */
+  FuncState *fs = ls->fs;
+  expdesc key;
+  luaK_exp2anyreg(fs, v);
+  luaX_next(ls);  /* skip the dot or colon */
+  checkname(ls, &key);
+  luaK_indexed(fs, v, &key);
+}
+
+
+static void yindex (LexState *ls, expdesc *v) {
+  /* index -> '[' expr ']' */
+  luaX_next(ls);  /* skip the '[' */
+  expr(ls, v);
+  luaK_exp2val(ls->fs, v);
+  checknext(ls, ']');
+}
+
+
+/*
+** {======================================================================
+** Rules for Constructors
+** =======================================================================
+*/
+
+
+struct ConsControl {
+  expdesc v;  /* last list item read */
+  expdesc *t;  /* table descriptor */
+  int nh;  /* total number of `record' elements */
+  int na;  /* total number of array elements */
+  int tostore;  /* number of array elements pending to be stored */
+};
+
+
+static void recfield (LexState *ls, struct ConsControl *cc) {
+  /* recfield -> (NAME | `['exp1`]') = exp1 */
+  FuncState *fs = ls->fs;
+  int reg = ls->fs->freereg;
+  expdesc key, val;
+  int rkkey;
+  if (ls->t.token == TK_NAME) {
+    luaY_checklimit(fs, cc->nh, MAX_INT, "items in a constructor");
+    checkname(ls, &key);
+  }
+  else  /* ls->t.token == '[' */
+    yindex(ls, &key);
+  cc->nh++;
+  checknext(ls, '=');
+  rkkey = luaK_exp2RK(fs, &key);
+  expr(ls, &val);
+  luaK_codeABC(fs, OP_SETTABLE, cc->t->u.s.info, rkkey, luaK_exp2RK(fs, &val));
+  fs->freereg = reg;  /* free registers */
+}
+
+
+static void closelistfield (FuncState *fs, struct ConsControl *cc) {
+  if (cc->v.k == VVOID) return;  /* there is no list item */
+  luaK_exp2nextreg(fs, &cc->v);
+  cc->v.k = VVOID;
+  if (cc->tostore == LFIELDS_PER_FLUSH) {
+    luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore);  /* flush */
+    cc->tostore = 0;  /* no more items pending */
+  }
+}
+
+
+static void lastlistfield (FuncState *fs, struct ConsControl *cc) {
+  if (cc->tostore == 0) return;
+  if (hasmultret(cc->v.k)) {
+    luaK_setmultret(fs, &cc->v);
+    luaK_setlist(fs, cc->t->u.s.info, cc->na, LUA_MULTRET);
+    cc->na--;  /* do not count last expression (unknown number of elements) */
+  }
+  else {
+    if (cc->v.k != VVOID)
+      luaK_exp2nextreg(fs, &cc->v);
+    luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore);
+  }
+}
+
+
+static void listfield (LexState *ls, struct ConsControl *cc) {
+  expr(ls, &cc->v);
+  luaY_checklimit(ls->fs, cc->na, MAX_INT, "items in a constructor");
+  cc->na++;
+  cc->tostore++;
+}
+
+
+static void constructor (LexState *ls, expdesc *t) {
+  /* constructor -> ?? */
+  FuncState *fs = ls->fs;
+  int line = ls->linenumber;
+  int pc = luaK_codeABC(fs, OP_NEWTABLE, 0, 0, 0);
+  struct ConsControl cc;
+  cc.na = cc.nh = cc.tostore = 0;
+  cc.t = t;
+  init_exp(t, VRELOCABLE, pc);
+  init_exp(&cc.v, VVOID, 0);  /* no value (yet) */
+  luaK_exp2nextreg(ls->fs, t);  /* fix it at stack top (for gc) */
+  checknext(ls, '{');
+  do {
+    lua_assert(cc.v.k == VVOID || cc.tostore > 0);
+    if (ls->t.token == '}') break;
+    closelistfield(fs, &cc);
+    switch(ls->t.token) {
+      case TK_NAME: {  /* may be listfields or recfields */
+        luaX_lookahead(ls);
+        if (ls->lookahead.token != '=')  /* expression? */
+          listfield(ls, &cc);
+        else
+          recfield(ls, &cc);
+        break;
+      }
+      case '[': {  /* constructor_item -> recfield */
+        recfield(ls, &cc);
+        break;
+      }
+      default: {  /* constructor_part -> listfield */
+        listfield(ls, &cc);
+        break;
+      }
+    }
+  } while (testnext(ls, ',') || testnext(ls, ';'));
+  check_match(ls, '}', '{', line);
+  lastlistfield(fs, &cc);
+  SETARG_B(fs->f->code[pc], luaO_int2fb(cc.na)); /* set initial array size */
+  SETARG_C(fs->f->code[pc], luaO_int2fb(cc.nh));  /* set initial table size */
+}
+
+/* }====================================================================== */
+
+
+
+static void parlist (LexState *ls) {
+  /* parlist -> [ param { `,' param } ] */
+  FuncState *fs = ls->fs;
+  Proto *f = fs->f;
+  int nparams = 0;
+  f->is_vararg = 0;
+  if (ls->t.token != ')') {  /* is `parlist' not empty? */
+    do {
+      switch (ls->t.token) {
+        case TK_NAME: {  /* param -> NAME */
+          new_localvar(ls, str_checkname(ls), nparams++);
+          break;
+        }
+        case TK_DOTS: {  /* param -> `...' */
+          luaX_next(ls);
+#if defined(LUA_COMPAT_VARARG)
+          /* use `arg' as default name */
+          new_localvarliteral(ls, "arg", nparams++);
+          f->is_vararg = VARARG_HASARG | VARARG_NEEDSARG;
+#endif
+          f->is_vararg |= VARARG_ISVARARG;
+          break;
+        }
+        default: luaX_syntaxerror(ls, "<name> or " LUA_QL("...") " expected");
+      }
+    } while (!f->is_vararg && testnext(ls, ','));
+  }
+  adjustlocalvars(ls, nparams);
+  f->numparams = cast_byte(fs->nactvar - (f->is_vararg & VARARG_HASARG));
+  luaK_reserveregs(fs, fs->nactvar);  /* reserve register for parameters */
+}
+
+
+static void body (LexState *ls, expdesc *e, int needself, int line) {
+  /* body ->  `(' parlist `)' chunk END */
+  FuncState new_fs;
+  open_func(ls, &new_fs);
+  new_fs.f->linedefined = line;
+  checknext(ls, '(');
+  if (needself) {
+    new_localvarliteral(ls, "self", 0);
+    adjustlocalvars(ls, 1);
+  }
+  parlist(ls);
+  checknext(ls, ')');
+  chunk(ls);
+  new_fs.f->lastlinedefined = ls->linenumber;
+  check_match(ls, TK_END, TK_FUNCTION, line);
+  close_func(ls);
+  pushclosure(ls, &new_fs, e);
+}
+
+
+static int explist1 (LexState *ls, expdesc *v) {
+  /* explist1 -> expr { `,' expr } */
+  int n = 1;  /* at least one expression */
+  expr(ls, v);
+  while (testnext(ls, ',')) {
+    luaK_exp2nextreg(ls->fs, v);
+    expr(ls, v);
+    n++;
+  }
+  return n;
+}
+
+
+static void funcargs (LexState *ls, expdesc *f) {
+  FuncState *fs = ls->fs;
+  expdesc args;
+  int base, nparams;
+  int line = ls->linenumber;
+  switch (ls->t.token) {
+    case '(': {  /* funcargs -> `(' [ explist1 ] `)' */
+      if (line != ls->lastline)
+        luaX_syntaxerror(ls,"ambiguous syntax (function call x new statement)");
+      luaX_next(ls);
+      if (ls->t.token == ')')  /* arg list is empty? */
+        args.k = VVOID;
+      else {
+        explist1(ls, &args);
+        luaK_setmultret(fs, &args);
+      }
+      check_match(ls, ')', '(', line);
+      break;
+    }
+    case '{': {  /* funcargs -> constructor */
+      constructor(ls, &args);
+      break;
+    }
+    case TK_STRING: {  /* funcargs -> STRING */
+      codestring(ls, &args, ls->t.seminfo.ts);
+      luaX_next(ls);  /* must use `seminfo' before `next' */
+      break;
+    }
+    default: {
+      luaX_syntaxerror(ls, "function arguments expected");
+      return;
+    }
+  }
+  lua_assert(f->k == VNONRELOC);
+  base = f->u.s.info;  /* base register for call */
+  if (hasmultret(args.k))
+    nparams = LUA_MULTRET;  /* open call */
+  else {
+    if (args.k != VVOID)
+      luaK_exp2nextreg(fs, &args);  /* close last argument */
+    nparams = fs->freereg - (base+1);
+  }
+  init_exp(f, VCALL, luaK_codeABC(fs, OP_CALL, base, nparams+1, 2));
+  luaK_fixline(fs, line);
+  fs->freereg = base+1;  /* call remove function and arguments and leaves
+                            (unless changed) one result */
+}
+
+
+
+
+/*
+** {======================================================================
+** Expression parsing
+** =======================================================================
+*/
+
+
+static void prefixexp (LexState *ls, expdesc *v) {
+  /* prefixexp -> NAME | '(' expr ')' */
+  switch (ls->t.token) {
+    case '(': {
+      int line = ls->linenumber;
+      luaX_next(ls);
+      expr(ls, v);
+      check_match(ls, ')', '(', line);
+      luaK_dischargevars(ls->fs, v);
+      return;
+    }
+    case TK_NAME: {
+      singlevar(ls, v);
+      return;
+    }
+    default: {
+      luaX_syntaxerror(ls, "unexpected symbol");
+      return;
+    }
+  }
+}
+
+
+static void primaryexp (LexState *ls, expdesc *v) {
+  /* primaryexp ->
+        prefixexp { `.' NAME | `[' exp `]' | `:' NAME funcargs | funcargs } */
+  FuncState *fs = ls->fs;
+  prefixexp(ls, v);
+  for (;;) {
+    switch (ls->t.token) {
+      case '.': {  /* field */
+        field(ls, v);
+        break;
+      }
+      case '[': {  /* `[' exp1 `]' */
+        expdesc key;
+        luaK_exp2anyreg(fs, v);
+        yindex(ls, &key);
+        luaK_indexed(fs, v, &key);
+        break;
+      }
+      case ':': {  /* `:' NAME funcargs */
+        expdesc key;
+        luaX_next(ls);
+        checkname(ls, &key);
+        luaK_self(fs, v, &key);
+        funcargs(ls, v);
+        break;
+      }
+      case '(': case TK_STRING: case '{': {  /* funcargs */
+        luaK_exp2nextreg(fs, v);
+        funcargs(ls, v);
+        break;
+      }
+      default: return;
+    }
+  }
+}
+
+
+static void simpleexp (LexState *ls, expdesc *v) {
+  /* simpleexp -> NUMBER | STRING | NIL | true | false | ... |
+                  constructor | FUNCTION body | primaryexp */
+  switch (ls->t.token) {
+    case TK_NUMBER: {
+      init_exp(v, VKNUM, 0);
+      v->u.nval = ls->t.seminfo.r;
+      break;
+    }
+    case TK_STRING: {
+      codestring(ls, v, ls->t.seminfo.ts);
+      break;
+    }
+    case TK_NIL: {
+      init_exp(v, VNIL, 0);
+      break;
+    }
+    case TK_TRUE: {
+      init_exp(v, VTRUE, 0);
+      break;
+    }
+    case TK_FALSE: {
+      init_exp(v, VFALSE, 0);
+      break;
+    }
+    case TK_DOTS: {  /* vararg */
+      FuncState *fs = ls->fs;
+      check_condition(ls, fs->f->is_vararg,
+                      "cannot use " LUA_QL("...") " outside a vararg function");
+      fs->f->is_vararg &= ~VARARG_NEEDSARG;  /* don't need 'arg' */
+      init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, 0));
+      break;
+    }
+    case '{': {  /* constructor */
+      constructor(ls, v);
+      return;
+    }
+    case TK_FUNCTION: {
+      luaX_next(ls);
+      body(ls, v, 0, ls->linenumber);
+      return;
+    }
+    default: {
+      primaryexp(ls, v);
+      return;
+    }
+  }
+  luaX_next(ls);
+}
+
+
+static UnOpr getunopr (int op) {
+  switch (op) {
+    case TK_NOT: return OPR_NOT;
+    case '-': return OPR_MINUS;
+    case '#': return OPR_LEN;
+    default: return OPR_NOUNOPR;
+  }
+}
+
+
+static BinOpr getbinopr (int op) {
+  switch (op) {
+    case '+': return OPR_ADD;
+    case '-': return OPR_SUB;
+    case '*': return OPR_MUL;
+    case '/': return OPR_DIV;
+    case '%': return OPR_MOD;
+    case '^': return OPR_POW;
+    case TK_CONCAT: return OPR_CONCAT;
+    case TK_NE: return OPR_NE;
+    case TK_EQ: return OPR_EQ;
+    case '<': return OPR_LT;
+    case TK_LE: return OPR_LE;
+    case '>': return OPR_GT;
+    case TK_GE: return OPR_GE;
+    case TK_AND: return OPR_AND;
+    case TK_OR: return OPR_OR;
+    default: return OPR_NOBINOPR;
+  }
+}
+
+
+static const struct {
+  lu_byte left;  /* left priority for each binary operator */
+  lu_byte right; /* right priority */
+} priority[] = {  /* ORDER OPR */
+   {6, 6}, {6, 6}, {7, 7}, {7, 7}, {7, 7},  /* `+' `-' `/' `%' */
+   {10, 9}, {5, 4},                 /* power and concat (right associative) */
+   {3, 3}, {3, 3},                  /* equality and inequality */
+   {3, 3}, {3, 3}, {3, 3}, {3, 3},  /* order */
+   {2, 2}, {1, 1}                   /* logical (and/or) */
+};
+
+#define UNARY_PRIORITY	8  /* priority for unary operators */
+
+
+/*
+** subexpr -> (simpleexp | unop subexpr) { binop subexpr }
+** where `binop' is any binary operator with a priority higher than `limit'
+*/
+static BinOpr subexpr (LexState *ls, expdesc *v, unsigned int limit) {
+  BinOpr op;
+  UnOpr uop;
+  enterlevel(ls);
+  uop = getunopr(ls->t.token);
+  if (uop != OPR_NOUNOPR) {
+    luaX_next(ls);
+    subexpr(ls, v, UNARY_PRIORITY);
+    luaK_prefix(ls->fs, uop, v);
+  }
+  else simpleexp(ls, v);
+  /* expand while operators have priorities higher than `limit' */
+  op = getbinopr(ls->t.token);
+  while (op != OPR_NOBINOPR && priority[op].left > limit) {
+    expdesc v2;
+    BinOpr nextop;
+    luaX_next(ls);
+    luaK_infix(ls->fs, op, v);
+    /* read sub-expression with higher priority */
+    nextop = subexpr(ls, &v2, priority[op].right);
+    luaK_posfix(ls->fs, op, v, &v2);
+    op = nextop;
+  }
+  leavelevel(ls);
+  return op;  /* return first untreated operator */
+}
+
+
+static void expr (LexState *ls, expdesc *v) {
+  subexpr(ls, v, 0);
+}
+
+/* }==================================================================== */
+
+
+
+/*
+** {======================================================================
+** Rules for Statements
+** =======================================================================
+*/
+
+
+static int block_follow (int token) {
+  switch (token) {
+    case TK_ELSE: case TK_ELSEIF: case TK_END:
+    case TK_UNTIL: case TK_EOS:
+      return 1;
+    default: return 0;
+  }
+}
+
+
+static void block (LexState *ls) {
+  /* block -> chunk */
+  FuncState *fs = ls->fs;
+  BlockCnt bl;
+  enterblock(fs, &bl, 0);
+  chunk(ls);
+  lua_assert(bl.breaklist == NO_JUMP);
+  leaveblock(fs);
+}
+
+
+/*
+** structure to chain all variables in the left-hand side of an
+** assignment
+*/
+struct LHS_assign {
+  struct LHS_assign *prev;
+  expdesc v;  /* variable (global, local, upvalue, or indexed) */
+};
+
+
+/*
+** check whether, in an assignment to a local variable, the local variable
+** is needed in a previous assignment (to a table). If so, save original
+** local value in a safe place and use this safe copy in the previous
+** assignment.
+*/
+static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc *v) {
+  FuncState *fs = ls->fs;
+  int extra = fs->freereg;  /* eventual position to save local variable */
+  int conflict = 0;
+  for (; lh; lh = lh->prev) {
+    if (lh->v.k == VINDEXED) {
+      if (lh->v.u.s.info == v->u.s.info) {  /* conflict? */
+        conflict = 1;
+        lh->v.u.s.info = extra;  /* previous assignment will use safe copy */
+      }
+      if (lh->v.u.s.aux == v->u.s.info) {  /* conflict? */
+        conflict = 1;
+        lh->v.u.s.aux = extra;  /* previous assignment will use safe copy */
+      }
+    }
+  }
+  if (conflict) {
+    luaK_codeABC(fs, OP_MOVE, fs->freereg, v->u.s.info, 0);  /* make copy */
+    luaK_reserveregs(fs, 1);
+  }
+}
+
+
+static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) {
+  expdesc e;
+  check_condition(ls, VLOCAL <= lh->v.k && lh->v.k <= VINDEXED,
+                      "syntax error");
+  if (testnext(ls, ',')) {  /* assignment -> `,' primaryexp assignment */
+    struct LHS_assign nv;
+    nv.prev = lh;
+    primaryexp(ls, &nv.v);
+    if (nv.v.k == VLOCAL)
+      check_conflict(ls, lh, &nv.v);
+    luaY_checklimit(ls->fs, nvars, LUAI_MAXCCALLS - ls->L->nCcalls,
+                    "variables in assignment");
+    assignment(ls, &nv, nvars+1);
+  }
+  else {  /* assignment -> `=' explist1 */
+    int nexps;
+    checknext(ls, '=');
+    nexps = explist1(ls, &e);
+    if (nexps != nvars) {
+      adjust_assign(ls, nvars, nexps, &e);
+      if (nexps > nvars)
+        ls->fs->freereg -= nexps - nvars;  /* remove extra values */
+    }
+    else {
+      luaK_setoneret(ls->fs, &e);  /* close last expression */
+      luaK_storevar(ls->fs, &lh->v, &e);
+      return;  /* avoid default */
+    }
+  }
+  init_exp(&e, VNONRELOC, ls->fs->freereg-1);  /* default assignment */
+  luaK_storevar(ls->fs, &lh->v, &e);
+}
+
+
+static int cond (LexState *ls) {
+  /* cond -> exp */
+  expdesc v;
+  expr(ls, &v);  /* read condition */
+  if (v.k == VNIL) v.k = VFALSE;  /* `falses' are all equal here */
+  luaK_goiftrue(ls->fs, &v);
+  return v.f;
+}
+
+
+static void breakstat (LexState *ls) {
+  FuncState *fs = ls->fs;
+  BlockCnt *bl = fs->bl;
+  int upval = 0;
+  while (bl && !bl->isbreakable) {
+    upval |= bl->upval;
+    bl = bl->previous;
+  }
+  if (!bl)
+    luaX_syntaxerror(ls, "no loop to break");
+  if (upval)
+    luaK_codeABC(fs, OP_CLOSE, bl->nactvar, 0, 0);
+  luaK_concat(fs, &bl->breaklist, luaK_jump(fs));
+}
+
+
+static void whilestat (LexState *ls, int line) {
+  /* whilestat -> WHILE cond DO block END */
+  FuncState *fs = ls->fs;
+  int whileinit;
+  int condexit;
+  BlockCnt bl;
+  luaX_next(ls);  /* skip WHILE */
+  whileinit = luaK_getlabel(fs);
+  condexit = cond(ls);
+  enterblock(fs, &bl, 1);
+  checknext(ls, TK_DO);
+  block(ls);
+  luaK_patchlist(fs, luaK_jump(fs), whileinit);
+  check_match(ls, TK_END, TK_WHILE, line);
+  leaveblock(fs);
+  luaK_patchtohere(fs, condexit);  /* false conditions finish the loop */
+}
+
+
+static void repeatstat (LexState *ls, int line) {
+  /* repeatstat -> REPEAT block UNTIL cond */
+  int condexit;
+  FuncState *fs = ls->fs;
+  int repeat_init = luaK_getlabel(fs);
+  BlockCnt bl1, bl2;
+  enterblock(fs, &bl1, 1);  /* loop block */
+  enterblock(fs, &bl2, 0);  /* scope block */
+  luaX_next(ls);  /* skip REPEAT */
+  chunk(ls);
+  check_match(ls, TK_UNTIL, TK_REPEAT, line);
+  condexit = cond(ls);  /* read condition (inside scope block) */
+  if (!bl2.upval) {  /* no upvalues? */
+    leaveblock(fs);  /* finish scope */
+    luaK_patchlist(ls->fs, condexit, repeat_init);  /* close the loop */
+  }
+  else {  /* complete semantics when there are upvalues */
+    breakstat(ls);  /* if condition then break */
+    luaK_patchtohere(ls->fs, condexit);  /* else... */
+    leaveblock(fs);  /* finish scope... */
+    luaK_patchlist(ls->fs, luaK_jump(fs), repeat_init);  /* and repeat */
+  }
+  leaveblock(fs);  /* finish loop */
+}
+
+
+static int exp1 (LexState *ls) {
+  expdesc e;
+  int k;
+  expr(ls, &e);
+  k = e.k;
+  luaK_exp2nextreg(ls->fs, &e);
+  return k;
+}
+
+
+static void forbody (LexState *ls, int base, int line, int nvars, int isnum) {
+  /* forbody -> DO block */
+  BlockCnt bl;
+  FuncState *fs = ls->fs;
+  int prep, endfor;
+  adjustlocalvars(ls, 3);  /* control variables */
+  checknext(ls, TK_DO);
+  prep = isnum ? luaK_codeAsBx(fs, OP_FORPREP, base, NO_JUMP) : luaK_jump(fs);
+  enterblock(fs, &bl, 0);  /* scope for declared variables */
+  adjustlocalvars(ls, nvars);
+  luaK_reserveregs(fs, nvars);
+  block(ls);
+  leaveblock(fs);  /* end of scope for declared variables */
+  luaK_patchtohere(fs, prep);
+  endfor = (isnum) ? luaK_codeAsBx(fs, OP_FORLOOP, base, NO_JUMP) :
+                     luaK_codeABC(fs, OP_TFORLOOP, base, 0, nvars);
+  luaK_fixline(fs, line);  /* pretend that `OP_FOR' starts the loop */
+  luaK_patchlist(fs, (isnum ? endfor : luaK_jump(fs)), prep + 1);
+}
+
+
+static void fornum (LexState *ls, TString *varname, int line) {
+  /* fornum -> NAME = exp1,exp1[,exp1] forbody */
+  FuncState *fs = ls->fs;
+  int base = fs->freereg;
+  new_localvarliteral(ls, "(for index)", 0);
+  new_localvarliteral(ls, "(for limit)", 1);
+  new_localvarliteral(ls, "(for step)", 2);
+  new_localvar(ls, varname, 3);
+  checknext(ls, '=');
+  exp1(ls);  /* initial value */
+  checknext(ls, ',');
+  exp1(ls);  /* limit */
+  if (testnext(ls, ','))
+    exp1(ls);  /* optional step */
+  else {  /* default step = 1 */
+    luaK_codeABx(fs, OP_LOADK, fs->freereg, luaK_numberK(fs, 1));
+    luaK_reserveregs(fs, 1);
+  }
+  forbody(ls, base, line, 1, 1);
+}
+
+
+static void forlist (LexState *ls, TString *indexname) {
+  /* forlist -> NAME {,NAME} IN explist1 forbody */
+  FuncState *fs = ls->fs;
+  expdesc e;
+  int nvars = 0;
+  int line;
+  int base = fs->freereg;
+  /* create control variables */
+  new_localvarliteral(ls, "(for generator)", nvars++);
+  new_localvarliteral(ls, "(for state)", nvars++);
+  new_localvarliteral(ls, "(for control)", nvars++);
+  /* create declared variables */
+  new_localvar(ls, indexname, nvars++);
+  while (testnext(ls, ','))
+    new_localvar(ls, str_checkname(ls), nvars++);
+  checknext(ls, TK_IN);
+  line = ls->linenumber;
+  adjust_assign(ls, 3, explist1(ls, &e), &e);
+  luaK_checkstack(fs, 3);  /* extra space to call generator */
+  forbody(ls, base, line, nvars - 3, 0);
+}
+
+
+static void forstat (LexState *ls, int line) {
+  /* forstat -> FOR (fornum | forlist) END */
+  FuncState *fs = ls->fs;
+  TString *varname;
+  BlockCnt bl;
+  enterblock(fs, &bl, 1);  /* scope for loop and control variables */
+  luaX_next(ls);  /* skip `for' */
+  varname = str_checkname(ls);  /* first variable name */
+  switch (ls->t.token) {
+    case '=': fornum(ls, varname, line); break;
+    case ',': case TK_IN: forlist(ls, varname); break;
+    default: luaX_syntaxerror(ls, LUA_QL("=") " or " LUA_QL("in") " expected");
+  }
+  check_match(ls, TK_END, TK_FOR, line);
+  leaveblock(fs);  /* loop scope (`break' jumps to this point) */
+}
+
+
+static int test_then_block (LexState *ls) {
+  /* test_then_block -> [IF | ELSEIF] cond THEN block */
+  int condexit;
+  luaX_next(ls);  /* skip IF or ELSEIF */
+  condexit = cond(ls);
+  checknext(ls, TK_THEN);
+  block(ls);  /* `then' part */
+  return condexit;
+}
+
+
+static void ifstat (LexState *ls, int line) {
+  /* ifstat -> IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END */
+  FuncState *fs = ls->fs;
+  int flist;
+  int escapelist = NO_JUMP;
+  flist = test_then_block(ls);  /* IF cond THEN block */
+  while (ls->t.token == TK_ELSEIF) {
+    luaK_concat(fs, &escapelist, luaK_jump(fs));
+    luaK_patchtohere(fs, flist);
+    flist = test_then_block(ls);  /* ELSEIF cond THEN block */
+  }
+  if (ls->t.token == TK_ELSE) {
+    luaK_concat(fs, &escapelist, luaK_jump(fs));
+    luaK_patchtohere(fs, flist);
+    luaX_next(ls);  /* skip ELSE (after patch, for correct line info) */
+    block(ls);  /* `else' part */
+  }
+  else
+    luaK_concat(fs, &escapelist, flist);
+  luaK_patchtohere(fs, escapelist);
+  check_match(ls, TK_END, TK_IF, line);
+}
+
+
+static void localfunc (LexState *ls) {
+  expdesc v, b;
+  FuncState *fs = ls->fs;
+  new_localvar(ls, str_checkname(ls), 0);
+  init_exp(&v, VLOCAL, fs->freereg);
+  luaK_reserveregs(fs, 1);
+  adjustlocalvars(ls, 1);
+  body(ls, &b, 0, ls->linenumber);
+  luaK_storevar(fs, &v, &b);
+  /* debug information will only see the variable after this point! */
+  getlocvar(fs, fs->nactvar - 1).startpc = fs->pc;
+}
+
+
+static void localstat (LexState *ls) {
+  /* stat -> LOCAL NAME {`,' NAME} [`=' explist1] */
+  int nvars = 0;
+  int nexps;
+  expdesc e;
+  do {
+    new_localvar(ls, str_checkname(ls), nvars++);
+  } while (testnext(ls, ','));
+  if (testnext(ls, '='))
+    nexps = explist1(ls, &e);
+  else {
+    e.k = VVOID;
+    nexps = 0;
+  }
+  adjust_assign(ls, nvars, nexps, &e);
+  adjustlocalvars(ls, nvars);
+}
+
+
+static int funcname (LexState *ls, expdesc *v) {
+  /* funcname -> NAME {field} [`:' NAME] */
+  int needself = 0;
+  singlevar(ls, v);
+  while (ls->t.token == '.')
+    field(ls, v);
+  if (ls->t.token == ':') {
+    needself = 1;
+    field(ls, v);
+  }
+  return needself;
+}
+
+
+static void funcstat (LexState *ls, int line) {
+  /* funcstat -> FUNCTION funcname body */
+  int needself;
+  expdesc v, b;
+  luaX_next(ls);  /* skip FUNCTION */
+  needself = funcname(ls, &v);
+  body(ls, &b, needself, line);
+  luaK_storevar(ls->fs, &v, &b);
+  luaK_fixline(ls->fs, line);  /* definition `happens' in the first line */
+}
+
+
+static void exprstat (LexState *ls) {
+  /* stat -> func | assignment */
+  FuncState *fs = ls->fs;
+  struct LHS_assign v;
+  primaryexp(ls, &v.v);
+  if (v.v.k == VCALL)  /* stat -> func */
+    SETARG_C(getcode(fs, &v.v), 1);  /* call statement uses no results */
+  else {  /* stat -> assignment */
+    v.prev = NULL;
+    assignment(ls, &v, 1);
+  }
+}
+
+
+static void retstat (LexState *ls) {
+  /* stat -> RETURN explist */
+  FuncState *fs = ls->fs;
+  expdesc e;
+  int first, nret;  /* registers with returned values */
+  luaX_next(ls);  /* skip RETURN */
+  if (block_follow(ls->t.token) || ls->t.token == ';')
+    first = nret = 0;  /* return no values */
+  else {
+    nret = explist1(ls, &e);  /* optional return values */
+    if (hasmultret(e.k)) {
+      luaK_setmultret(fs, &e);
+      if (e.k == VCALL && nret == 1) {  /* tail call? */
+        SET_OPCODE(getcode(fs,&e), OP_TAILCALL);
+        lua_assert(GETARG_A(getcode(fs,&e)) == fs->nactvar);
+      }
+      first = fs->nactvar;
+      nret = LUA_MULTRET;  /* return all values */
+    }
+    else {
+      if (nret == 1)  /* only one single value? */
+        first = luaK_exp2anyreg(fs, &e);
+      else {
+        luaK_exp2nextreg(fs, &e);  /* values must go to the `stack' */
+        first = fs->nactvar;  /* return all `active' values */
+        lua_assert(nret == fs->freereg - first);
+      }
+    }
+  }
+  luaK_ret(fs, first, nret);
+}
+
+
+static int statement (LexState *ls) {
+  int line = ls->linenumber;  /* may be needed for error messages */
+  switch (ls->t.token) {
+    case TK_IF: {  /* stat -> ifstat */
+      ifstat(ls, line);
+      return 0;
+    }
+    case TK_WHILE: {  /* stat -> whilestat */
+      whilestat(ls, line);
+      return 0;
+    }
+    case TK_DO: {  /* stat -> DO block END */
+      luaX_next(ls);  /* skip DO */
+      block(ls);
+      check_match(ls, TK_END, TK_DO, line);
+      return 0;
+    }
+    case TK_FOR: {  /* stat -> forstat */
+      forstat(ls, line);
+      return 0;
+    }
+    case TK_REPEAT: {  /* stat -> repeatstat */
+      repeatstat(ls, line);
+      return 0;
+    }
+    case TK_FUNCTION: {
+      funcstat(ls, line);  /* stat -> funcstat */
+      return 0;
+    }
+    case TK_LOCAL: {  /* stat -> localstat */
+      luaX_next(ls);  /* skip LOCAL */
+      if (testnext(ls, TK_FUNCTION))  /* local function? */
+        localfunc(ls);
+      else
+        localstat(ls);
+      return 0;
+    }
+    case TK_RETURN: {  /* stat -> retstat */
+      retstat(ls);
+      return 1;  /* must be last statement */
+    }
+    case TK_BREAK: {  /* stat -> breakstat */
+      luaX_next(ls);  /* skip BREAK */
+      breakstat(ls);
+      return 1;  /* must be last statement */
+    }
+    default: {
+      exprstat(ls);
+      return 0;  /* to avoid warnings */
+    }
+  }
+}
+
+
+static void chunk (LexState *ls) {
+  /* chunk -> { stat [`;'] } */
+  int islast = 0;
+  enterlevel(ls);
+  while (!islast && !block_follow(ls->t.token)) {
+    islast = statement(ls);
+    testnext(ls, ';');
+    lua_assert(ls->fs->f->maxstacksize >= ls->fs->freereg &&
+               ls->fs->freereg >= ls->fs->nactvar);
+    ls->fs->freereg = ls->fs->nactvar;  /* free registers */
+  }
+  leavelevel(ls);
+}
+
+/* }====================================================================== */

Added: test-suite/trunk/MultiSource/Applications/lua/lparser.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lparser.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lparser.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lparser.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,82 @@
+/*
+** $Id: lparser.h,v 1.57.1.1 2007/12/27 13:02:25 roberto Exp $
+** Lua Parser
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lparser_h
+#define lparser_h
+
+#include "llimits.h"
+#include "lobject.h"
+#include "lzio.h"
+
+
+/*
+** Expression descriptor
+*/
+
+typedef enum {
+  VVOID,	/* no value */
+  VNIL,
+  VTRUE,
+  VFALSE,
+  VK,		/* info = index of constant in `k' */
+  VKNUM,	/* nval = numerical value */
+  VLOCAL,	/* info = local register */
+  VUPVAL,       /* info = index of upvalue in `upvalues' */
+  VGLOBAL,	/* info = index of table; aux = index of global name in `k' */
+  VINDEXED,	/* info = table register; aux = index register (or `k') */
+  VJMP,		/* info = instruction pc */
+  VRELOCABLE,	/* info = instruction pc */
+  VNONRELOC,	/* info = result register */
+  VCALL,	/* info = instruction pc */
+  VVARARG	/* info = instruction pc */
+} expkind;
+
+typedef struct expdesc {
+  expkind k;
+  union {
+    struct { int info, aux; } s;
+    lua_Number nval;
+  } u;
+  int t;  /* patch list of `exit when true' */
+  int f;  /* patch list of `exit when false' */
+} expdesc;
+
+
+typedef struct upvaldesc {
+  lu_byte k;
+  lu_byte info;
+} upvaldesc;
+
+
+struct BlockCnt;  /* defined in lparser.c */
+
+
+/* state needed to generate code for a given function */
+typedef struct FuncState {
+  Proto *f;  /* current function header */
+  Table *h;  /* table to find (and reuse) elements in `k' */
+  struct FuncState *prev;  /* enclosing function */
+  struct LexState *ls;  /* lexical state */
+  struct lua_State *L;  /* copy of the Lua state */
+  struct BlockCnt *bl;  /* chain of current blocks */
+  int pc;  /* next position to code (equivalent to `ncode') */
+  int lasttarget;   /* `pc' of last `jump target' */
+  int jpc;  /* list of pending jumps to `pc' */
+  int freereg;  /* first free register */
+  int nk;  /* number of elements in `k' */
+  int np;  /* number of elements in `p' */
+  short nlocvars;  /* number of elements in `locvars' */
+  lu_byte nactvar;  /* number of active local variables */
+  upvaldesc upvalues[LUAI_MAXUPVALUES];  /* upvalues */
+  unsigned short actvar[LUAI_MAXVARS];  /* declared-variable stack */
+} FuncState;
+
+
+LUAI_FUNC Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff,
+                                            const char *name);
+
+
+#endif

Added: test-suite/trunk/MultiSource/Applications/lua/lstate.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lstate.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lstate.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lstate.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,214 @@
+/*
+** $Id: lstate.c,v 2.36.1.2 2008/01/03 15:20:39 roberto Exp $
+** Global State
+** See Copyright Notice in lua.h
+*/
+
+
+#include <stddef.h>
+
+#define lstate_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "ldebug.h"
+#include "ldo.h"
+#include "lfunc.h"
+#include "lgc.h"
+#include "llex.h"
+#include "lmem.h"
+#include "lstate.h"
+#include "lstring.h"
+#include "ltable.h"
+#include "ltm.h"
+
+
+#define state_size(x)	(sizeof(x) + LUAI_EXTRASPACE)
+#define fromstate(l)	(cast(lu_byte *, (l)) - LUAI_EXTRASPACE)
+#define tostate(l)   (cast(lua_State *, cast(lu_byte *, l) + LUAI_EXTRASPACE))
+
+
+/*
+** Main thread combines a thread state and the global state
+*/
+typedef struct LG {
+  lua_State l;
+  global_State g;
+} LG;
+  
+
+
+static void stack_init (lua_State *L1, lua_State *L) {
+  /* initialize CallInfo array */
+  L1->base_ci = luaM_newvector(L, BASIC_CI_SIZE, CallInfo);
+  L1->ci = L1->base_ci;
+  L1->size_ci = BASIC_CI_SIZE;
+  L1->end_ci = L1->base_ci + L1->size_ci - 1;
+  /* initialize stack array */
+  L1->stack = luaM_newvector(L, BASIC_STACK_SIZE + EXTRA_STACK, TValue);
+  L1->stacksize = BASIC_STACK_SIZE + EXTRA_STACK;
+  L1->top = L1->stack;
+  L1->stack_last = L1->stack+(L1->stacksize - EXTRA_STACK)-1;
+  /* initialize first ci */
+  L1->ci->func = L1->top;
+  setnilvalue(L1->top++);  /* `function' entry for this `ci' */
+  L1->base = L1->ci->base = L1->top;
+  L1->ci->top = L1->top + LUA_MINSTACK;
+}
+
+
+static void freestack (lua_State *L, lua_State *L1) {
+  luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo);
+  luaM_freearray(L, L1->stack, L1->stacksize, TValue);
+}
+
+
+/*
+** open parts that may cause memory-allocation errors
+*/
+static void f_luaopen (lua_State *L, void *ud) {
+  global_State *g = G(L);
+  UNUSED(ud);
+  stack_init(L, L);  /* init stack */
+  sethvalue(L, gt(L), luaH_new(L, 0, 2));  /* table of globals */
+  sethvalue(L, registry(L), luaH_new(L, 0, 2));  /* registry */
+  luaS_resize(L, MINSTRTABSIZE);  /* initial size of string table */
+  luaT_init(L);
+  luaX_init(L);
+  luaS_fix(luaS_newliteral(L, MEMERRMSG));
+  g->GCthreshold = 4*g->totalbytes;
+}
+
+
+static void preinit_state (lua_State *L, global_State *g) {
+  G(L) = g;
+  L->stack = NULL;
+  L->stacksize = 0;
+  L->errorJmp = NULL;
+  L->hook = NULL;
+  L->hookmask = 0;
+  L->basehookcount = 0;
+  L->allowhook = 1;
+  resethookcount(L);
+  L->openupval = NULL;
+  L->size_ci = 0;
+  L->nCcalls = L->baseCcalls = 0;
+  L->status = 0;
+  L->base_ci = L->ci = NULL;
+  L->savedpc = NULL;
+  L->errfunc = 0;
+  setnilvalue(gt(L));
+}
+
+
+static void close_state (lua_State *L) {
+  global_State *g = G(L);
+  luaF_close(L, L->stack);  /* close all upvalues for this thread */
+  luaC_freeall(L);  /* collect all objects */
+  lua_assert(g->rootgc == obj2gco(L));
+  lua_assert(g->strt.nuse == 0);
+  luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size, TString *);
+  luaZ_freebuffer(L, &g->buff);
+  freestack(L, L);
+  lua_assert(g->totalbytes == sizeof(LG));
+  (*g->frealloc)(g->ud, fromstate(L), state_size(LG), 0);
+}
+
+
+lua_State *luaE_newthread (lua_State *L) {
+  lua_State *L1 = tostate(luaM_malloc(L, state_size(lua_State)));
+  luaC_link(L, obj2gco(L1), LUA_TTHREAD);
+  preinit_state(L1, G(L));
+  stack_init(L1, L);  /* init stack */
+  setobj2n(L, gt(L1), gt(L));  /* share table of globals */
+  L1->hookmask = L->hookmask;
+  L1->basehookcount = L->basehookcount;
+  L1->hook = L->hook;
+  resethookcount(L1);
+  lua_assert(iswhite(obj2gco(L1)));
+  return L1;
+}
+
+
+void luaE_freethread (lua_State *L, lua_State *L1) {
+  luaF_close(L1, L1->stack);  /* close all upvalues for this thread */
+  lua_assert(L1->openupval == NULL);
+  luai_userstatefree(L1);
+  freestack(L, L1);
+  luaM_freemem(L, fromstate(L1), state_size(lua_State));
+}
+
+
+LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) {
+  int i;
+  lua_State *L;
+  global_State *g;
+  void *l = (*f)(ud, NULL, 0, state_size(LG));
+  if (l == NULL) return NULL;
+  L = tostate(l);
+  g = &((LG *)L)->g;
+  L->next = NULL;
+  L->tt = LUA_TTHREAD;
+  g->currentwhite = bit2mask(WHITE0BIT, FIXEDBIT);
+  L->marked = luaC_white(g);
+  set2bits(L->marked, FIXEDBIT, SFIXEDBIT);
+  preinit_state(L, g);
+  g->frealloc = f;
+  g->ud = ud;
+  g->mainthread = L;
+  g->uvhead.u.l.prev = &g->uvhead;
+  g->uvhead.u.l.next = &g->uvhead;
+  g->GCthreshold = 0;  /* mark it as unfinished state */
+  g->strt.size = 0;
+  g->strt.nuse = 0;
+  g->strt.hash = NULL;
+  setnilvalue(registry(L));
+  luaZ_initbuffer(L, &g->buff);
+  g->panic = NULL;
+  g->gcstate = GCSpause;
+  g->rootgc = obj2gco(L);
+  g->sweepstrgc = 0;
+  g->sweepgc = &g->rootgc;
+  g->gray = NULL;
+  g->grayagain = NULL;
+  g->weak = NULL;
+  g->tmudata = NULL;
+  g->totalbytes = sizeof(LG);
+  g->gcpause = LUAI_GCPAUSE;
+  g->gcstepmul = LUAI_GCMUL;
+  g->gcdept = 0;
+  for (i=0; i<NUM_TAGS; i++) g->mt[i] = NULL;
+  if (luaD_rawrunprotected(L, f_luaopen, NULL) != 0) {
+    /* memory allocation error: free partial state */
+    close_state(L);
+    L = NULL;
+  }
+  else
+    luai_userstateopen(L);
+  return L;
+}
+
+
+static void callallgcTM (lua_State *L, void *ud) {
+  UNUSED(ud);
+  luaC_callGCTM(L);  /* call GC metamethods for all udata */
+}
+
+
+LUA_API void lua_close (lua_State *L) {
+  L = G(L)->mainthread;  /* only the main thread can be closed */
+  lua_lock(L);
+  luaF_close(L, L->stack);  /* close all upvalues for this thread */
+  luaC_separateudata(L, 1);  /* separate udata that have GC metamethods */
+  L->errfunc = 0;  /* no error function during GC metamethods */
+  do {  /* repeat until no more errors */
+    L->ci = L->base_ci;
+    L->base = L->top = L->ci->base;
+    L->nCcalls = L->baseCcalls = 0;
+  } while (luaD_rawrunprotected(L, callallgcTM, NULL) != 0);
+  lua_assert(G(L)->tmudata == NULL);
+  luai_userstateclose(L);
+  close_state(L);
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lstate.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lstate.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lstate.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lstate.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,169 @@
+/*
+** $Id: lstate.h,v 2.24.1.2 2008/01/03 15:20:39 roberto Exp $
+** Global State
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lstate_h
+#define lstate_h
+
+#include "lua.h"
+
+#include "lobject.h"
+#include "ltm.h"
+#include "lzio.h"
+
+
+
+struct lua_longjmp;  /* defined in ldo.c */
+
+
+/* table of globals */
+#define gt(L)	(&L->l_gt)
+
+/* registry */
+#define registry(L)	(&G(L)->l_registry)
+
+
+/* extra stack space to handle TM calls and some other extras */
+#define EXTRA_STACK   5
+
+
+#define BASIC_CI_SIZE           8
+
+#define BASIC_STACK_SIZE        (2*LUA_MINSTACK)
+
+
+
+typedef struct stringtable {
+  GCObject **hash;
+  lu_int32 nuse;  /* number of elements */
+  int size;
+} stringtable;
+
+
+/*
+** informations about a call
+*/
+typedef struct CallInfo {
+  StkId base;  /* base for this function */
+  StkId func;  /* function index in the stack */
+  StkId	top;  /* top for this function */
+  const Instruction *savedpc;
+  int nresults;  /* expected number of results from this function */
+  int tailcalls;  /* number of tail calls lost under this entry */
+} CallInfo;
+
+
+
+#define curr_func(L)	(clvalue(L->ci->func))
+#define ci_func(ci)	(clvalue((ci)->func))
+#define f_isLua(ci)	(!ci_func(ci)->c.isC)
+#define isLua(ci)	(ttisfunction((ci)->func) && f_isLua(ci))
+
+
+/*
+** `global state', shared by all threads of this state
+*/
+typedef struct global_State {
+  stringtable strt;  /* hash table for strings */
+  lua_Alloc frealloc;  /* function to reallocate memory */
+  void *ud;         /* auxiliary data to `frealloc' */
+  lu_byte currentwhite;
+  lu_byte gcstate;  /* state of garbage collector */
+  int sweepstrgc;  /* position of sweep in `strt' */
+  GCObject *rootgc;  /* list of all collectable objects */
+  GCObject **sweepgc;  /* position of sweep in `rootgc' */
+  GCObject *gray;  /* list of gray objects */
+  GCObject *grayagain;  /* list of objects to be traversed atomically */
+  GCObject *weak;  /* list of weak tables (to be cleared) */
+  GCObject *tmudata;  /* last element of list of userdata to be GC */
+  Mbuffer buff;  /* temporary buffer for string concatentation */
+  lu_mem GCthreshold;
+  lu_mem totalbytes;  /* number of bytes currently allocated */
+  lu_mem estimate;  /* an estimate of number of bytes actually in use */
+  lu_mem gcdept;  /* how much GC is `behind schedule' */
+  int gcpause;  /* size of pause between successive GCs */
+  int gcstepmul;  /* GC `granularity' */
+  lua_CFunction panic;  /* to be called in unprotected errors */
+  TValue l_registry;
+  struct lua_State *mainthread;
+  UpVal uvhead;  /* head of double-linked list of all open upvalues */
+  struct Table *mt[NUM_TAGS];  /* metatables for basic types */
+  TString *tmname[TM_N];  /* array with tag-method names */
+} global_State;
+
+
+/*
+** `per thread' state
+*/
+struct lua_State {
+  CommonHeader;
+  lu_byte status;
+  StkId top;  /* first free slot in the stack */
+  StkId base;  /* base of current function */
+  global_State *l_G;
+  CallInfo *ci;  /* call info for current function */
+  const Instruction *savedpc;  /* `savedpc' of current function */
+  StkId stack_last;  /* last free slot in the stack */
+  StkId stack;  /* stack base */
+  CallInfo *end_ci;  /* points after end of ci array*/
+  CallInfo *base_ci;  /* array of CallInfo's */
+  int stacksize;
+  int size_ci;  /* size of array `base_ci' */
+  unsigned short nCcalls;  /* number of nested C calls */
+  unsigned short baseCcalls;  /* nested C calls when resuming coroutine */
+  lu_byte hookmask;
+  lu_byte allowhook;
+  int basehookcount;
+  int hookcount;
+  lua_Hook hook;
+  TValue l_gt;  /* table of globals */
+  TValue env;  /* temporary place for environments */
+  GCObject *openupval;  /* list of open upvalues in this stack */
+  GCObject *gclist;
+  struct lua_longjmp *errorJmp;  /* current error recover point */
+  ptrdiff_t errfunc;  /* current error handling function (stack index) */
+};
+
+
+#define G(L)	(L->l_G)
+
+
+/*
+** Union of all collectable objects
+*/
+union GCObject {
+  GCheader gch;
+  union TString ts;
+  union Udata u;
+  union Closure cl;
+  struct Table h;
+  struct Proto p;
+  struct UpVal uv;
+  struct lua_State th;  /* thread */
+};
+
+
+/* macros to convert a GCObject into a specific value */
+#define rawgco2ts(o)	check_exp((o)->gch.tt == LUA_TSTRING, &((o)->ts))
+#define gco2ts(o)	(&rawgco2ts(o)->tsv)
+#define rawgco2u(o)	check_exp((o)->gch.tt == LUA_TUSERDATA, &((o)->u))
+#define gco2u(o)	(&rawgco2u(o)->uv)
+#define gco2cl(o)	check_exp((o)->gch.tt == LUA_TFUNCTION, &((o)->cl))
+#define gco2h(o)	check_exp((o)->gch.tt == LUA_TTABLE, &((o)->h))
+#define gco2p(o)	check_exp((o)->gch.tt == LUA_TPROTO, &((o)->p))
+#define gco2uv(o)	check_exp((o)->gch.tt == LUA_TUPVAL, &((o)->uv))
+#define ngcotouv(o) \
+	check_exp((o) == NULL || (o)->gch.tt == LUA_TUPVAL, &((o)->uv))
+#define gco2th(o)	check_exp((o)->gch.tt == LUA_TTHREAD, &((o)->th))
+
+/* macro to convert any Lua object into a GCObject */
+#define obj2gco(v)	(cast(GCObject *, (v)))
+
+
+LUAI_FUNC lua_State *luaE_newthread (lua_State *L);
+LUAI_FUNC void luaE_freethread (lua_State *L, lua_State *L1);
+
+#endif
+

Added: test-suite/trunk/MultiSource/Applications/lua/lstring.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lstring.c?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lstring.c (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lstring.c Sat Oct  4 15:58:08 2008
@@ -0,0 +1,111 @@
+/*
+** $Id: lstring.c,v 2.8.1.1 2007/12/27 13:02:25 roberto Exp $
+** String table (keeps all strings handled by Lua)
+** See Copyright Notice in lua.h
+*/
+
+
+#include <string.h>
+
+#define lstring_c
+#define LUA_CORE
+
+#include "lua.h"
+
+#include "lmem.h"
+#include "lobject.h"
+#include "lstate.h"
+#include "lstring.h"
+
+
+
+void luaS_resize (lua_State *L, int newsize) {
+  GCObject **newhash;
+  stringtable *tb;
+  int i;
+  if (G(L)->gcstate == GCSsweepstring)
+    return;  /* cannot resize during GC traverse */
+  newhash = luaM_newvector(L, newsize, GCObject *);
+  tb = &G(L)->strt;
+  for (i=0; i<newsize; i++) newhash[i] = NULL;
+  /* rehash */
+  for (i=0; i<tb->size; i++) {
+    GCObject *p = tb->hash[i];
+    while (p) {  /* for each node in the list */
+      GCObject *next = p->gch.next;  /* save next */
+      unsigned int h = gco2ts(p)->hash;
+      int h1 = lmod(h, newsize);  /* new position */
+      lua_assert(cast_int(h%newsize) == lmod(h, newsize));
+      p->gch.next = newhash[h1];  /* chain it */
+      newhash[h1] = p;
+      p = next;
+    }
+  }
+  luaM_freearray(L, tb->hash, tb->size, TString *);
+  tb->size = newsize;
+  tb->hash = newhash;
+}
+
+
+static TString *newlstr (lua_State *L, const char *str, size_t l,
+                                       unsigned int h) {
+  TString *ts;
+  stringtable *tb;
+  if (l+1 > (MAX_SIZET - sizeof(TString))/sizeof(char))
+    luaM_toobig(L);
+  ts = cast(TString *, luaM_malloc(L, (l+1)*sizeof(char)+sizeof(TString)));
+  ts->tsv.len = l;
+  ts->tsv.hash = h;
+  ts->tsv.marked = luaC_white(G(L));
+  ts->tsv.tt = LUA_TSTRING;
+  ts->tsv.reserved = 0;
+  memcpy(ts+1, str, l*sizeof(char));
+  ((char *)(ts+1))[l] = '\0';  /* ending 0 */
+  tb = &G(L)->strt;
+  h = lmod(h, tb->size);
+  ts->tsv.next = tb->hash[h];  /* chain new entry */
+  tb->hash[h] = obj2gco(ts);
+  tb->nuse++;
+  if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
+    luaS_resize(L, tb->size*2);  /* too crowded */
+  return ts;
+}
+
+
+TString *luaS_newlstr (lua_State *L, const char *str, size_t l) {
+  GCObject *o;
+  unsigned int h = cast(unsigned int, l);  /* seed */
+  size_t step = (l>>5)+1;  /* if string is too long, don't hash all its chars */
+  size_t l1;
+  for (l1=l; l1>=step; l1-=step)  /* compute hash */
+    h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
+  for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
+       o != NULL;
+       o = o->gch.next) {
+    TString *ts = rawgco2ts(o);
+    if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) {
+      /* string may be dead */
+      if (isdead(G(L), o)) changewhite(o);
+      return ts;
+    }
+  }
+  return newlstr(L, str, l, h);  /* not found */
+}
+
+
+Udata *luaS_newudata (lua_State *L, size_t s, Table *e) {
+  Udata *u;
+  if (s > MAX_SIZET - sizeof(Udata))
+    luaM_toobig(L);
+  u = cast(Udata *, luaM_malloc(L, s + sizeof(Udata)));
+  u->uv.marked = luaC_white(G(L));  /* is not finalized */
+  u->uv.tt = LUA_TUSERDATA;
+  u->uv.len = s;
+  u->uv.metatable = NULL;
+  u->uv.env = e;
+  /* chain it on udata list (after main thread) */
+  u->uv.next = G(L)->mainthread->next;
+  G(L)->mainthread->next = obj2gco(u);
+  return u;
+}
+

Added: test-suite/trunk/MultiSource/Applications/lua/lstring.h
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Applications/lua/lstring.h?rev=57071&view=auto

==============================================================================
--- test-suite/trunk/MultiSource/Applications/lua/lstring.h (added)
+++ test-suite/trunk/MultiSource/Applications/lua/lstring.h Sat Oct  4 15:58:08 2008
@@ -0,0 +1,31 @@
+/*
+** $Id: lstring.h,v 1.43.1.1 2007/12/27 13:02:25 roberto Exp $
+** String table (keep all strings handled by Lua)
+** See Copyright Notice in lua.h
+*/
+
+#ifndef lstring_h
+#define lstring_h
+
+
+#include "lgc.h"
+#include "lobject.h"
+#include "lstate.h"
+
+
+#define sizestring(s)	(sizeof(union TString)+((s)->len+1)*sizeof(char))
+
+#define sizeudata(u)	(sizeof(union Udata)+(u)->len)
+
+#define luaS_new(L, s)	(luaS_newlstr(L, s, strlen(s)))
+#define luaS_newliteral(L, s)	(luaS_newlstr(L, "" s, \
+                                 (sizeof(s)/sizeof(char))-1))
+
+#define luaS_fix(s)	l_setbit((s)->tsv.marked, FIXEDBIT)
+
+LUAI_FUNC void luaS_resize (lua_State *L, int newsize);
+LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, Table *e);
+LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l);
+
+
+#endif





More information about the llvm-commits mailing list